Clone this wiki locally
PFunc, short for Parallel Functions, is a lightweight and portable library that provides C and C++ APIs to express task parallelism. The features offered by
PFunc are a strict superset of the features offered by current solutions for task parallelism. Some of the highlights of
- Custom Priorities for tasks.
- Custom Scheduling for tasks.
- Task Groups for collective communication.
- Nested Parallelism
- Open Source
- 1.0.2 has been released fixing a missing include file in dag.h. The tar ball should appear shortly on the website.
- 1.0.1 has been released fixing two configuration bugs. The tar ball should appear shortly on the website.
1.0.0 has been released with support for parallel
reduce, lots of new examples, and an updated tutorial.
- An important message for the PFunc install process: PFunc is written completely in C++ (i.e., "libpfunc.a" is a C++ library that provides C-bindings. To build a C executable using "libpfunc.a", you may need to link against "libstdc++" (a.k.a libC on AIX). When building the C examples and performance tests, PFunc's configuration mechanism checks for the presence of these libraries. Unfortunately, due to a shortcoming in CMake, the library has to be named "libstdc++.[so|a]" or "libC.[so|a]". Usually, what you find on your system will be "libstdc++.so.[0-9]", with a SYM-LINK to "libstdc++.so". In the oft-chance that this SYM-LINK is missing, the C examples will fail to build. In this case, simply manually create a SYM-LINK and the process will work. Note that none of this is required for program written in C++.
PFunc is written in C++ and is released as open source code under the Eclipse Public License (EPL).
The latest release of
PFunc is 1.0.2. This can be downloaded from here. The installation instructions can be found in the INSTALL and README files in the
PFunc is currently tested on Ubuntu Linux with GCC, Fedora Linux with GCC, RHEL server with GCC running on PPC, OS X Leopard with GCC, and AIX with XLC compilers.
- PFunc Tutorial.
- Thesis and slides: http://osl.iu.edu/~pkambadu
- COIN-OR home page