-
Notifications
You must be signed in to change notification settings - Fork 1
Main
Nim-HPX provides Nim users the parallel and distributed computing functionality found in STE||AR HPX. Nim developers using this library get the following tools: asynchronous function support (local/remote), parallel algorithms, distributed vectors and coarray support, block-level SPMD (single-program many data) support, futures/promises, await/dataflow, and asynchronous method execution (local/remote).
Nim-HPX requires the following dependencies:
- pkg-config
- cmake
- hwloc
- tcmalloc
- papi
- Boost
- APEX
- STE||AR HPX
It's recommended that everything but APEX and STE||AR HPX be installed using your GNU/Linux distributions package manager. Here's a quick explanation of each dependency and what it offers.
A software dependency management tool for build tools (GNU autotools, make, CMake, etc); Nim-HPX relies on this to point the Nim compiler to your STE||AR HPX installation.
A software build tool used to compile and install STE||AR HPX
A software library that collects and organizes hardware information from the OS.
A memory management library that supports multithreaded software. The library usually distributed as part of google-perftools or as tcmalloc-minimal.
A software library that provides convenient access to hardware counters implemented in a processor.
A collection of C++ software libraries that have been vetted by several people involved in the ISO Standards Committee.
A performance monitoring and measurement library for asynchronous, many-task, runtime systems (AMR/AMT). It provides AMR/AMT the ability to adapt performance during execution.
An asynchronous, many-task, runtime system.
Nim-HPX provides the current API (work-in-progress):
- Locality Information
- Futures, Promises
- Parallel Algorithms
- Local/Remote Asynchronous Function Support
- Local/Remote Asynchronous Method Support
- Distributed Sequences and Coarrays
- SPMD (single-program many-data) Support
- Await/Data-flow