A productivity-oriented single-source modern-C++ programming library for multi-core CPUs and NVIDIA GPUs.
What is PHAST Library?
PHAST Library is a high-level parallel programming library for multi-core CPUs and NVIDIA GPUs. It has been designed with programmer's productivity in mind: code once using high-level constructs and execute on multiple architectures seamlessly. Its main features are:
Data is organized in dynamic collections similar to STL containers. Unlike STL, PHAST Library provides multi-dimensional containers that are a natural choice for many applications. They are equipped with fancy iterators that permit accessing data not only element-wise, but also section-wise in the many algorithms provided.
The iterated container-sections are seen inside functors' body as high-level containers on their own. They can be iterated again and manipulated through many built-in in-functor algorithms. This makes a hierarchical design that permits writing code with high expressiveness and high productivity at all levels.
The program execution can be tuned by setting some parallelization parameters that regulate the mapping of the code on the underlying architecture. They can be set outside of application code, independently of it, in order to avoid mixing fine performance tuning with problem logic.
What does PHAST code look like?
Click on the button to load random PHAST code examples.