def test_extended_environment_mpi(self): """Extended environment with MPI""" n = nv_hpc_sdk(eula=True, extended_environment=True, mpi=True, tarball='nvhpc_2020_205_Linux_x86_64.tar.gz') self.assertEqual( str(n), r'''# NVIDIA HPC SDK version 20.5 COPY nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ g++ \ gcc \ gfortran \ libnuma1 \ openssh-client && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp/nv_hpc_sdk && tar -x -f /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz -C /var/tmp/nv_hpc_sdk -z && \ cd /var/tmp/nv_hpc_sdk && NVCOMPILER_ACCEPT_EULA=accept NVCOMPILER_INSTALL_DIR=/opt/nvidia/hpcsdk NVCOMPILER_INSTALL_MPI=true NVCOMPILER_INSTALL_NVIDIA=true NVCOMPILER_MPI_GPU_SUPPORT=true NVCOMPILER_SILENT=true ./install && \ rm -rf /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nv_hpc_sdk ENV CC=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/pgcc \ CPP="/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/nvc -Mcpp" \ CXX=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/nvc++ \ F77=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/nvfortran \ F90=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/nvfortran \ FC=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/nvfortran \ LD_LIBRARY_PATH=/opt/nvidia/hpcsdk/Linux_x86_64/2020/mpi/openmpi-3.1.5/lib:/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib:$LD_LIBRARY_PATH \ MODULEPATH=/opt/nvidia/hpcsdk/modulefiles:$MODULEPATH \ PATH=/opt/nvidia/hpcsdk/Linux_x86_64/2020/mpi/openmpi-3.1.5/bin:/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin:$PATH \ PGI_OPTL_INCLUDE_DIRS=/opt/nvidia/hpcsdk/Linux_x86_64/2020/mpi/openmpi-3.1.5/include \ PGI_OPTL_LIB_DIRS=/opt/nvidia/hpcsdk/Linux_x86_64/2020/mpi/openmpi-3.1.5/lib''' )
def test_toolchain(self): """Toolchain""" n = nv_hpc_sdk(tarball='nvhpc_2020_205_Linux_x86_64.tar.gz') tc = n.toolchain self.assertEqual(tc.CC, 'nvc') self.assertEqual(tc.CXX, 'nvc++') self.assertEqual(tc.FC, 'nvfortran') self.assertEqual(tc.F77, 'nvfortran') self.assertEqual(tc.F90, 'nvfortran')
def test_runtime_centos(self): """Runtime""" n = nv_hpc_sdk(tarball='nvhpc_2020_205_Linux_x86_64.tar.gz') r = n.runtime() self.assertEqual( r, r'''# NVIDIA HPC SDK RUN yum install -y \ libatomic \ numactl-libs && \ rm -rf /var/cache/yum/* COPY --from=0 /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/REDIST/*.so* /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib/ ENV LD_LIBRARY_PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib:$LD_LIBRARY_PATH''' )
def test_runtime_ubuntu(self): """Runtime""" n = nv_hpc_sdk(tarball='nvhpc_2020_205_Linux_x86_64.tar.gz') r = n.runtime() self.assertEqual( r, r'''# NVIDIA HPC SDK RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ libatomic1 \ libnuma1 && \ rm -rf /var/lib/apt/lists/* COPY --from=0 /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/REDIST/*.so* /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib/ ENV LD_LIBRARY_PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib:$LD_LIBRARY_PATH''' )
def test_defaults_centos(self): """Default HPC SDK building block""" n = nv_hpc_sdk(eula=True, tarball='nvhpc_2020_205_Linux_x86_64.tar.gz') self.assertEqual( str(n), r'''# NVIDIA HPC SDK version 20.5 COPY nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz RUN yum install -y \ gcc \ gcc-c++ \ gcc-gfortran \ numactl-libs && \ rm -rf /var/cache/yum/* RUN mkdir -p /var/tmp/nv_hpc_sdk && tar -x -f /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz -C /var/tmp/nv_hpc_sdk -z && \ cd /var/tmp/nv_hpc_sdk && NVCOMPILER_ACCEPT_EULA=accept NVCOMPILER_INSTALL_DIR=/opt/nvidia/hpcsdk NVCOMPILER_INSTALL_MPI=false NVCOMPILER_INSTALL_NVIDIA=true NVCOMPILER_MPI_GPU_SUPPORT=false NVCOMPILER_SILENT=true ./install && \ rm -rf /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nv_hpc_sdk ENV LD_LIBRARY_PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib:$LD_LIBRARY_PATH \ PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin:$PATH''')
def test_defaults_ubuntu(self): """Default HPC SDK building block""" n = nv_hpc_sdk(eula=True, tarball='nvhpc_2020_205_Linux_x86_64.tar.gz') self.assertEqual( str(n), r'''# NVIDIA HPC SDK version 20.5 COPY nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ g++ \ gcc \ gfortran \ libnuma1 && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp/nv_hpc_sdk && tar -x -f /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz -C /var/tmp/nv_hpc_sdk -z && \ cd /var/tmp/nv_hpc_sdk && NVCOMPILER_ACCEPT_EULA=accept NVCOMPILER_INSTALL_DIR=/opt/nvidia/hpcsdk NVCOMPILER_INSTALL_MPI=false NVCOMPILER_INSTALL_NVIDIA=true NVCOMPILER_MPI_GPU_SUPPORT=false NVCOMPILER_SILENT=true ./install && \ rm -rf /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nv_hpc_sdk ENV LD_LIBRARY_PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib:$LD_LIBRARY_PATH \ PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin:$PATH''')
def test_system_cuda(self): """System CUDA""" n = nv_hpc_sdk(eula=True, system_cuda=True, tarball='nvhpc_2020_205_Linux_x86_64.tar.gz') self.assertEqual( str(n), r'''# NVIDIA HPC SDK version 20.5 COPY nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ g++ \ gcc \ gfortran \ libnuma1 && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp/nv_hpc_sdk && tar -x -f /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz -C /var/tmp/nv_hpc_sdk -z && \ cd /var/tmp/nv_hpc_sdk && NVCOMPILER_ACCEPT_EULA=accept NVCOMPILER_INSTALL_DIR=/opt/nvidia/hpcsdk NVCOMPILER_INSTALL_MPI=false NVCOMPILER_INSTALL_NVIDIA=false NVCOMPILER_MPI_GPU_SUPPORT=false NVCOMPILER_SILENT=true ./install && \ echo "set CUDAROOT=/usr/local/cuda;" >> /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/siterc && \ echo "variable LIBRARY_PATH is environment(LIBRARY_PATH);" >> /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/siterc && \ echo "variable library_path is default(\$if(\$LIBRARY_PATH,\$foreach(ll,\$replace(\$LIBRARY_PATH,":",), -L\$ll)));" >> /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/siterc && \ echo "append LDLIBARGS=\$library_path;" >> /opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin/siterc && \ rm -rf /var/tmp/nvhpc_2020_205_Linux_x86_64.tar.gz /var/tmp/nv_hpc_sdk ENV LD_LIBRARY_PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/lib:$LD_LIBRARY_PATH \ PATH=/opt/nvidia/hpcsdk/Linux_x86_64/20.5/compilers/bin:$PATH''')