Skip to content

Main development repository for ParaTreeT: Parallel Tree Toolkit

Notifications You must be signed in to change notification settings

johnnyhchen/paratreet

 
 

Repository files navigation

ParaTreeT: Parallel Tree Toolkit

SMP Non-SMP

Wiki Page

Installation

1. Build Charm++

See https://github.com/UIUC-PPL/charm for instructions on building Charm++. We recommend building a stable release, by checking out a branch such as v6.10.1.

2. Build ParaTreeT

Dependent git repositories (currently only utility) are tracked as git submodules. All the following commands are executed from the top level directory.

  1. Initialize and update all submodule folders.
$ git submodule init
$ git submodule update
  1. Build the Tipsy library, used for input file format.
$ cd utility/structures
$ ./configure
$ make
  1. Build the ParaTreeT library.
$ cd src
$ make -j
  1. Build example applications.
$ cd ../examples
$ make test

Examples

Under the examples/ directory, one can find example ParaTreeT applications, like:

  • Gravity — Implements an n-body simulation of gravitational dynamics.
  • SPH — Simulates hydrodynamics using the Smooth Particle Hydrodynamics (SPH) technique.
  • Collision — Simulates collisions between particles.

Execution

Assuming one has an SMP-enabled build of Charm++, one can run a miniscule gravity simulation that splits 1000 particles into partitions of at most 100 particles on four PEs using:

$ ./charmrun +p3 ./Gravity -f ../inputgen/1k.tipsy -p 100 ++ppn 3 +pemap 1-3 +commap 0 ++local

On jsrun machines (e.g. LLNL Lassen, OLCF Summit) without a dedicated communications thread:

$ jsrun -n1 -a1 -c4 ./Gravity -f ../inputgen/1k.tipsy -p 100 +ppn 4 +pemap L0-12:4

About

Main development repository for ParaTreeT: Parallel Tree Toolkit

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 55.8%
  • C 42.2%
  • Makefile 1.4%
  • Shell 0.6%