La recette pour compiler Gromacs avec un support GPU sur du Debian Buster est la suivante :
export TIME=$(cat '/etc/time_command.cfg')
mkdir /local/$USER
cd /local/$USER
wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.3.tar.gz
tar xzf gromacs-2019.3.tar.gz
export GMXSRC=$PWD/gromacs-2019.3
mkdir gromacs-2019.3_build
export GMXBUILD=$PWD/gromacs-2019.3_build
mkdir gromacs-2019.3_install
export GMXINSTALL=$PWD/gromacs-2019.3_install
cd $GMXBUILD
export CC=/usr/bin/gcc-7 export CXX=/usr/bin/g++-7 export CPP=/usr/bin/cpp-7
cmake $GMXSRC -DGMX_OPENMP=ON -DGMX_GPU=ON -DGMX_BUILD_OWN_FFTW=ON -DGMX_MPI=on -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$GMXINSTALL
make -j 16 > GMX-Compile-$(date "+%Y%m%d-%H%M") 2>&1
make check > GMX-Check-$(date "+%Y%m%d-%H%M") 2>&1
make install > GMX-Install-$(date "+%Y%m%d-%H%M") 2>&1
mkdir -p /local/$USER/tests-$(date "+%Y%m%d")
cd /local/$USER/tests-$(date "+%Y%m%d")
wget ftp://ftp.gromacs.org/pub/benchmarks/water_GMX50_bare.tar.gz
tar xzf water_GMX50_bare.tar.gz
cd water-cut1.0_GMX50_bare/1536
source $GMXINSTALL/bin/GMXRC
$GMXINSTALL/bin/gmx-mpi grompp -f pme.mdp
/usr/bin/time $GMXINSTALL/bin/gmx mdrun -resethway -noconfout -nsteps 4000 -v -gpu_id 0 >$(echo $PWD | tr '/' '_')_$(date "+%Y%m%d-%H%M").out 2>&1
find . -mtime -1 | grep -v $(echo $PWD | tr "/" "_") | grep '/' | xargs -I '{}' rm '{}'
$GMXINSTALL/bin/gmx grompp -f pme.mdp
/usr/bin/time $GMXINSTALL/bin/gmx mdrun -resethway -noconfout -nsteps 4000 -v -nb cpu >$(echo $PWD | tr '/' '_')_$(date "+%Y%m%d-%H%M").out 2>&1
Les deux fichiers de sortie en *.out
donnent les informations sur les exécutions et la métrologie associée. Un grep
sur le mot Elapsed
extrait les temps d'exécution sur GPU et CPU.