Hacker News new | ask | show | jobs
Show HN: A high-performance framework for high-level parallel programming (pskel.github.io)
16 points by rcorcs 3963 days ago
3 comments

PSkel offers a high-level API for programming for heterogeneous parallel architectures, including both multi-core CPUs and GPUs.

PSkel is a high-performance framework for parallel skeletons. Using a high-level abstraction for parallel skeletons, PSkel releases the programmer from the responsibility of writing boiler-plate code for parallel programming in heterogeneous architectures, e.g., explicit synchronization and data exchanges between GPU memory and main memory. Furthermore, the framework translates the abstractions described using its application programming interface (API) into lowlevel C++ code compatible with Intel TBB, OpenMP and NVIDIA CUDA. PSkel's API is mainly based on a C++ template library that implements parallel skeletons and provides useful constructs for developing parallel applications. The framework provides an API for manipulating input and output data; specifying stencil computations; encapsulating memory management, computations, and runtime details.

For the stencil computation, if the input and output array together are greater than the GPU memory, there is an automatic and transparent method for tiling the data array into the GPU's memory, computing the stencil pattern in several chunks.
Can we apply sorting algorithms using the abstract developed by the api if the data were to be put in a matrix, with matrix rows as selection parameters.

Also will it be compute effective to do so, given GPU memory restrictions and comparative nature of algorithms.

I don't think the Stencil pattern is the best pattern for sorting algorithms, but I think it can be done.

The following link has a very simple example: https://github.com/pskel/pskel/wiki