PHAST Library Logo

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:

vector, matrix, and cube

Multi-dimensional containers

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.

hierarchical design

Hierarchical parallelism

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.

application-independent tuning and optimization

Parallelization parameters

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.

Description

Want to know more?

Overview

Click to learn more about PHAST Library.

Register

Click to register and gain access to the download section.

Roadmap

Click to check our development roadmap.