The Parallel Object-Oriented Methods and Applications (POOMA) Toolkit is a C++ toolkit for writing high-performance scientific programs. The toolkit provides a variety of tools:
containers and other abstractions suitable for scientific computation,
support for a variety of computation modes including data-parallel expressions, stencil-based computations, and lazy evaluation,
support for writing parallel and distributed programs,
automatic creation of all interprocessor communication for parallel and distributed programs, and
automatic out-of-order execution and loop rearrangement for fast program execution.
Since the toolkit provides high-level abstractions, POOMA programs are much shorter than corresponding Fortran or C programs and require less time to write and less time to debug. Using these high-level abstractions, the same code runs on a sequential, parallel, and distributed computers. It runs almost as fast as carefully crafted machine-specific hand-written programs. The toolkit is open-source software, available for no cost, and compatible with any modern C++ compiler.