This is a new DMTCP(https://github.com/dmtcp/dmtcp.git) plugin to checkpoint- restart CUDA application with noval split-process architecture.
CRAC consists of the plugin on top of DMTCP.
This software runs in the original directory
Compilation needs gcc
version 8 or later (using 9.2.0 on CentOS 7, compute node n79
)
# env on node n79 CRAC-early-developmennt-master.zip # download wget https://github.com/DMTCP-CRAC/CRAC-early-development/archive/master.zip # unzip unzip ../dmtcp-crac-master.zip mv CRAC-early-development-master /share/apps/CENTOS7/dmtcp/3.0.0.b # gcc export PATH=/share/apps/CENTOS7/gcc/9.2.0/bin:$PATH export LD_LIBRARY_PATH=/share/apps/CENTOS7/gcc/9.2.0/lib64:\ /share/apps/CENTOS7/gcc/9.2.0/libexec:\ /share/apps/CENTOS7/gcc/9.2.0/lib:\ $LD_LIBRARY_PATH export PATH=/share/apps/CENTOS7/openmpi/4.0.4/bin:$PATH export LD_LIBRARY_PATH=/share/apps/CENTOS7/openmpi/4.0.4/lib:$LD_LIBRARY_PATH export PATH=/share/apps/CENTOS7/python/3.8.3/bin:$PATH export LD_LIBRARY_PATH=/share/apps/CENTOS7/python/3.8.3/lib:$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib:$LD_LIBRARY_PATH # make in place cd /share/apps/CENTOS7/dmtcp/3.0.0.b/ ./configure make # no errors $ ls bin dmtcp_command dmtcp_discover_rm dmtcp_nocheckpoint dmtcp_rm_loclaunch dmtcp_ssh mtcp_restart dmtcp_coordinator dmtcp_launch dmtcp_restart dmtcp_srun_helper dmtcp_sshd make check # all failed, msg: checkpoint error ??? make check2 # /bin/sh: -c: line 11: syntax error near unexpected token `&' make check3 # /bin/sh: -c: line 11: syntax error near unexpected token `&' cd contrib/split-cuda # edit Makefile set to gcc/g++ in PATH make # no errors, but missing lib $ ls libdmtcp_split-cuda.so kernel-loader.exe libcuda_wrappers.so # -lcuda -lcusparse -lcusolver -lcublas # my 10.2 toolkit does not have cublas v11 # so linking against lowest version in hpc_sdk # seems to have worked $ ldd kernel-loader.exe libcublas.so.11 => not found # now libcublas.so.11 => /usr/local/cuda/lib64/libcublas.so.11 (0x00007fc3b877a000)
Next gobble together a gpu program like lammps/amber and test on gpu. Or you may have to wait on new compute nodes to arrive with latest toolkit and redo. The libcublas links needs to be made on each node in this queue n79
belongs to.
# oh well, nice try cudaGetDeviceCount failed CUDA driver version is insufficient for CUDA runtime version # manual with amber20 example dmtcp_launch --new-coordinator \ --coord-port 0 --port-file /sanscratch/checkpoints/111/port.txt \ --ckptdir /sanscratch/checkpoints/111 --interval 600 pmemd.cuda \ -O -o mdout.$LSB_JOBID -inf mdinfo.1K10 -x mdcrd.1K10 -r restrt.1K10 -ref inpcrd