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 tmpiPut the TMPIFile repo under tmpi:
cd tmpi
git clone git@github.com:hep-cce/TMPIFile.gitCreate a build and an install directory:
mkdir install buildMake sure to enable dynamic linking on Cray system before build:
export CRAYPE_LINK_TYPE=dynamicGo 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=RelWithDebInfoMake:
make install Setup environment:
source install/env_tmpi.shRun example code:
mpirun -np 10 ./install/bin/test_tmpiI 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.