The RapidMind Platform
The RapidMind Development Platform, developed by RapidMind (which Stefanus cofounded), is just such a framework for expressing data-parallel computations from within C++ and executing them efficiently on multicore processors. It lets you specify any computation you want to leverage multiple cores within existing C++ applications, without changing your compiler or workflow. Figure 1 illustrates the RapidMind architecture.
The Developer Edition of the RapidMind platform (download for free at www.rapidmind.net) is currently available for a number of Linux and Windows versions, and is supported on 32- and 64-bit systems.
There are three basic types you need to be aware of when programming with RapidMind:
- Values are small pieces of data, similar to the primitive types such as float and int in C++.
- Arrays represent arrays of these values, just like C arrays or C++ vectors.
- Programs encapsulate computation, in the same way that a C++ function does. All of these types, and a number of less important classes, are contained in the rapidmind namespace, which is made available by including a single header:
#include <rapidmind/platform.hpp>