Handbook of Parallel Computing: models, algorithms and applications.