Skip to content

ct-clmsn/nim-hpx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nim is a system language emphasizing productivity. STE||AR 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 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, 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