-
Notifications
You must be signed in to change notification settings - Fork 7
Home
DotMP is a .NET library for efficient parallel programming. It is heavily inspired by OpenMP, so users familiar with both OpenMP and C# should find most of DotMP to be very familiar. However, there are some key differences which this Wiki aims to outline, as well as providing a tutorial for new users.
This wiki is separated into two sections, and further into chapters, with the idea that if you have a background in parallel programming and read the chapters in-order, you should be fluent in DotMP in no time.
The first section is for DotMP CPU programming, which has been the focus the vast majority of DotMP's lifespan. The CPU chapters are organized as follows:
- Creating parallel regions and understanding the fork-join paradigm of DotMP
- Data parallelism with parallel for loops
- Implementing custom schedulers for parallel for loops
- Other miscellaneous but useful constructs you can use within parallel regions
- Helper methods to let you interface with the DotMP runtime
- The locking API
- The atomics API
- The shared memory API
- The tasking subsystem and using task-based parallelism
The second section is for DotMP GPU programming, which is an experimental feature that is coming in DotMP v2.0. The GPU chapters are organized as follows:
- The GPU memory model, moving memory, and accessing memory
- Data parallelism with parallel for loops
The easiest way to install DotMP is from the NuGet package manager:
dotnet add package DotMP
First, clone DotMP and navigate to the source directory:
git clone https://github.com/computablee/DotMP.git
cd DotMP
DotMP can be built using the make
command.
To build the entire project, including all tests, examples, and documentation, run the following command:
make
This command will build the main library, all tests, examples, benchmarks, and the documentation into their respective directories, but will not run any tests.
To build only the main library, run the following command:
make build
To build only the tests, run the following command:
make tests
To run the tests, run the following command:
make test
To build only the examples, run the following command:
make examples
This will build all of the examples, including the native C# parallelized, the DotMP parallelized, and the sequential examples. You can also individually build each of these classes of examples by running one or all of the following commands:
make examples-cs
make examples-dmp
make examples-seq
To build only the benchmarks, ruin the following command:
make benches
You can use Doxygen to build the documentation for this project. A Doxyfile is located in the root of the project directory. To build the documentation, run the following command:
make docs
This will generate documentation in the root of the project under the docs
directory in both LaTeX and HTML formats.
A copy of the most up-to-date documentation is hosted on GitHub.
DotMP and all resources on this wiki are licensed under LGPL 2.1. The maintainers make no guarantee of accuracy or efficacy in the materials presented in this wiki.