Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ct-clmsn/nim-hpx
Nim wrapper for STE||AR HPX
https://github.com/ct-clmsn/nim-hpx
distributed-computing high-performance-computing hpc hpx nim parallel-computing productivity supercomputing
Last synced: 24 days ago
JSON representation
Nim wrapper for STE||AR HPX
- Host: GitHub
- URL: https://github.com/ct-clmsn/nim-hpx
- Owner: ct-clmsn
- License: bsl-1.0
- Created: 2022-04-22T01:39:11.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-21T01:55:46.000Z (over 2 years ago)
- Last Synced: 2024-11-12T15:29:13.161Z (3 months ago)
- Topics: distributed-computing, high-performance-computing, hpc, hpx, nim, parallel-computing, productivity, supercomputing
- Language: Nim
- Homepage:
- Size: 58.6 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [nim-hpx - STE||AR HPX wrapper for Nim](https://github.com/ct-clmsn/nim-hpx)
[Nim](https://nim-lang.org) is a system language emphasizing productivity. [STE||AR HPX](https://github.com/STEllAR-GROUP/hpx)
is a high performance computing (HPC)/supercomputing runtime
system. `nim-hpx` provides a STE||AR HPX wrapper for Nim.`nim-hpx` wraps STE||AR HPX's asynchronous global address space and
parallelism feature set. `nim-hpx` provides Nim developers tooling to
implement HPC applications targeting single node/multicore systems and
distributed memory systems (multi-node/multicore systems).### Currently Supports
* futures
* local/remote asynchronous function execution
* local/distributed `partitionedSeq`, `partitionedTable`
* parallel `foreach`, `reduce`, `transform`, `transformReduce`### TODO
* channels
* collective communications
* SPMD support
* coarrays
* asynchronous remote method invocation on classes (components and component actions)### Documentation
Please visit [the Wiki](https://github.com/ct-clmsn/nim-hpx/wiki/Main) for more details!
### Installation Requirements
Dependencies:
* pkg-config
* cmake
* hwloc
* papi
* APEX
* tcmalloc
* Boost
* STE||AR HPX### Application compilation
* make sure all dependencies are installed
* update `PKG_CONFIG_PATH` making sure it points to `hpx_applications.pc` (usually `$(HPX_INSTALL_DIR)/lib/pkgconfig`)
* modify the `makefile` provided to compile the test program suite### Running Programs
```
srun -n4 --mpi=pmi2 ./test_initfin
```This library is designed to be run on an HPC system that manages
jobs using the following workload managers: [Slurm](https://slurm.schedmd.com), PBS, etc.### Examples
The directory 'tests/' provides several examples regarding how to utilize this library.
### Licenses
* Boost Version 1.0 (2022-)
### Date
20 April 2022
### Author
Christopher Taylor
### Special Thanks
* The STE||AR HPX Group
* The Nim community### Dependencies
* [STE||AR HPX](https://github.com/STEllAR-GROUP/hpx)
* [nim 1.6.4](https://nim-lang.org)