PhasicFlow is a parallel C++ code for performing DEM simulations. It can run on shared-memory multi-core computational units such as multi-core CPUs or GPUs (for now it works on CUDA-enabled GPUs). The parallelization method mainly relies on loop-level parallelization on a shared-memory computational unit. You can build and run PhasicFlow in serial mode on regular PCs, in parallel mode for multi-core CPUs, or build it for a GPU device to off-load computations to a GPU. In its current statues you can simulate millions of particles (up to 32M particles tested) on a single desktop computer. You can see the performance tests of PhasicFlow in the wiki page.
You can build PhasicFlow for CPU and GPU executions. Here is a complete step-by-step procedure.
You can navigate into tutorials folder in the phasicFlow folder to see some simulation case setups. If you need more detailed discription, visit our wiki page tutorials.
- Kokkos from National Technology & Engineering Solutions of Sandia, LLC (NTESS)
- CLI11 1.8 from University of Cincinnati.
- Extending the code for using OpenMPTarget backend to include more GPUs for off-loading the computations.
- Extending high-level parallelization and implementing space partitioning and load balancing for muilti-GPU computations and running PhasicFlow on distributed memory super-computers