Welcome to PFunc
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 PFunc are:
- 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 for, while, and 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).
Download and installation
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 distribution. 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.
- Help with COIN-OR: CoinHelp page.
- PFunc Tutorial.
- Thesis and slides: http://osl.iu.edu/~pkambadu
- PFunc mailing lists:
- Reporting bugs: