Charm++Charm++ is a parallel C++ library which provides processor virtualization. It provides intelligent runtime systems, including automatic load balancing and communication optimizations, with performance visualization and analysis tools that can provide intuitive and specific feedback for improving performance. A few frameworks are developed to further enhance programmer productivity by automating domain-specific parallelization techniques, and producing reusable libraries for parallel algorithms. How to use Charm++First download Charm++ from http://charm.cs.illinois.edu/software. There are a few ways to compile Charm++ on Blue Waters:
./build charm+++ gni-crayxe
./build charm++ mpi-crayxe Several useful build options:
e.g. ./build charm+++ gni-crayxe smp
e.g. module load craype-hugepages8M; ./build charm+++ gemini_gni-crayxe hugepages
e.g. module swap PrgEnv-cray PrgEnv-gnu
e.g. module load rca Running a Charm++ job:
$aprun –n 64 –N 32 ./charm_hello
$aprun –n 6 –N 2 -d 16 ./charm_hello ++ppn 15 +commap 0,16 +pemap 1-15,17-31
Additional Information / References |