Singularity 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. Bootstrap: docker
  2. FROM: nvcr.io/hpc/pgi-compilers:ce
  3. %environment
  4. export XDG_RUNTIME_DIR=
  5. export PATH="$PATH:/opt/pgi/linux86-64/19.10/bin:/usr/local/bin:/opt/anaconda3/bin:/usr/bin"
  6. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib:/opt/pgi/linux86-64-llvm/2019/cuda/10.1/lib64/:/opt/pgi/linux86-64-llvm/19.10/lib"
  7. export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/lib" CPATH="$CPATH:/usr/local/include"
  8. %post
  9. build_tmp=$(mktemp -d) && cd ${build_tmp}
  10. export PATH=/opt/pgi/linux86-64/19.10/bin:$PATH
  11. apt-get -y update
  12. apt-get -y dist-upgrade
  13. apt-get -y install --no-install-recommends \
  14. m4 vim-nox emacs-nox nano zip \
  15. python3 python3-pip python3-setuptools git-core inotify-tools \
  16. curl git-lfs \
  17. build-essential
  18. rm -rf /var/lib/apt/cache/*
  19. pip3 install --upgrade pip
  20. pip3 install jupyter netcdf4
  21. # NVIDIA Nsight Systems 2020.3.1
  22. apt-get update -y
  23. DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-transport-https ca-certificates gnupg wget
  24. echo "deb https://developer.download.nvidia.com/devtools/repo-deb/x86_64/ /" >> /etc/apt/sources.list.d/nsight.list
  25. apt-get update -y
  26. DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends nsight-systems-2020.3.1
  27. apt-get install --no-install-recommends -y build-essential
  28. ##### START : netcdf installation #####
  29. cd /usr
  30. mkdir netcdf
  31. cd netcdf
  32. mkdir WORK_DIR
  33. cd /usr/netcdf/WORK_DIR
  34. mkdir zlib hdf5 netCDF netCDF-C++ netCDF-Fortran
  35. cd /usr/netcdf/WORK_DIR/zlib
  36. wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/zlib-1.2.8.tar.gz
  37. tar -xvzf zlib-1.2.8.tar.gz
  38. cd /usr/netcdf/WORK_DIR/hdf5
  39. wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.12.tar.gz
  40. tar -xvzf hdf5-1.8.12.tar.gz
  41. cd /usr/netcdf/WORK_DIR/netCDF
  42. wget ftp://ftp.unidata.ucar.edu/pub/netcdf/old/netcdf-4.3.0.tar.gz
  43. tar -xvzf netcdf-4.3.0.tar.gz
  44. cd /usr/netcdf/WORK_DIR/netCDF-C++
  45. wget https://github.com/Unidata/netcdf-cxx4/archive/v4.2.1.tar.gz
  46. tar -xvzf v4.2.1.tar.gz
  47. cd /usr/netcdf/WORK_DIR/netCDF-Fortran
  48. wget ftp://ftp.unidata.ucar.edu/pub/netcdf/old/netcdf-fortran-4.2.tar.gz
  49. tar -xvzf netcdf-fortran-4.2.tar.gz
  50. export CC=pgcc CFLAGS="-O tp=p7-64" CXX=pgc++ CXXFLAGS="-O tp=p7-64" FC=pgfortran FCFLAGS="-O tp=p7-64" F77=pgfortran FFLAGS="-O tp=p7-64" CPPFLAGS="-DpgiFortran"
  51. mkdir -p /usr/local
  52. mkdir -p /usr/local/bin
  53. mkdir -p /usr/local/include
  54. mkdir -p /usr/local/lib
  55. export PATH="$PATH:/usr/local/bin" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" LIBRARY_PATH="$LIBRARY_PATH:/usr/local/lib" CPATH="$CPATH:/usr/local/include"
  56. # zlib
  57. cd /usr/netcdf/WORK_DIR/zlib/zlib-1.2.8
  58. ./configure --prefix=/usr/local
  59. make
  60. make install
  61. # hdf5
  62. cd /usr/netcdf/WORK_DIR/hdf5/hdf5-1.8.12
  63. unset CPP
  64. ./configure --prefix=/usr/local --enable-fortran --enable-c++
  65. make
  66. make install
  67. # netcdf
  68. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
  69. export CFLAGS="-O tp=p7-64 -I /usr/local/include"
  70. export LDFLAGS="-L/usr/local/lib -L/usr/local/lib"
  71. cd /usr/netcdf/WORK_DIR/netCDF/netcdf-4.3.0
  72. ./configure --prefix=/usr/local
  73. make
  74. make install
  75. # netcdf-c++
  76. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/hdf5/lib:/usr/local/lib"
  77. export CFLAGS="-O tp=p7-64 -I /usr/local/include -I /usr/local/include"
  78. export CPPFLAGS="-DpgiFortran -I /usr/local/include -I /usr/local/include"
  79. export LDFLAGS="-L/usr/local/lib -L/usr/local/lib"
  80. cd /usr/netcdf/WORK_DIR/netCDF-C++/netcdf-cxx4-4.2.1
  81. ./configure --prefix=/usr/local
  82. make
  83. make install
  84. # netcdf-fortran
  85. export CFLAGS="-O tp=p7-64 -I /usr/local/include -I /usr/local/include"
  86. export FCFLAGS="-O tp=p7-64 -I /usr/local/include -I /usr/local/include"
  87. export FFLAGS="-O tp=p7-64 -I /usr/local/include -I /usr/local/include"
  88. export CPPFLAGS="-DpgiFortran -I /usr/local/include -I /usr/local/include"
  89. unset LDFLAGS
  90. cd /usr/netcdf/WORK_DIR/netCDF-Fortran/netcdf-fortran-4.2
  91. ./configure --prefix=/usr/local
  92. make
  93. make install
  94. ##### END : netcdf installation #####
  95. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  96. bash Miniconda3-latest-Linux-x86_64.sh -b -p /opt/anaconda3
  97. rm Miniconda3-latest-Linux-x86_64.sh
  98. /opt/anaconda3/bin/conda install -y -q netcdf4
  99. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/pgi/linux86-64-llvm/2019/cuda/10.1/lib64/"
  100. cd /
  101. rm -rf ${build_tmp}
  102. %files
  103. miniapps-profiler /labs
  104. %runscript
  105. "$@"
  106. %labels
  107. AUTHOR mozhgank