Parallel For

A data parallel scientific programming model.

Compiles efficiently to different parallel architectures like distributed memory with message passing [MPI, PVM] and one-sided communication [MPI-2, shmem], shared memory multi-processor and multi-core processors [POSIX threads, OpenMP, boost threads, Intel TBB], procedure off-loading [Nvidia Cuda, Cell BE, AMD Brook, OpenCL], SIMD vectorization [SSE and AltiVec], and sequential C++ code.

Transform inherrent parallel expressions into efficient parallel C++ code:
BottomUpIterator<tree> up(root);
ForEach(tree *b, up, b->x = b->child(0)->y; )

Grid1IteratorSub it(1, n, grid);
ForEach(int i, it, x(i) += ( y(i+1) + y(i-1) )*.5; )

[example] [references] [download] [install]