This project builds a TFile-like object that uses MPI (Message Passing Interface) libraries and TMemFile for parallelization of IO process.
August 8, 2018
ROOT preferably ROOT 6 or higher
MPICH or other distributions like OpenMPI, Intel MPI, etc.
CMake 3.2 or higher
The "tmpi" container is available on dockerhub
The following instructions assume the user has already built/installed ROOT, MPICH, and CMake in the machine.
Create a new working directory for the project tmpi:
mkdir tmpi
Put the TMPIFile repo under tmpi:
cd tmpi
git clone [email protected]:hep-cce/TMPIFile.git
Create a build and an install directory:
mkdir install build
Make sure to enable dynamic linking on Cray system before build:
export CRAYPE_LINK_TYPE=dynamic
Go to the build directory and build CMake:
cd build
C=mpicc CXX=mpicxx cmake ../TMPIFile/ -DCMAKE_INSTALL_PREFIX=/PATH/TO/tmpi/install/ -DCMAKE_BUILD_TYPE=RelWithDebInfo
Make:
make install
Setup environment:
source install/env_tmpi.sh
Run example code:
mpirun -np 10 ./install/bin/test_tmpi
I would like to thank Taylor Childers for advising me, HEPCCE (High Energy Physics Center of Computational Excellence) program and Argonne National Laboratory for providing the opportunity to work on this project.