ExpressiveProgrammingForGraphicsProcessingUnits (EPGPU) is a CeePlusPlus library for embedding parallel OpenCl code inside a C++ program. See http://www.cs.uaf.edu/sw/EPGPU/ The author is Orion Lawlor who has also written CudaMpi. ---- About the challenges: * ''Modern hardware systems present enormous parallelism—at the instruction level (superscalar), vector level (SIMD), thread level (SMT), core level (SMP), and across the network—yet modern software such as C++ or C# is primarily serial.'' * ''Building usable abstractions for parallel software has been identified as a key challenge for 21st century computer science.'' * ''.. embedding provides shared data structures, typesafe kernel invocation, and the ability to more naturally interleave CPU and GPU functions'' About Embedding in C++: * ''Because OpenCL is implemented as a library, not a compiler, it is more difficult to provide a variety of basic features. But C++ provides an extremely rich set of tools for building domain-specific languages embedded inside C++, including powerful preprocessor macros, and partial specialization of user-defined templates.'' ** Above Quotes from the following 8 page document: *** http://www.cs.uaf.edu/sw/EPGPU/epgpu_2011_lawlor.pdf ---- CategoryCpp ParallelProgrammingModel CategoryGpgpu