Skip to content
Snippets Groups Projects
Commit 55c48f28 authored by midou's avatar midou
Browse files

Merge branch 'develop' of https://dci-gitlab.cines.fr/dci/abs into develop

parents 3d173a6c 6efed4d9
No related branches found
No related tags found
No related merge requests found
Showing
with 18529 additions and 53 deletions
#!/bin/bash #!/bin/bash
cd /tmp/abinit-8.10.3
make distclean
module load intel/19.4 intelmpi/2019.4.243
export CPATH=${MKLROOT}/include:$CPATH export CPATH=${MKLROOT}/include:$CPATH
export FCFLAGS_OPENMP="-fopenmp" export FCFLAGS_OPENMP="-fopenmp"
export FCFLAGS=' -extend-source -noaltparam -nofpscomp -fopenmp' export FCFLAGS='-mtune=native -march=native -fPIC -extend-source -noaltparam -nofpscomp -fopenmp'
env CC="mpicc -fopenmp -fPIC" CXX="mpiCC -fopenmp -fPIC" F77="mpif90 -fopenmp -fPIC" F90="mpif90 -fopenmp -fPIC" FC="mpif90 -fopenmp -fPIC" ./configure --disable-debug --enable-mpi --disable-xml --with-linalg-flavor="mkl+scalapack" --with-linalg-libs="-L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -mkl" --with-fft-flavor=fftw3 --with-fft-libs="-lfftw3xf_intel_pic -mkl" --with-dft-flavor="libxc+atompaw+wannier90" --enable-mpi-io --with-trio-flavor="netcdf" --enable-gw-dpc="no" --with-tardir=/tmp/tardir --prefix=$HOME/ABINIT --enable-openmp --enable-optim env CC="mpicc" CXX="mpicxx" F77="mpif90" F90="mpif90" FC="mpif90" ./configure --disable-debug --enable-mpi --disable-xml --with-linalg-flavor="mkl+scalapack" --with-linalg-libs="-L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -mkl" --with-fft-flavor=fftw3 --with-fft-libs="-lfftw3xf_intel -mkl" --with-dft-flavor="libxc+atompaw+wannier90" --enable-mpi-io --with-trio-flavor="netcdf" --enable-gw-dpc="no" --with-tardir=/tmp/tardir --prefix=$HOME/ABINIT --enable-openmp --enable-optim
make -j 40 make -j 40
make install make install
...@@ -2,14 +2,13 @@ ...@@ -2,14 +2,13 @@
mkdir -p /tmp/tardir mkdir -p /tmp/tardir
cd /tmp/tardir cd /tmp/tardir
wget http://forge.abinit.org/fallbacks/atompaw-4.0.1.0.tar.gz wget -nc http://forge.abinit.org/fallbacks/atompaw-4.0.1.0.tar.gz
wget http://forge.abinit.org/fallbacks/libxc-3.0.0.tar.gz wget -nc http://forge.abinit.org/fallbacks/libxc-3.0.0.tar.gz
wget http://forge.abinit.org/fallbacks/netcdf-4.1.1.tar.gz wget -nc http://forge.abinit.org/fallbacks/netcdf-4.1.1.tar.gz
wget http://forge.abinit.org/fallbacks/wannier90-2.0.1.1.tar.gz wget -nc http://forge.abinit.org/fallbacks/wannier90-2.0.1.1.tar.gz
cd .. cd /tmp
mkdir tarballs wget -nc --no-check-certificate https://www.abinit.org/sites/default/files/packages/abinit-8.10.3.tar.gz
wget https://www.abinit.org/sites/default/files/packages/abinit-8.10.3.tar.gz
tar xf abinit-8.10.3.tar.gz tar xf abinit-8.10.3.tar.gz
cd abinit-8.10.3 cd abinit-8.10.3
...@@ -14,32 +14,23 @@ module load intel/19.4 intelmpi/2019.4.243 ...@@ -14,32 +14,23 @@ module load intel/19.4 intelmpi/2019.4.243
unset I_MPI_DAPL_DIRECT_COPY_THRESHOLD unset I_MPI_DAPL_DIRECT_COPY_THRESHOLD
export MLX5_SINGLE_THREADED=0 export MLX5_SINGLE_THREADED=0
export MLX4_SINGLE_THREADED=0 export MLX4_SINGLE_THREADED=0
#module load openmpi/intel
#export PATH=$SCRATCHDIR/AO2020/OPENMPI/bin:$PATH
#export LD_LIBRARY_PATH=$SCRATCHDIR/AO2020/OPENMPI/lib:$LD_LIBRARY_PATH
#export LIBRARY_PATH=$SCRATCHDIR/AO2020/OPENMPI/lib:$LIBRARY_PATH
#export CPATH=$SCRATCHDIR/AO2020/OPENMPI/include:$CPATH
# set max 2GB stack # set max 2GB stack
ulimit -s 2000000 ulimit -s 2000000
export OMP_STACKSIZE=500M export OMP_STACKSIZE=500M
#export KMP_DETERMINISTIC_REDUCTION=1 #export KMP_DETERMINISTIC_REDUCTION=1
# OCCIGEN OMP_NUM_THREADS=1 - Proc. 0 individual time (sec): cpu= 18945.1 wall= 18962.5
# OCCIGEN OMP_NUM_THREADS=2 - Proc. 0 individual time (sec): cpu= 36255.7 wall= 18135.0
# OCCIGEN OMP_NUM_THREADS=12 Proc. 0 individual time (sec): cpu= 40857.9 wall= 3407.8
export KMP_LIBRARY=turnaround export KMP_LIBRARY=turnaround
export KMP_BLOCKTIME=infinite export KMP_BLOCKTIME=infinite
export KMP_AFFINITY=verbose,granularity=fine,compact,1,0 export KMP_AFFINITY=verbose,granularity=fine,compact,1,0
export OMP_NUM_THREADS=12 export OMP_NUM_THREADS=12
export MKL_NUM_THREADS=12 export MKL_NUM_THREADS=12
export PATH=/scratch/cnusc/dci/cirou/AO2020/ABINIT/bin:$PATH
export LD_LIBRARY_PATH=/scratch/cnusc/dci/cirou/AO2020/ABINIT/lib:$LD_LIBRARY_PATH
source /opt/software/common/intel/vtune_amplifier_2019/apsvars.sh
srun --cpu-freq=2600000 aps abinit -i abinit_test_ti255.files > abinit_test_ti255.log.$SLURM_JOBID 2>&1 #source /opt/software/common/intel/vtune_amplifier_2019/apsvars.sh
#srun --cpu-freq=2600000 aps abinit -i abinit_test_ti255.files > abinit_test_ti255.log.$SLURM_JOBID 2>&1
srun --cpu-freq=2600000 $HOME/ABINIT/bin/abinit -i abinit_test_ti255.files > abinit_test_ti255.log 2>&1
#aps --report=aps_result_* #aps --report=aps_result_*
...@@ -11,30 +11,21 @@ cd $SLURM_SUBMIT_DIR ...@@ -11,30 +11,21 @@ cd $SLURM_SUBMIT_DIR
module purge module purge
module load intel/19.4 intelmpi/2019.4.243 module load intel/19.4 intelmpi/2019.4.243
unset I_MPI_DAPL_DIRECT_COPY_THRESHOLD unset I_MPI_DAPL_DIRECT_COPY_THRESHOLD
#module load openmpi/intel export MLX5_SINGLE_THREADED=0
#export PATH=$SCRATCHDIR/AO2020/OPENMPI/bin:$PATH export MLX4_SINGLE_THREADED=0
#export LD_LIBRARY_PATH=$SCRATCHDIR/AO2020/OPENMPI/lib:$LD_LIBRARY_PATH
#export LIBRARY_PATH=$SCRATCHDIR/AO2020/OPENMPI/lib:$LIBRARY_PATH
#export CPATH=$SCRATCHDIR/AO2020/OPENMPI/include:$CPATH
# set max 2GB stack # set max 2GB stack
ulimit -s 2000000 ulimit -s 2000000
srun -l cat /proc/sys/kernel/perf_event_paranoid
#export KMP_DETERMINISTIC_REDUCTION=1 #export KMP_DETERMINISTIC_REDUCTION=1
# OMP_NUM_THREADS=1 Openmpi4 Proc. 0 individual time (sec): cpu= 43.6 wall= 47.9
# OMP_NUM_THREADS=2 Openmpi4 Proc. 0 individual time (sec): cpu= 75.1 wall= 37.8
# OMP_NUM_THREADS=3 Openmpi4 Proc. 0 individual time (sec): cpu= 101.9 wall= 34.1
# OMP_NUM_THREADS=4 Openmpi4 Proc. 0 individual time (sec): cpu= 130.1 wall= 32.6
# OMP_NUM_THREADS=4 intelmpi2019 Proc. 0 individual time (sec): cpu= 67.4 wall= 17.7
export MLX5_SINGLE_THREADED=0
export KMP_LIBRARY=turnaround export KMP_LIBRARY=turnaround
export KMP_BLOCKTIME=infinite export KMP_BLOCKTIME=infinite
export KMP_AFFINITY=granularity=fine,compact,1,0 export KMP_AFFINITY=granularity=fine,compact,1,0
export OMP_NUM_THREADS=4 export OMP_NUM_THREADS=4
export MKL_NUM_THREADS=4 export MKL_NUM_THREADS=4
export PATH=/scratch/cnusc/dci/cirou/AO2020/ABINIT/bin:$PATH
export LD_LIBRARY_PATH=/scratch/cnusc/dci/cirou/AO2020/ABINIT/lib:$LD_LIBRARY_PATH
#source /opt/software/common/intel/vtune_amplifier_2019/apsvars.sh #source /opt/software/common/intel/vtune_amplifier_2019/apsvars.sh
#srun --cpu-freq=2600000 aps abinit -i abinit_test_au31.files > abinit_test_au31.log.$SLURM_JOBID 2>&1 #srun --cpu-freq=2600000 aps abinit -i abinit_test_au31.files > abinit_test_au31.log.$SLURM_JOBID 2>&1
srun --cpu-freq=2600000 abinit -i abinit_test_au31.files > abinit_test_au31.log.$SLURM_JOBID 2>&1 srun --cpu-freq=2600000 $HOME/ABINIT/bin/abinit -i abinit_test_au31.files > abinit_test_au31.log 2>&1
#aps --report=aps_result_*
abinit_test_au31.in abinit_test_au31.in
abinit_test_au31.out abinit_test_au31.out
TMP/abinit_test_au31_i abinit_test_au31_i
TMP/abinit_test_au31_o abinit_test_au31_o
TMP/abinit_test_au31_t abinit_test_au31_t
../ATOMIC_DATA/au.hpc.paw au.hpc.paw
\ No newline at end of file \ No newline at end of file
This diff is collapsed.
#!/bin/bash
rm -f abinit_test_au31_i* abinit_test_au31_o* abinit_test_au31_t*
#!/bin/bash
sbatch ../machines/occigen-bdw/batch_small_au31.slurm
abinit_test_ti255.in abinit_test_ti255.in
abinit_test_ti255.out abinit_test_ti255.out
TMP/abinit_test_ti255_i abinit_test_ti255_i
TMP/abinit_test_ti255_o abinit_test_ti255_o
TMP/abinit_test_ti255_t abinit_test_ti255_t
../ATOMIC_DATA/ti.hpc.paw ti.hpc.paw
\ No newline at end of file \ No newline at end of file
#!/bin/bash
rm -f abinit_test_ti255_i* abinit_test_ti255_o* abinit_test_ti255_t*
#!/bin/bash
sbatch ../machines/occigen-bdw/batch_large_ti255.slurm
This diff is collapsed.
...@@ -15,7 +15,7 @@ Technical information: ...@@ -15,7 +15,7 @@ Technical information:
* Language : C/C++/CUDA * Language : C/C++/CUDA
* Parallelism : MPI + OpenMP + CUDA * Parallelism : MPI + OpenMP + CUDA
* GPU acceleration : yes * GPU acceleration : yes
* Scalability : high * Scalability : med
* Vectorization: high * Vectorization: high
MPI-Bound Code MPI-Bound Code
...@@ -55,11 +55,24 @@ source machines/occigen-bdw/env ...@@ -55,11 +55,24 @@ source machines/occigen-bdw/env
Run and validate the simulation: Run and validate the simulation:
-------------------------------- --------------------------------
For each test case, given in a separate folder (e.g. testcase_ion_channel_small and testcase_BSG_large), you can find three scripts: For each test case, given in a separate folder (e.g. testcase_ion_channel_small, testcase_ion_channel_large and testcase_BSG_large), you can find three scripts:
* prepare.sh: prepare the simulation (move data to the right location, recompile some minor changes, ...) 1. prepare.sh: prepare the simulation (move data to the right location, recompile some minor changes, ...)
* run.sh : run the application and print out the evaluated metric in a file called results (first numeric column representing ns/day corresponds to the evaluated metric to take into account) 2. run.sh : run the application and print out the evaluated metric in a file called results (first numeric column representing ns/day corresponds to the evaluated metric to take into account)
* validate.sh: validation of the simulation for (if the evaluated metric is print out and the simulation is completed with 20 000 steps for testcase_ion_channel_small and 1 200 000 steps for testcase_BSG_large, the bench is considered validated) 3. validate.sh: validation of the simulation.
* The bench testcase_ion_channel_small is considered validated if:
* the evaluated metric is print out ;
* the simulation is completed with 20 000 steps ;
* the files small_ion_channel.log, small_ion_channel.edr, results and slurm*.out are present in the directory results-gromacs-ion_channel_small.
* The bench testcase_ion_channel_large is considered validated if:
* the evaluated metric is print out ;
* the simulation is completed with 1 000 000 steps ;
* the files large_ion_channel.log, large_ion_channel.edr, results and slurm*.out are present in the directory results-gromacs-ion_channel_large.
* The bench testcase_BSG_large is considered validated if:
* the evaluated metric is print out ;
* the simulation is completed with 1 200 000 steps ;
* the files benchBSG.cpt, benchBSG.trr, benchBSG.xtc, benchBSG.log, benchBSG.edr, results and slurm*.out are present in the directory results-gromacs-BSG_large.
For running and validating the simulation, one should be able to do: For running and validating the simulation, one should be able to do:
``` ```
......
d #!/bin/bash #!/bin/bash
#SBATCH -J benchBSG #SBATCH -J benchBSG
#SBATCH -C BDW28 #SBATCH -C BDW28
#SBATCH -t 01:30:00 #SBATCH -t 01:30:00
......
...@@ -12,6 +12,12 @@ cd $run_gromacs_dir_name ...@@ -12,6 +12,12 @@ cd $run_gromacs_dir_name
perf=`grep Performance: results | awk '{ print $2 }'` perf=`grep Performance: results | awk '{ print $2 }'`
end_sim=`grep "Statistics over 1200001 steps using 12001 frames" benchBSG.log` end_sim=`grep "Statistics over 1200001 steps using 12001 frames" benchBSG.log`
mkdir results-gromacs-BSG_large
cp benchBSG.* results-gromacs-BSG_large/.
cp slurm* results-gromacs-BSG_large/.
cp results results-gromacs-BSG_large/.
cd results-gromacs-BSG_large
if [ -z "$perf" ] || [ -z "$end_sim" ] if [ -z "$perf" ] || [ -z "$end_sim" ]
then then
echo "bench is not validated" echo "bench is not validated"
......
...@@ -12,6 +12,12 @@ cd $run_gromacs_dir_name ...@@ -12,6 +12,12 @@ cd $run_gromacs_dir_name
perf=`grep Performance results | awk '{ print $2 }'` perf=`grep Performance results | awk '{ print $2 }'`
end_sim=`grep "Statistics over 1000001 steps using 100001 frames" large_ion_channel.log` end_sim=`grep "Statistics over 1000001 steps using 100001 frames" large_ion_channel.log`
mkdir results-gromacs-ion_channel_large
cp large_ion_channel* results-gromacs-ion_channel_large/.
cp slurm* results-gromacs-ion_channel_large/.
cp results results-gromacs-ion_channel_large/.
cd results-gromacs-ion_channel_large
if [ -z "$perf" ] || [ -z "$end_sim" ] if [ -z "$perf" ] || [ -z "$end_sim" ]
then then
echo "bench is not validated" echo "bench is not validated"
......
...@@ -12,6 +12,12 @@ cd $run_gromacs_dir_name ...@@ -12,6 +12,12 @@ cd $run_gromacs_dir_name
perf=`grep Performance results | awk '{ print $2 }'` perf=`grep Performance results | awk '{ print $2 }'`
end_sim=`grep "Statistics over 20001 steps using 2001 frames" small_ion_channel.log` end_sim=`grep "Statistics over 20001 steps using 2001 frames" small_ion_channel.log`
mkdir results-gromacs-ion_channel_small
cp small_ion_channel* results-gromacs-ion_channel_small/.
cp slurm* results-gromacs-ion_channel_small/.
cp results results-gromacs-ion_channel_small/.
cd results-gromacs-ion_channel_small
if [ -z "$perf" ] || [ -z "$end_sim" ] if [ -z "$perf" ] || [ -z "$end_sim" ]
then then
echo "bench is not validated" echo "bench is not validated"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment