Skip to content
Snippets Groups Projects
Commit 7377f020 authored by Michael Blaschek's avatar Michael Blaschek :bicyclist:
Browse files

update to imgw

parent 48e5f8ab
No related branches found
No related tags found
No related merge requests found
Showing
with 4 additions and 4575 deletions
# naked-singularity # Singularity
A repository of definition files for building A repository of definition files for building
[Singularity](https://sylabs.io/guides/latest/user-guide) containers [Singularity](https://sylabs.io/guides/latest/user-guide) containers
around the software applications, frameworks, and libraries you need to around the software applications, frameworks, and libraries you need to
run on high-performance computing systems. run on high-performance computing systems.
Based on [naked-singularity](https://github.com/mkandes/naked-singularity). Thanks M. Kandas
## Install Singularity ## Install Singularity
Install Singularity on your Linux desktop, laptop, or virtual machine. Install Singularity on your Linux desktop, laptop, or virtual machine.
```bash ```bash
sudo ./naked-singularity.sh install sudo ./install-singularity.sh install
``` ```
## Build a Singularity container from a definition file ## Build a Singularity container from a definition file
...@@ -21,47 +23,3 @@ available in this repository. ...@@ -21,47 +23,3 @@ available in this repository.
```bash ```bash
sudo singularity build ubuntu.sif definition-files/ubuntu/Singularity.ubuntu-18.04 sudo singularity build ubuntu.sif definition-files/ubuntu/Singularity.ubuntu-18.04
``` ```
## Download an existing Singularity container
A number of pre-built containers from this repository are also now
hosted at Singularity Hub.
```bash
singularity pull shub://mkandes/naked-singularity:ubuntu-18.04
```
IMPORTANT: [Singularity Hub has been archived](https://vsoch.github.io/2021/singularity-hub-archive).
For the time being, naked-singularity definition files that rely on
containers that were built and hosted on Singularity Hub prior to it
being archived will continue to pull in these container dependencies and
build properly. Note, however, new pre-built containers of the latest
naked-singularity definition files are currently being updated to be
hosted via the [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry).
## Status
A work in progress.
## Contribute
If you would like to contribute one of your own Singularity container
definition files for a specific application OR request a modification to
an existing container definition, then please submit a pull request.
## Author
Marty Kandes, Ph.D.
Computational & Data Science Research Specialist
High-Performance Computing User Services Group
San Diego Supercomputer Center
University of California, San Diego
## Version
2.0.2
## Last Updated
Sunday, November 7th, 2021
# Archive
This directory archives all of the older, system-specific, Singularity
2.x-era container definition files that were created as part of the
naked-singularity project during its first few years of existance. It
also stores a copy of the original naked-singularity.sh helper script.
Neither the original helper script, nor the definitions files stored
within this directory will be updated again. As such, they should not be
used in any production workloads moving forward, unless absolutely
necessary. They are stored here simply to serve as a historical
reference for the time being.
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME R
APPLICATION_VERSION 3.4.2
APPLICATION_URL https://www.r-project.org/
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.6.2
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 4096
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190327
%setup
%environment
# Set system locale
export LC_ALL=C
# Set PATH and LD_LIBRARY_PATH variables
export LD_LIBRARY_PATH="/opt/openblas-0.2.20/lib:${LD_LIBRARY_PATH}"
export PATH="/opt/R-3.4.2/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/R-3.4.2/lib:${LD_LIBRARY_PATH}"
export PATH="/opt/openmpi-1.8.4/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi-1.8.4/lib:${LD_LIBRARY_PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages and libraries from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install cmake
apt-get -y install libtool
apt-get -y install pkg-config
apt-get -y install gfortran
apt-get -y install zip
apt-get -y install libgmp-dev
apt-get -y install libmpfr-dev
apt-get -y install libmpc-dev
apt-get -y install libisl-dev
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda2
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
chmod +x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh -b -p /opt/miniconda2
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Install basic drivers for user space access to Ethernet, RDMA,
# and Infiniband. See https://community.mellanox.com/docs/DOC-2431
apt-get -y install dkms
apt-get -y install infiniband-diags
apt-get -y install libibverbs-dev
apt-get -y install ibacm
apt-get -y install librdmacm-dev
apt-get -y install libmlx4-dev
apt-get -y install libmlx5-dev
apt-get -y install mstflint
apt-get -y install libibcm-dev
apt-get -y install libibmad-dev
apt-get -y install libibumad-dev
apt-get -y install opensm
apt-get -y install srptools
# Install additional tools
apt-get -y install ibutils
apt-get -y install ibverbs-utils
apt-get -y install rdmacm-utils
apt-get -y install perftest
apt-get -y install numactl
apt-get -y install libnuma-dev
# Install libnl
apt-get -y install libnl-3-200
apt-get -y install libnl-route-3-200
apt-get -y install libnl-route-3-dev
apt-get -y install libnl-utils
# Install R dependencies
apt-get -y install libreadline-dev
apt-get -y install zlib1g-dev
apt-get -y install bzip2
apt-get -y install libbz2-dev
apt-get -y install xz-utils
apt-get -y install liblzma-dev
apt-get -y install libpcre3
apt-get -y install libpcre3-dev
apt-get -y install curl
apt-get -y install libcurl4-gnutls-dev
#cd /tmp
# Download, build, and install OpenBLAS for R
wget http://github.com/xianyi/OpenBLAS/archive/v0.2.20.tar.gz
tar -xzvf v0.2.20.tar.gz
cd OpenBLAS-0.2.20
make NUM_THREADS=24
make install PREFIX='/opt/openblas-0.2.20'
export CPPFLAGS="-I/opt/openblas-0.2.20/include ${CPPFLAGS}"
export LDFLAGS="-L/opt/openblas-0.2.20/lib ${LDFLAGS}"
export LD_LIBRARY_PATH="/opt/openblas-0.2.20/lib:${LD_LIBRARY_PATH}"
cd /tmp
# Download, build, and install R
wget https://cran.cnr.berkeley.edu/src/base/R-3/R-3.4.2.tar.gz
tar -xzvf R-3.4.2.tar.gz
cd R-3.4.2
./configure --prefix="/opt/R-3.4.2" --enable-R-shlib --with-blas --with-lapack --with-x
make
make install
export PATH="/opt/R-3.4.2/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/R-3.4.2/lib:${LD_LIBRARY_PATH}"
cd /tmp
# Download, build, and install OpenMPI for Rmpi
wget https://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.4.tar.gz
tar -xzvf openmpi-1.8.4.tar.gz
cd openmpi-1.8.4
./configure --prefix='/opt/openmpi-1.8.4'
make all install
export CPPFLAGS="-I/opt/openmpi-1.8.4/include ${CPPFLAGS}"
export LDFLAGS="-L/opt/openmpi-1.8.4/lib ${LDFLAGS}"
export PATH="/opt/openmpi-1.8.4/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi-1.8.4/lib:${LD_LIBRARY_PATH}"
cd /tmp
# Download, build, and install Rmpi
wget https://cran.r-project.org/src/contrib/Rmpi_0.6-7.tar.gz
R CMD INSTALL Rmpi_0.6-7.tar.gz --configure-args='--with-Rmpi-type=OPENMPI --with-Rmpi-include=/opt/openmpi-1.8.4/include --with-Rmpi-libpath=/opt/openmpi-1.8.4/lib'
# Install MySQL client / libraries to support RMySQL
apt-get -y install libmariadb-client-lgpl-dev
# Update database for mlocate
updatedb
%files
%runscript
%test
# Singularity container for molecular electrostatic calculations using PDB2PQR/APBS and Brownian dynamics with BrownDye.
This singularity image contains a complete software environment for running [BrownDye (version 1 and 2)](http://browndye.ucsd.edu/) simulations. It also includes [PDB2PQR](http://www.poissonboltzmann.org/) and [APBS](http://www.poissonboltzmann.org/).
Please [register](http://eepurl.com/by4eQr) your use of APBS and PDB2PQR.
## Using the container
Pull the singularity image:
```
singularity pull shub://nbcrrolls/electrostatics-singularity
```
Start bash shell in the container:
```
singularity shell nbcrrolls-electrostatics-singularity-master-latest.simg
```
Now the container is running and we can start a BrownDye2 job (using the Thrombin example):
```
cp -ai $BD2_PATH/examples/thrombin .
cd thrombin
sed -i 's/-PE0//g' *
make all
```
And if you want to use BrownDye version 1:
```
export PATH=$BD1_PATH/bin:$PATH
cp -ai $BD1_PATH/thrombin-example .
cd thrombin-example
sed -i 's/-PE0//g' *
make all
bd_top input.xml
nam_simulation t-m-simulation.xml # this takes about 20min to run
cat results.xml
```
After we are finished we can quit the container:
exit
You can also access individual applications from the electrostatics container.
To list available applications:
```
$ singularity apps nbcrrolls-electrostatics-singularity-master-latest.simg
apbs
make_rxn_pairs
nam_simulation
pdb2pqr
pqr2xml
we_simulation
xyz_trajectory
```
To run, for example, apbs calculation:
```
singularity exec nbcrrolls-electrostatics-singularity-master-latest.simg apbs input.in
```
or
```
singularity run --app apbs nbcrrolls-electrostatics-singularity-master-latest.simg input.in
```
This Singularity image is hosted on Singularity Hub: [![https://www.singularity-hub.org/static/img/hosted-singularity--hub-%23e32929.svg](https://www.singularity-hub.org/static/img/hosted-singularity--hub-%23e32929.svg)](https://singularity-hub.org/collections/2497)
###### This project is supported by [NBCR](http://nbcr.ucsd.edu).
#################################################################################
# Singularity Definition File
#
# Version: 2.0
# Software: Molecular electrostatics singularity image
# Software Version: 2019.3.7
# Description: Docker image for BrownDye, APBS and PDB2PQR
# Website: http://browndye.ucsd.edu
# Tags: Electrostatics|Brownian Dynamics|Solvation
# Build command: singularity build electrostatics.simg Singularity
# Pull command: singularity pull shub://nbcrrolls/electrostatics-singularity
# Run command: singularity shell nbcrrolls-electrostatics-singularity-master-latest.simg
# Run command: singularity exec [image name] apbs input.in
# Run command: singularity run --app apbs [image name] arguments
# Run command: singularity run --app pdb2pqr [image name] arguments
#
#################################################################################
Bootstrap: docker
From: ubuntu:16.04
%labels
APPLICATION_NAME apbs-pdb2pqr-browndye
APPLICATION_VERSION 1.5 + 2.1.0 + 2.0
APPLICATION_URL http://www.poissonboltzmann.org + https://browndye.ucsd.edu
SYSTEM_NAME comet
SYSTEM_SINGULAIRTY_VERSION 2.6.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 1024
ORIGINAL_AUTHOR_NAME Robert Konecny
ORIGINAL_AUTHOR_EMAIL rok@ucsd.edu
ORIGINAL_DEFINITION_FILE https://github.com/nbcrrolls/electrostatics-singularity/blob/master/Singularity
MODIFYING_AUTHOR_NAME Marty Kandes
MODIFYING_AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190416
%help
This is a singularity image with molecular electrostatics tools:
apbs, pdb2pqr and BrownDye. All applications are intalled in /opt
sub-directories and are in your $PATH.
%runscript
cat << EOF
This container includes the following apps:
APBS v1.5 - http://www.poissonboltzmann.org/
PDB2PQR v2.1.0 - http://www.poissonboltzmann.org/
BrownDye v2.0 (26 Feb 2019) - https://browndye.ucsd.edu/
Please register your use of APBS and PDB2PQR at http://eepurl.com/by4eQr
To list all available applications do "singularity apps [image name]"
EOF
%post -c /bin/bash
set -o errexit
APBS_VERSION=1.5
PDB2PQR_VERSION=2.1.0
APBS_URL=https://versaweb.dl.sourceforge.net/project/apbs/apbs/apbs-${APBS_VERSION}
APBS_PKG=APBS-${APBS_VERSION}-linux64.tar.gz
PDB2PQR_URL=https://versaweb.dl.sourceforge.net/project/pdb2pqr/pdb2pqr/pdb2pqr-${PDB2PQR_VERSION}
PDB2PQR_PKG=pdb2pqr-linux-bin64-${PDB2PQR_VERSION}.tar.gz
BD1_VERSION="1.0-13-Feb_2019"
BD2_VERSION="2.0-26_Feb_ 2019"
BD_URL=https://browndye.ucsd.edu
BD1_PKG=browndye.tar.gz
BD2_PKG=browndye2.tar.gz
RL_URL=https://mirrors.edge.kernel.org/ubuntu/pool/main/r/readline6
RL_PKG=libreadline6_6.3-8ubuntu8_amd64.deb
DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -y install curl
apt-get -y install make
apt-get -y install gcc
apt-get -y install g++
#apt-get -y install ocaml
apt-get -y install libexpat-dev
apt-get -y install nano
apt-get -y install readline-common
apt-get -y install libgfortran3
apt-get -y install wget
apt-get -y install libboost-dev
apt-get -y install liblapack-dev
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
cd /tmp
wget http://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz
tar -xzvf ocaml-4.06.0.tar.gz
cd ocaml-4.06.0
./configure
make world.opt
umask 022
make install
curl -k ${BD_URL}/${BD1_PKG} | tar xzf - -C /opt
cd /opt/browndye
curl -k -sO ${BD_URL}/browndye/doc/fixes.html
make all
curl -k ${BD_URL}/${BD2_PKG} | tar xzf - -C /opt
cd /opt/browndye2
curl -k -sO ${BD_URL}/browndye2/doc/fixes.html
make all
mkdir lib && cd lib
curl -k -sO ${BD_URL}/coffdrop.xml.gz
curl -k -sO ${BD_URL}/connectivity.xml
curl -k -sO ${BD_URL}/map.xml
curl -k -sO ${BD_URL}/charges.xml
curl -k ${RL_URL}/${RL_PKG} -o /tmp/${RL_PKG}
dpkg -i /tmp/${RL_PKG}
apt-get -y purge gcc
apt-get -y purge g++
#apt-get -y purge ocaml
apt-get -y purge libexpat-dev
apt-get -y purge libboost-dev
apt-get -y clean
apt-get -y autoremove
apt-get -y install ca-certificates
rm -rf /var/lib/apt/lists/*
# add apbs
wget -q --no-check-certificate ${APBS_URL}/${APBS_PKG} -O - | tar xzf - -C /opt
ln -s /opt/APBS-${APBS_VERSION}-linux64 /opt/apbs
# add pdb2pqr
wget -q --no-check-certificate ${PDB2PQR_URL}/${PDB2PQR_PKG} -O - | tar xzf - -C /opt
ln -s /opt/pdb2pqr-linux-bin64-${PDB2PQR_VERSION} /opt/pdb2pqr
%environment
# Set system locale
export LC_ALL=C
# Set APBS, PDB2PQR, and BrownDye environment variables
export APBS_VERSION=1.5
export APBS_PATH=/opt/apbs
export PDB2PQR_VERSION=2.1.0
export PDB2PQR_PATH=/opt/pdb2pqr
export BD1_VERSION="1.0-13-Feb_2019"
export BD1_PATH=/opt/browndye
export BD2_VERSION="2.0-26_Feb_ 2019"
export BD2_PATH=/opt/browndye2
export PATH=${APBS_PATH}/bin:${PDB2PQR_PATH}:${BD2_PATH}/bin:$PATH
export LD_LIBRARY_PATH=${APBS_PATH}/lib
%apphelp apbs
apbs version 1.5
For instructions on use see http://www.poissonboltzmann.org/
apbs is installed in /opt/apbs
%apprun apbs
/opt/apbs/bin/apbs "$@"
%apphelp pdb2pqr
pdb2pqr version 2.1.0
For instructions on use see http://www.poissonboltzmann.org/
pdb2pqr is installed in /opt/pdb2pqr
%apprun pdb2pqr
/opt/pdb2pqr/pdb2pqr "$@"
%apphelp nam_simulation
BrownDye version 2.0 (26 Feb 2019)
For instructions on use see https://browndye.ucsd.edu
All BrowDye programs are installed in /opt/browndye/bin
%apprun nam_simulation
/opt/browndye2/bin/nam_simulation "$@"
%apphelp pqr2xml
BrownDye version 2.0 (26 Feb 2019)
For instructions on use see https://browndye.ucsd.edu
%apprun pqr2xml
/opt/browndye2/bin/pqr2xml "$@"
%apphelp make_rxn_pairs
BrownDye version 2.0 (26 Feb 2019)
For instructions on use see https://browndye.ucsd.edu
%apprun make_rxn_pairs
/opt/browndye2/bin/make_rxn_pairs "$@"
%apphelp we_simulation
BrownDye version 2.0 (26 Feb 2019)
For instructions on use see https://browndye.ucsd.edu
%apprun we_simulation
/opt/browndye2/bin/we_simulation "$@"
%apphelp xyz_trajectory
BrownDye version 2.0 (26 Feb 2019)
For instructions on use see https://browndye.ucsd.edu
%apprun xyz_trajectory
/opt/browndye2/bin/xyz_trajectory "$@"
Bootstrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-7/7/os/x86_64/
Include: yum
%labels
APPLICATION_NAME beast
APPLICATION_VERSION 1.10.4
APPLICATION_URL http://beast.community/
SINGULARITY_VERSION 2.6.1
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20200209
%setup
%environment
# Set system locale
export LC_ALL=C
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Set LD_LIBRARY_PATH to beagle
export LD_LIBRARY_PATH="/opt/beagle/lib:${LD_LIBRARY_PATH}"
# Set PATH to beast
export PATH="/opt/beast/bin:${PATH}"
# Set PATH to tracer
export PATH="/opt/tracer/bin:${PATH}"
# Set PATH to figtree
export PATH="/opt/figtree/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Location of NVIDIA repositories
declare -r NVIDIA_ROOT_URL='http://developer.download.nvidia.com/compute'
declare -r CUDA_REPO_URL="${NVIDIA_ROOT_URL}/cuda/repos/rhel7/x86_64"
declare -r ML_REPO_URL="${NVIDIA_ROOT_URL}/machine-learning/repos/rhel7/x86_64"
# Install NVIDIA package dependencies
yum -y install xorg-x11-server-Xorg
yum -y install xorg-x11-server-common
yum -y install xorg-x11-apps
yum -y install xorg-x11-utils
yum -y install xorg-x11-xauth
yum -y install xorg-x11-xkb-utils
yum -y install cmake
yum -y install make
yum -y install dkms
yum -y install kernel-headers
yum -y install glibc-devel
yum -y install glibc-headers
yum -y install glibc-utils
yum -y install libwayland-client
yum -y install libwayland-server
yum -y install pkgconfig
yum -y install libvdpau
yum -y install libva-vdpau-driver
yum -y install atk
yum -y install atk-devel
yum -y install cairo
yum -y install cairo-devel
yum -y install cairo-gobject
yum -y install cairo-gobject-devel
yum -y install cairo-tools
yum -y install fontconfig
yum -y install fontconfig-devel
yum -y install gdk-pixbuf2
yum -y install gdk-pixbuf2-devel
yum -y install gtk3
yum -y install gtk3-devel
yum -y install gtk2
yum -y install gtk2-devel
yum -y install jansson
yum -y install freeglut
yum -y install freeglut-devel
yum -y install libX11
yum -y install libX11-devel
yum -y install libX11-common
yum -y install libXmu
yum -y install libXmu-devel
yum -y install libXi
yum -y install libXi-devel
yum -y install mesa-libGLU
yum -y install mesa-libGLU-devel
yum -y install java-1.8.0-openjdk
yum -y install java-1.8.0-openjdk-devel
yum -y install grubby
yum -y install libtirpc
yum -y install ocl-icd
yum -y install opencl-filesystem
yum -y install vulkan-filesystem
# Download NVIDIA driver, libraries, and packages
wget --wait=10 "https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm"
rpm -i cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm
yum clean all
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/dkms-nvidia-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-devel-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-persistenced-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NVML-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-modprobe-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-settings-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-xconfig-418.67-1.el7.x86_64.rpm"
# Download CUDA libraries and packages
wget --wait=10 "${CUDA_REPO_URL}/cuda-compat-10-1-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-license-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvcc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprune-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-compiler-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gdb-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprof-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-memcheck-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cupti-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvtx-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas10-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas-devel-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-samples-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-documentation-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvvp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-toolkit-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-runtime-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor1-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-devel-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-doc-1.0.0-1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
# Install NVIDIA drivers, libraries, and packages
rpm -i nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-libs-418.67-4.el7.x86_64.rpm
yum -y install dkms-nvidia
yum -y install nvidia-driver
rpm -i nvidia-driver-NVML-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm
rpm -i nvidia-driver-devel-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm
rpm -i nvidia-modprobe-418.67-1.el7.x86_64.rpm
rpm -i nvidia-settings-418.67-1.el7.x86_64.rpm
rpm -i nvidia-xconfig-418.67-1.el7.x86_64.rpm
yum -y install nvidia-persistenced
yum -y install nvidia-driver-cuda
rpm -i cuda-compat-10-1-418.67-1.x86_64.rpm
rpm -i cuda-license-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvcc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprune-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-compiler-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gdb-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprof-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-memcheck-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cupti-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvtx-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i libcublas10-10.2.0.168-1.x86_64.rpm
rpm -i libcublas-devel-10.2.0.168-1.x86_64.rpm
rpm -i cuda-cufft-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-samples-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-documentation-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvvp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-toolkit-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-drivers-418.67-1.x86_64.rpm
rpm -i cuda-runtime-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-10-1-10.1.168-1.x86_64.rpm
rpm -i libcutensor1-1.0.0-1.x86_64.rpm
rpm -i libcutensor-devel-1.0.0-1.x86_64.rpm
rpm -i libcutensor-doc-1.0.0-1.x86_64.rpm
rpm -i libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libnccl-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Install beast dependencies
yum -y install java-1.8.0-openjdk
yum -y install java-1.8.0-openjdk-devel
yum -y install ant
# Download, build, and install beagle library
git clone https://github.com/beagle-dev/beagle-lib.git
cd /tmp/beagle-lib
git checkout v3.1.2
./autogen.sh
./configure --prefix=/opt/beagle
make install
export LD_LIBRARY_PATH="/opt/beagle/lib:${LD_LIBRARY_PATH}"
make check
cd /tmp
# Download, build, and install beast
git clone https://github.com/beast-dev/beast-mcmc.git
cd /tmp/beast-mcmc
git checkout v1.10.4
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
ant linux
mv /tmp/beast-mcmc/release/Linux/BEASTv1.10.4 /opt/beast
cd /opt/beast/bin
sed -i 's/-Xms64m -Xmx2048m/-Xms256m -Xmx10000m/' beast
# Set PATH to beast
export PATH="/opt/beast/bin:${PATH}"
cd /tmp
# Download, build, and install tracer
git clone https://github.com/beast-dev/tracer.git
cd /tmp/tracer
git checkout v1.7.1
ant linux
mv /tmp/tracer/release/Linux/Tracer_v1.7.1 /opt/tracer
# Set PATH to tracer
export PATH="/opt/tracer/bin:${PATH}"
cd /tmp
# Download, build, and install figtree
git clone https://github.com/rambaut/figtree.git
cd /tmp/figtree
git checkout v1.4.4
sed -i 's/linux_unix_Release/linux/g' build.xml
ant linux
mv /tmp/figtree/release/Linux/FigTree_v1.4.4 /opt/figtree
cd /opt/figtree/bin
sed -i "s/lib/\/opt\/figtree\/lib/g" figtree
chmod +x figtree
# Set PATH to figtree
export PATH="/opt/figtree/bin:${PATH}"
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-7/7/os/x86_64/
Include: yum
%labels
APPLICATION_NAME beast2
APPLICATION_VERSION 2.6.1
APPLICATION_URL http://www.beast2.org
SINGULARITY_VERSION 2.6.1
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20200208
%setup
%environment
# Set system locale
export LC_ALL=C
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Set LD_LIBRARY_PATH to beagle
export LD_LIBRARY_PATH="/opt/beagle/lib:${LD_LIBRARY_PATH}"
# Set PATH to beast2
export PATH="/opt/beast2/bin:${PATH}"
# Set PATH to tracer
export PATH="/opt/tracer/bin:${PATH}"
# Set PATH to figtree
export PATH="/opt/figtree/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Location of NVIDIA repositories
declare -r NVIDIA_ROOT_URL='http://developer.download.nvidia.com/compute'
declare -r CUDA_REPO_URL="${NVIDIA_ROOT_URL}/cuda/repos/rhel7/x86_64"
declare -r ML_REPO_URL="${NVIDIA_ROOT_URL}/machine-learning/repos/rhel7/x86_64"
# Install NVIDIA package dependencies
yum -y install xorg-x11-server-Xorg
yum -y install xorg-x11-server-common
yum -y install xorg-x11-apps
yum -y install xorg-x11-utils
yum -y install xorg-x11-xauth
yum -y install xorg-x11-xkb-utils
yum -y install cmake
yum -y install make
yum -y install dkms
yum -y install kernel-headers
yum -y install glibc-devel
yum -y install glibc-headers
yum -y install glibc-utils
yum -y install libwayland-client
yum -y install libwayland-server
yum -y install pkgconfig
yum -y install libvdpau
yum -y install libva-vdpau-driver
yum -y install atk
yum -y install atk-devel
yum -y install cairo
yum -y install cairo-devel
yum -y install cairo-gobject
yum -y install cairo-gobject-devel
yum -y install cairo-tools
yum -y install fontconfig
yum -y install fontconfig-devel
yum -y install gdk-pixbuf2
yum -y install gdk-pixbuf2-devel
yum -y install gtk3
yum -y install gtk3-devel
yum -y install gtk2
yum -y install gtk2-devel
yum -y install jansson
yum -y install freeglut
yum -y install freeglut-devel
yum -y install libX11
yum -y install libX11-devel
yum -y install libX11-common
yum -y install libXmu
yum -y install libXmu-devel
yum -y install libXi
yum -y install libXi-devel
yum -y install mesa-libGLU
yum -y install mesa-libGLU-devel
yum -y install java-1.8.0-openjdk
yum -y install java-1.8.0-openjdk-devel
yum -y install grubby
yum -y install libtirpc
yum -y install ocl-icd
yum -y install opencl-filesystem
yum -y install vulkan-filesystem
# Download NVIDIA driver, libraries, and packages
wget --wait=10 "https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm"
rpm -i cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm
yum clean all
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/dkms-nvidia-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-devel-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-persistenced-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NVML-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-modprobe-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-settings-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-xconfig-418.67-1.el7.x86_64.rpm"
# Download CUDA libraries and packages
wget --wait=10 "${CUDA_REPO_URL}/cuda-compat-10-1-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-license-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvcc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprune-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-compiler-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gdb-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprof-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-memcheck-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cupti-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvtx-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas10-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas-devel-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-samples-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-documentation-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvvp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-toolkit-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-runtime-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor1-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-devel-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-doc-1.0.0-1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
# Install NVIDIA drivers, libraries, and packages
rpm -i nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-libs-418.67-4.el7.x86_64.rpm
yum -y install dkms-nvidia
yum -y install nvidia-driver
rpm -i nvidia-driver-NVML-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm
rpm -i nvidia-driver-devel-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm
rpm -i nvidia-modprobe-418.67-1.el7.x86_64.rpm
rpm -i nvidia-settings-418.67-1.el7.x86_64.rpm
rpm -i nvidia-xconfig-418.67-1.el7.x86_64.rpm
yum -y install nvidia-persistenced
yum -y install nvidia-driver-cuda
rpm -i cuda-compat-10-1-418.67-1.x86_64.rpm
rpm -i cuda-license-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvcc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprune-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-compiler-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gdb-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprof-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-memcheck-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cupti-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvtx-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i libcublas10-10.2.0.168-1.x86_64.rpm
rpm -i libcublas-devel-10.2.0.168-1.x86_64.rpm
rpm -i cuda-cufft-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-samples-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-documentation-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvvp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-toolkit-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-drivers-418.67-1.x86_64.rpm
rpm -i cuda-runtime-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-10-1-10.1.168-1.x86_64.rpm
rpm -i libcutensor1-1.0.0-1.x86_64.rpm
rpm -i libcutensor-devel-1.0.0-1.x86_64.rpm
rpm -i libcutensor-doc-1.0.0-1.x86_64.rpm
rpm -i libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libnccl-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Install beast dependencies
yum -y install java-1.8.0-openjdk
yum -y install java-1.8.0-openjdk-devel
yum -y install ant
# Download, build, and install beagle library
git clone https://github.com/beagle-dev/beagle-lib.git
cd /tmp/beagle-lib
git checkout v3.1.2
./autogen.sh
./configure --prefix=/opt/beagle
make install
export LD_LIBRARY_PATH="/opt/beagle/lib:${LD_LIBRARY_PATH}"
make check
cd /tmp
# Download, build, and install beas2
git clone https://github.com/CompEvol/beast2.git
cd /tmp/beast2
git checkout v2.6.1
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
ant linux
mv /tmp/beast2/release/Linux/beast /opt/beast2
cd /opt/beast2/bin
sed -i 's/-Xms256m -Xmx8g/-Xms256m -Xmx15g/' beast
# Set PATH to beast2
export PATH="/opt/beast2/bin:${PATH}"
cd /tmp
# Download, build, and install tracer
git clone https://github.com/beast-dev/tracer.git
cd /tmp/tracer
git checkout v1.7.1
ant linux
mv /tmp/tracer/release/Linux/Tracer_v1.7.1 /opt/tracer
# Set PATH to tracer
export PATH="/opt/tracer/bin:${PATH}"
cd /tmp
# Download, build, and install figtree
git clone https://github.com/rambaut/figtree.git
cd /tmp/figtree
git checkout v1.4.4
sed -i 's/linux_unix_Release/linux/g' build.xml
ant linux
mv /tmp/figtree/release/Linux/FigTree_v1.4.4 /opt/figtree
cd /opt/figtree/bin
sed -i "s/lib/\/opt\/figtree\/lib/g" figtree
chmod +x figtree
# Set PATH to figtree
export PATH="/opt/figtree/bin:${PATH}"
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME caffe
APPLICATION_VERSION 1.0
APPLICATION_URL https://developer.nvidia.com/cuda-zone
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.5.2
SYSTEM_URL http://caffe.berkeleyvision.org/
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190110
%setup
%environment
# Set system locale
export LC_ALL=C
export PATH="/usr/local/cuda-9.2/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/cuda/extras/CUPTI/lib64"
export PYTHONPATH="/opt/caffe/python:${PYTHONPATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install cmake
apt-get -y install libtool
apt-get -y install pkg-config
apt-get -y install gfortran
apt-get -y install zip
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda2
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
chmod +x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh -b -p /opt/miniconda2
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Location of NVIDIA repositories
declare -r NVIDIA_ROOT_URL='http://developer.download.nvidia.com/compute'
declare -r CUDA_REPO_URL="${NVIDIA_ROOT_URL}/cuda/repos/ubuntu1604/x86_64"
declare -r ML_REPO_URL="${NVIDIA_ROOT_URL}/machine-learning/repos/ubuntu1604/x86_64/"
# Install NVIDIA package dependencies
apt-get -y install x11-common
apt-get -y install xserver-xorg-core
apt-get -y install xserver-xorg-legacy
apt-get -y install cmake
apt-get -y install make
apt-get -y install dkms
apt-get -y install linux-libc-dev
apt-get -y install libc6-dev
apt-get -y install lib32gcc1
apt-get -y install libc6-i386
apt-get -y install libgl1
apt-get -y install libwayland-client0
apt-get -y install libwayland-server0
apt-get -y install pkg-config
apt-get -y install screen-resolution-extra
apt-get -y install libvdpau1
apt-get -y install libatk1.0-0
apt-get -y install libcairo-gobject2
apt-get -y install libcairo2
apt-get -y install libfontconfig1
apt-get -y install libgdk-pixbuf2.0-0
apt-get -y install libgtk-3-0
apt-get -y install libgtk2.0-0
apt-get -y install libjansson4
apt-get -y install freeglut3-dev
apt-get -y install libx11-dev
apt-get -y install libxmu-dev
apt-get -y install libxi-dev
apt-get -y install libglu1-mesa
apt-get -y install libglu1-mesa-dev
apt-get -y install default-jre
# Download NVIDIA drivers, libraries, and packages
wget --wait=10 "${CUDA_REPO_URL}/nvidia-396_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-396-dev_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-modprobe_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/libcuda1-396_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libopencl1-396_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-opencl-icd-396_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/libxnvctrl0_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-settings_396.26-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers_396.26-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-license-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-misc-headers-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvcc-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cuobjdump-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprune-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-compiler-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-core-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-driver-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvdisasm-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gdb-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprof-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-memcheck-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cupti-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gpu-library-advisor-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvtx-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-command-line-tools-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvml-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cublas-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cublas-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-samples-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-documentation-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvvp-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-visual-tools-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-tools-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-dev-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-toolkit-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-runtime-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-demo-suite-9-2_9.2.88-1_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libcudnn7_7.2.1.38-1+cuda9.2_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-dev_7.2.1.38-1+cuda9.2_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libnccl2_2.3.4-1+cuda9.2_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libnccl-dev_2.3.4-1+cuda9.2_amd64.deb"
# Fix for "update-alternatives: error: error creating symbolic link '/usr/lib/nvidia/alternate-install-present.dpkg-tmp': No such file or directory"
mkdir -p /usr/lib/nvidia
# Install NVIDIA drivers, libraries, and packages
dpkg -i nvidia-396_396.26-0ubuntu1_amd64.deb
dpkg -i nvidia-396-dev_396.26-0ubuntu1_amd64.deb
dpkg -i nvidia-modprobe_396.26-0ubuntu1_amd64.deb
dpkg -i libcuda1-396_396.26-0ubuntu1_amd64.deb
dpkg -i nvidia-libopencl1-396_396.26-0ubuntu1_amd64.deb
dpkg -i nvidia-opencl-icd-396_396.26-0ubuntu1_amd64.deb
dpkg -i libxnvctrl0_396.26-0ubuntu1_amd64.deb
dpkg -i nvidia-settings_396.26-0ubuntu1_amd64.deb
dpkg -i cuda-drivers_396.26-1_amd64.deb
dpkg -i cuda-license-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-misc-headers-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvcc-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cuobjdump-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvprune-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-compiler-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-core-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cudart-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-driver-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cudart-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvdisasm-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-gdb-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvprof-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-memcheck-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cupti-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-gpu-library-advisor-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvtx-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-command-line-tools-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvrtc-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvrtc-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvml-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvgraph-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvgraph-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cusolver-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cusolver-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cublas-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cublas-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cufft-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cufft-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-curand-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-curand-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cusparse-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-cusparse-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-npp-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-npp-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-samples-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-documentation-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nsight-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-nvvp-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-visual-tools-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-tools-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-libraries-dev-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-toolkit-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-libraries-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-runtime-9-2_9.2.88-1_amd64.deb
dpkg -i cuda-demo-suite-9-2_9.2.88-1_amd64.deb
dpkg -i libcudnn7_7.2.1.38-1+cuda9.2_amd64.deb
dpkg -i libcudnn7-dev_7.2.1.38-1+cuda9.2_amd64.deb
dpkg -i libnccl2_2.3.4-1+cuda9.2_amd64.deb
dpkg -i libnccl-dev_2.3.4-1+cuda9.2_amd64.deb
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-9.2/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/cuda/extras/CUPTI/lib64"
# Install general dependencies for caffe
apt-get -y install libprotobuf-dev
apt-get -y install libleveldb-dev
apt-get -y install libsnappy-dev
apt-get -y install libopencv-dev
apt-get -y install libhdf5-dev
apt-get -y install protobuf-compiler
apt-get -y install --no-install-recommends libboost-all-dev
apt-get -y install libatlas-base-dev
apt-get -y install libgflags-dev
apt-get -y install libgoogle-glog-dev
apt-get -y install liblmdb-dev
# Fix for libhdf5: https://github.com/NVIDIA/DIGITS/issues/156
# https://github.com/BVLC/caffe/issues/2347
cd /usr/lib/x86_64-linux-gnu
ln -s libhdf5_serial.so.10.1.0 libhdf5.so
ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
# Install dependencies for pycaffe
apt-get -y install python
apt-get -y install python-dev
apt-get -y install python-pip
apt-get -y install cython
apt-get -y install python-numpy
apt-get -y install python-scipy
apt-get -y install python-skimage
apt-get -y install python-matplotlib
apt-get -y install ipython
apt-get -y install python-h5py
apt-get -y install libleveldb1v5
apt-get -y install python-networkx
apt-get -y install python-nose
apt-get -y install python-pandas
apt-get -y install python-dateutil
apt-get -y install python-protobuf
apt-get -y install python-gflags
apt-get -y install python-yaml
apt-get -y install python-pil
apt-get -y install python-six
# Install common python packages for data science and machine learning applications
apt-get -y install python-scipy
apt-get -y install python-pandas
apt-get -y install python-matplotlib
apt-get -y install ipython
apt-get -y install ipython-notebook
apt-get -y install python-sympy
apt-get -y install python-nose
apt-get -y install python-sklearn
apt-get -y install python-mlpy
apt-get -y install python-nltk
apt-get -y install python-statsmodels
apt-get -y install libopencv-dev
apt-get -y install python-opencv
# Install common python packages for the biological and biomedical sciences
apt-get -y install python-biopython
apt-get -y install python-biopython-sql
# Install other common python packages
apt-get -y install python-h5py
cd /opt
# Download and checkout version of caffe to be compiled
git clone https://github.com/BVLC/caffe.git
cd /opt/caffe
git checkout 1.0
# Create caffe Makefile.config file
echo 'USE_CUDNN := 1' >> Makefile.config
echo 'CUDA_DIR := /usr/local/cuda' >> Makefile.config
echo 'CUDA_ARCH := -gencode arch=compute_35,code=sm_37 \' >> Makefile.config
echo ' -gencode arch=compute_60,code=sm_60' >> Makefile.config
echo 'BLAS := atlas' >> Makefile.config
echo 'PYTHON_INCLUDE := /usr/include/python2.7 \' >> Makefile.config
echo ' /usr/lib/python2.7/dist-packages/numpy/core/include' >> Makefile.config
echo 'PYTHON_LIB := /usr/lib/x86_64-linux-gnu' >> Makefile.config
echo 'INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/' >> Makefile.config
echo 'LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib' >> Makefile.config
echo 'USE_NCCL := 1' >> Makefile.config
echo 'BUILD_DIR := build' >> Makefile.config
echo 'DISTRIBUTE_DIR := distribute' >> Makefile.config
echo 'TEST_GPUID := 0' >> Makefile.config
echo 'Q ?= @' >> Makefile.config
# Build caffe
make clean
make all
make test
cd /opt/caffe/python
# Install any remaining dependencies for pycaffe
for req in $(cat requirements.txt); do pip install $req; done
cd /opt/caffe
# Build pycaffe
make pycaffe
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: yum
OSVersion: 6
MirrorURL: http://mirror.centos.org/centos-6/6/os/x86_64/
Include: yum
%labels
APPLICATION_NAME centos + cuda
APPLICATION_VERSION 6.10 + 7.0
APPLICATION_URL https://developer.nvidia.com/cuda-zone
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.6.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 8192
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190919
%setup
%environment
# Set system locale
export LC_ALL=C
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-7.0/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-7.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Set default miniconda environment
export PATH="/opt/miniconda3/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# https://forums.fedoraforum.org/showthread.php?281978-yum-failed-unexpected-file-type-or-format
rpm -vv --rebuilddb
yum -y update
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Location of NVIDIA repositories
declare -r NVIDIA_ROOT_URL='http://developer.download.nvidia.com/compute'
declare -r CUDA_REPO_URL="${NVIDIA_ROOT_URL}/cuda/repos/rhel6/x86_64"
#declare -r ML_REPO_URL="${NVIDIA_ROOT_URL}/machine-learning/repos/rhel7/x86_64/"
# Install NVIDIA package dependencies
yum -y install dkms
yum -y install grub
yum -y install dracut
yum -y install libvdpau
yum -y install freeglut-devel
yum -y install libXmu-devel
# Download NVIDIA drivers, libraries, and packages
wget --wait=10 "${CUDA_REPO_URL}/nvidia-kmod-396.26-2.el6.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/xorg-x11-drv-nvidia-396.26-1.el6.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/xorg-x11-drv-nvidia-libs-396.26-1.el6.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/xorg-x11-drv-nvidia-gl-396.26-1.el6.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/xorg-x11-drv-nvidia-devel-396.26-1.el6.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/xorg-x11-drv-nvidia-diagnostic-396.26-1.el6.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers-396.26-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-license-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-misc-headers-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers-diagnostic-396.26-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-core-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-driver-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gdb-src-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-command-line-tools-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cublas-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cublas-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-dev-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-samples-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-documentation-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-visual-tools-7-0-7.0-28.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-runtime-7-0-7.0-28.x86_64.rpm"
# Install NVIDIA drivers, libraries, and packages
rpm -i nvidia-kmod-396.26-2.el6.x86_64.rpm
rpm -i xorg-x11-drv-nvidia-396.26-1.el6.x86_64.rpm
rpm -i xorg-x11-drv-nvidia-libs-396.26-1.el6.x86_64.rpm
rpm -i xorg-x11-drv-nvidia-gl-396.26-1.el6.x86_64.rpm
rpm -i xorg-x11-drv-nvidia-devel-396.26-1.el6.x86_64.rpm
rpm -i xorg-x11-drv-nvidia-diagnostic-396.26-1.el6.x86_64.rpm
rpm -i cuda-drivers-396.26-1.x86_64.rpm
rpm -i cuda-license-7-0-7.0-28.x86_64.rpm
rpm -i cuda-misc-headers-7-0-7.0-28.x86_64.rpm
rpm -i cuda-drivers-diagnostic-396.26-1.x86_64.rpm
rpm -i cuda-core-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cudart-7-0-7.0-28.x86_64.rpm
rpm -i cuda-driver-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cudart-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-gdb-src-7-0-7.0-28.x86_64.rpm
rpm -i cuda-command-line-tools-7-0-7.0-28.x86_64.rpm
rpm -i cuda-nvrtc-7-0-7.0-28.x86_64.rpm
rpm -i cuda-nvrtc-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cusolver-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cusolver-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cublas-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cublas-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cufft-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cufft-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-curand-7-0-7.0-28.x86_64.rpm
rpm -i cuda-curand-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cusparse-7-0-7.0-28.x86_64.rpm
rpm -i cuda-cusparse-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-npp-7-0-7.0-28.x86_64.rpm
rpm -i cuda-npp-dev-7-0-7.0-28.x86_64.rpm
rpm -i cuda-samples-7-0-7.0-28.x86_64.rpm
rpm -i cuda-documentation-7-0-7.0-28.x86_64.rpm
rpm -i cuda-visual-tools-7-0-7.0-28.x86_64.rpm
rpm -i cuda-runtime-7-0-7.0-28.x86_64.rpm
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-7.0/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-7.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Update database for mlocate
updatedb
%files
%runscript
echo " "
echo " __________________ __ _______________ "
echo " -----/ ____/ __ \/ |/ / ____/_ __/ "
echo " --/ / / / / / /|_/ / __/ / / "
echo " / /___/ /_/ / / / / /___ / / "
echo " \____/\____/_/ /_/_____/ /_/ "
echo " "
%test
Bootstrap: yum
OSVersion: 6
MirrorURL: http://mirror.centos.org/centos-6/6/os/x86_64/
Include: yum
%labels
APPLICATION_NAME centos
APPLICATION_VERSION 6.10
APPLICATION_URL https://www.centos.org
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.6.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 4096
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190916
%setup
%environment
# Set system locale
export LC_ALL=C
# Set default miniconda environment
export PATH="/opt/miniconda3/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# https://forums.fedoraforum.org/showthread.php?281978-yum-failed-unexpected-file-type-or-format
rpm -vv --rebuilddb
yum -y update
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda2
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
chmod +x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh -b -p /opt/miniconda2
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Update database for mlocate
updatedb
%files
%runscript
echo " "
echo " __________________ __ _______________ "
echo " -----/ ____/ __ \/ |/ / ____/_ __/ "
echo " --/ / / / / / /|_/ / __/ / / "
echo " / /___/ /_/ / / / / /___ / / "
echo " \____/\____/_/ /_/_____/ /_/ "
echo " "
%test
Bootstrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-7/7/os/x86_64/
Include: yum
%labels
APPLICATION_NAME centos + cuda + openmpi
APPLICATION_VERSION 7.7.1908 + 10.1.168 + 3.1.4
APPLICATION_URL https://www.open-mpi.org/faq/?category=runcuda
SINGULARITY_VERSION 2.6.1
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20200228
%setup
%environment
# Set system locale
export LC_ALL=C
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Set paths to OpenMPI binaries and libraries
export PATH="/opt/openmpi-3.1.4/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi-3.1.4/lib:${LD_LIBRARY_PATH}"
# Set paths to OSU Microbenchmarks binaries
export PATH="/opt/omb-5.6.2/collective:${PATH}"
export PATH="/opt/omb-5.6.2/one-sided:${PATH}"
export PATH="/opt/omb-5.6.2/pt2pt:${PATH}"
export PATH="/opt/omb-5.6.2/startup:${PATH}"
# Set default miniconda environment
export PATH="/opt/miniconda3/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Location of NVIDIA repositories
declare -r NVIDIA_ROOT_URL='http://developer.download.nvidia.com/compute'
declare -r CUDA_REPO_URL="${NVIDIA_ROOT_URL}/cuda/repos/rhel7/x86_64"
declare -r ML_REPO_URL="${NVIDIA_ROOT_URL}/machine-learning/repos/rhel7/x86_64"
# Install NVIDIA package dependencies
yum -y install xorg-x11-server-Xorg
yum -y install xorg-x11-server-common
yum -y install xorg-x11-apps
yum -y install xorg-x11-utils
yum -y install xorg-x11-xauth
yum -y install xorg-x11-xkb-utils
yum -y install cmake
yum -y install make
yum -y install dkms
yum -y install kernel-headers
yum -y install glibc-devel
yum -y install glibc-headers
yum -y install glibc-utils
yum -y install libwayland-client
yum -y install libwayland-server
yum -y install pkgconfig
yum -y install libvdpau
yum -y install libva-vdpau-driver
yum -y install atk
yum -y install atk-devel
yum -y install cairo
yum -y install cairo-devel
yum -y install cairo-gobject
yum -y install cairo-gobject-devel
yum -y install cairo-tools
yum -y install fontconfig
yum -y install fontconfig-devel
yum -y install gdk-pixbuf2
yum -y install gdk-pixbuf2-devel
yum -y install gtk3
yum -y install gtk3-devel
yum -y install gtk2
yum -y install gtk2-devel
yum -y install jansson
yum -y install freeglut
yum -y install freeglut-devel
yum -y install libX11
yum -y install libX11-devel
yum -y install libX11-common
yum -y install libXmu
yum -y install libXmu-devel
yum -y install libXi
yum -y install libXi-devel
yum -y install mesa-libGLU
yum -y install mesa-libGLU-devel
yum -y install java-latest-openjdk
yum -y install java-latest-openjdk-devel
yum -y install grubby
yum -y install libtirpc
yum -y install ocl-icd
yum -y install opencl-filesystem
yum -y install vulkan-filesystem
# Download NVIDIA driver, libraries, and packages
wget --wait=10 "https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm"
rpm -i cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm
yum clean all
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/dkms-nvidia-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-devel-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-persistenced-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NVML-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-modprobe-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-settings-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-xconfig-418.67-1.el7.x86_64.rpm"
# Download CUDA libraries and packages
wget --wait=10 "${CUDA_REPO_URL}/cuda-compat-10-1-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-license-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvcc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprune-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-compiler-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gdb-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprof-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-memcheck-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cupti-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvtx-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas10-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas-devel-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-samples-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-documentation-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvvp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-toolkit-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-runtime-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor1-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-devel-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-doc-1.0.0-1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
# Install NVIDIA drivers, libraries, and packages
rpm -i nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-libs-418.67-4.el7.x86_64.rpm
yum -y install dkms-nvidia
yum -y install nvidia-driver
rpm -i nvidia-driver-NVML-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm
rpm -i nvidia-driver-devel-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm
rpm -i nvidia-modprobe-418.67-1.el7.x86_64.rpm
rpm -i nvidia-settings-418.67-1.el7.x86_64.rpm
rpm -i nvidia-xconfig-418.67-1.el7.x86_64.rpm
yum -y install nvidia-persistenced
yum -y install nvidia-driver-cuda
rpm -i cuda-compat-10-1-418.67-1.x86_64.rpm
rpm -i cuda-license-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvcc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprune-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-compiler-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gdb-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprof-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-memcheck-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cupti-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvtx-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i libcublas10-10.2.0.168-1.x86_64.rpm
rpm -i libcublas-devel-10.2.0.168-1.x86_64.rpm
rpm -i cuda-cufft-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-samples-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-documentation-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvvp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-toolkit-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-drivers-418.67-1.x86_64.rpm
rpm -i cuda-runtime-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-10-1-10.1.168-1.x86_64.rpm
rpm -i libcutensor1-1.0.0-1.x86_64.rpm
rpm -i libcutensor-devel-1.0.0-1.x86_64.rpm
rpm -i libcutensor-doc-1.0.0-1.x86_64.rpm
rpm -i libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libnccl-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Install basic drivers for user space access to Ethernet, RDMA,
# and Infiniband. See https://community.mellanox.com/docs/DOC-2431
yum -y install dkms
yum -y install infiniband-diags
yum -y install infiniband-diags-devel
yum -y install libibverbs
yum -y install libibverbs-devel
yum -y install ibacm
yum -y install librdmacm
yum -y install librdmacm-devel
yum -y install libmlx4
yum -y install libmlx5
yum -y install msflint
yum -y install libibcm
yum -y install libibmad
yum -y install libibmad-devel
yum -y install libibumad
yum -y install libibumad-devel
yum -y install opensm
yum -y install srptools
# Install additional tools
yum -y install ibutils
yum -y install libibverbs-utils
yum -y install rdmacm-utils
yum -y install librdmacm-utils
yum -y install perftest
yum -y install numactl
# Install libnl
yum -y install libnl3
yum -y install libnl3-devel
# Install OpenMPI dependencies
yum -y install zlib
yum -y install zlib-devel
# Download, build, and install OpenMPI
wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.4.tar.gz
tar -xzvf openmpi-3.1.4.tar.gz
cd openmpi-3.1.4
./configure --prefix=/opt/openmpi-3.1.4 --with-cuda
make all install
# Set paths to OpenMPI binaries and libraries
export PATH="/opt/openmpi-3.1.4/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi-3.1.4/lib:${LD_LIBRARY_PATH}"
cd /tmp
w
# Download, build, and install OSU Microbenchmarks
wget http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.2.tar.gz
tar -xzvf osu-micro-benchmarks-5.6.2.tar.gz
cd osu-micro-benchmarks-5.6.2
./configure --prefix='/opt/omb-5.6.2' CC='mpicc' CXX='mpicxx'
make
make install
# Reorganize OSU Microbenchmarks directory structure
cd /opt/omb-5.6.2
mv libexec/osu-micro-benchmarks/mpi/collective ./
mv libexec/osu-micro-benchmarks/mpi/one-sided ./
mv libexec/osu-micro-benchmarks/mpi/pt2pt ./
mv libexec/osu-micro-benchmarks/mpi/startup ./
rm -rf libexec
# Set paths to OSU Microbenchmarks binaries
export PATH="/opt/omb-5.6.2/collective:${PATH}"
export PATH="/opt/omb-5.6.2/one-sided:${PATH}"
export PATH="/opt/omb-5.6.2/pt2pt:${PATH}"
export PATH="/opt/omb-5.6.2/startup:${PATH}"
# Clean up /tmp directory
cd /tmp
rm Miniconda3-latest-Linux-x86_64.sh
rm *.deb
rm -rf openmpi-3.1.4*
rm -rf osu-micro-benchmarks-5.6.2*
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-7/7/os/x86_64/
Include: yum
%labels
APPLICATION_NAME centos + cuda
APPLICATION_VERSION 7.7.1908 + 10.1.168
APPLICATION_URL https://developer.nvidia.com/cuda-zone
SINGULARITY_VERSION 2.6.1
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20200213
%setup
%environment
# Set system locale
export LC_ALL=C
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Set default miniconda environment
export PATH="/opt/miniconda3/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Location of NVIDIA repositories
declare -r NVIDIA_ROOT_URL='http://developer.download.nvidia.com/compute'
declare -r CUDA_REPO_URL="${NVIDIA_ROOT_URL}/cuda/repos/rhel7/x86_64"
declare -r ML_REPO_URL="${NVIDIA_ROOT_URL}/machine-learning/repos/rhel7/x86_64"
# Install NVIDIA package dependencies
yum -y install xorg-x11-server-Xorg
yum -y install xorg-x11-server-common
yum -y install xorg-x11-apps
yum -y install xorg-x11-utils
yum -y install xorg-x11-xauth
yum -y install xorg-x11-xkb-utils
yum -y install cmake
yum -y install make
yum -y install dkms
yum -y install kernel-headers
yum -y install glibc-devel
yum -y install glibc-headers
yum -y install glibc-utils
yum -y install libwayland-client
yum -y install libwayland-server
yum -y install pkgconfig
yum -y install libvdpau
yum -y install libva-vdpau-driver
yum -y install atk
yum -y install atk-devel
yum -y install cairo
yum -y install cairo-devel
yum -y install cairo-gobject
yum -y install cairo-gobject-devel
yum -y install cairo-tools
yum -y install fontconfig
yum -y install fontconfig-devel
yum -y install gdk-pixbuf2
yum -y install gdk-pixbuf2-devel
yum -y install gtk3
yum -y install gtk3-devel
yum -y install gtk2
yum -y install gtk2-devel
yum -y install jansson
yum -y install freeglut
yum -y install freeglut-devel
yum -y install libX11
yum -y install libX11-devel
yum -y install libX11-common
yum -y install libXmu
yum -y install libXmu-devel
yum -y install libXi
yum -y install libXi-devel
yum -y install mesa-libGLU
yum -y install mesa-libGLU-devel
yum -y install java-latest-openjdk
yum -y install java-latest-openjdk-devel
yum -y install grubby
yum -y install libtirpc
yum -y install ocl-icd
yum -y install opencl-filesystem
yum -y install vulkan-filesystem
# Download NVIDIA driver, libraries, and packages
wget --wait=10 "https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm"
rpm -i cuda-repo-rhel7-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm
yum clean all
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-libs-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/dkms-nvidia-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-devel-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-persistenced-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-cuda-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NVML-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-modprobe-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-settings-418.67-1.el7.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-xconfig-418.67-1.el7.x86_64.rpm"
# Download CUDA libraries and packages
wget --wait=10 "${CUDA_REPO_URL}/cuda-compat-10-1-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-license-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvcc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprune-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-compiler-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gdb-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvprof-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-memcheck-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cupti-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvtx-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas10-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcublas-devel-10.2.0.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-samples-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-documentation-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvvp-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-tools-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-toolkit-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-libraries-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers-418.67-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-runtime-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/cuda-10-1-10.1.168-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor1-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-devel-1.0.0-1.x86_64.rpm"
wget --wait=10 "${CUDA_REPO_URL}/libcutensor-doc-1.0.0-1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm"
wget --wait=10 "${ML_REPO_URL}/python-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm"
# Install NVIDIA drivers, libraries, and packages
rpm -i nvidia-driver-cuda-libs-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-libs-418.67-4.el7.x86_64.rpm
yum -y install dkms-nvidia
yum -y install nvidia-driver
rpm -i nvidia-driver-NVML-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-NvFBCOpenGL-418.67-4.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-418.67-1.el7.x86_64.rpm
rpm -i nvidia-libXNVCtrl-devel-418.67-1.el7.x86_64.rpm
rpm -i nvidia-driver-devel-418.67-4.el7.x86_64.rpm
rpm -i nvidia-driver-diagnostic-418.67-4.el7.x86_64.rpm
rpm -i nvidia-modprobe-418.67-1.el7.x86_64.rpm
rpm -i nvidia-settings-418.67-1.el7.x86_64.rpm
rpm -i nvidia-xconfig-418.67-1.el7.x86_64.rpm
yum -y install nvidia-persistenced
yum -y install nvidia-driver-cuda
rpm -i cuda-compat-10-1-418.67-1.x86_64.rpm
rpm -i cuda-license-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-misc-headers-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvcc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cuobjdump-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprune-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-compiler-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-driver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cudart-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvdisasm-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gdb-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvprof-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-memcheck-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cupti-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-gpu-library-advisor-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvtx-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-sanitizer-api-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-command-line-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvrtc-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvml-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvgraph-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvjpeg-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusolver-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i libcublas10-10.2.0.168-1.x86_64.rpm
rpm -i libcublas-devel-10.2.0.168-1.x86_64.rpm
rpm -i cuda-cufft-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cufft-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-curand-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-cusparse-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-npp-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-samples-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-documentation-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-compute-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nsight-systems-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-nvvp-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-visual-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-tools-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-dev-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-toolkit-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-libraries-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-drivers-418.67-1.x86_64.rpm
rpm -i cuda-runtime-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-demo-suite-10-1-10.1.168-1.x86_64.rpm
rpm -i cuda-10-1-10.1.168-1.x86_64.rpm
rpm -i libcutensor1-1.0.0-1.x86_64.rpm
rpm -i libcutensor-devel-1.0.0-1.x86_64.rpm
rpm -i libcutensor-doc-1.0.0-1.x86_64.rpm
rpm -i libcudnn7-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libcudnn7-devel-7.6.5.32-1.cuda10.1.x86_64.rpm
rpm -i libnccl-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnccl-devel-2.5.6-1+cuda10.1.x86_64.rpm
rpm -i libnvinfer6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvinfer-plugin-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvonnxparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers6-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i libnvparsers-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python3-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python-libnvinfer-6.0.1-1.cuda10.1.x86_64.rpm
rpm -i python-libnvinfer-devel-6.0.1-1.cuda10.1.x86_64.rpm
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-10.1/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-7/7/os/x86_64/
Include: yum
%labels
APPLICATION_NAME centos + openmpi
APPLICATION_VERSION 7.7.1908 + 3.1.4
APPLICATION_URL https://www.open-mpi.org/
SINGULARITY_VERSION 2.6.1
SINGULARITY_IMAGE_SIZE 4096
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20200228
%setup
%environment
# Set system locale
export LC_ALL=C
# Set paths to OpenMPI binaries and libraries
export PATH="/opt/openmpi-3.1.4/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi-3.1.4/lib:${LD_LIBRARY_PATH}"
# Set paths to OSU Microbenchmarks binaries
export PATH="/opt/omb-5.6.2/collective:${PATH}"
export PATH="/opt/omb-5.6.2/one-sided:${PATH}"
export PATH="/opt/omb-5.6.2/pt2pt:${PATH}"
export PATH="/opt/omb-5.6.2/startup:${PATH}"
# Set default miniconda environment
export PATH="/opt/miniconda3/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Install basic drivers for user space access to Ethernet, RDMA,
# and Infiniband. See https://community.mellanox.com/docs/DOC-2431
yum -y install dkms
yum -y install infiniband-diags
yum -y install infiniband-diags-devel
yum -y install libibverbs
yum -y install libibverbs-devel
yum -y install ibacm
yum -y install librdmacm
yum -y install librdmacm-devel
yum -y install libmlx4
yum -y install libmlx5
yum -y install msflint
yum -y install libibcm
yum -y install libibmad
yum -y install libibmad-devel
yum -y install libibumad
yum -y install libibumad-devel
yum -y install opensm
yum -y install srptools
# Install additional tools
yum -y install ibutils
yum -y install libibverbs-utils
yum -y install rdmacm-utils
yum -y install librdmacm-utils
yum -y install perftest
yum -y install numactl
# Install libnl
yum -y install libnl3
yum -y install libnl3-devel
# Install OpenMPI dependencies
yum -y install zlib
yum -y install zlib-devel
# Download, build, and install OpenMPI
wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.4.tar.gz
tar -xzvf openmpi-3.1.4.tar.gz
cd openmpi-3.1.4
./configure --prefix=/opt/openmpi-3.1.4
make all install
# Set paths to OpenMPI binaries and libraries
export PATH="/opt/openmpi-3.1.4/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi-3.1.4/lib:${LD_LIBRARY_PATH}"
cd /tmp
# Download, build, and install OSU Microbenchmarks
wget http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.2.tar.gz
tar -xzvf osu-micro-benchmarks-5.6.2.tar.gz
cd osu-micro-benchmarks-5.6.2
./configure --prefix='/opt/omb-5.6.2' CC='mpicc' CXX='mpicxx'
make
make install
# Reorganize OSU Microbenchmarks directory structure
cd /opt/omb-5.6.2
mv libexec/osu-micro-benchmarks/mpi/collective ./
mv libexec/osu-micro-benchmarks/mpi/one-sided ./
mv libexec/osu-micro-benchmarks/mpi/pt2pt ./
mv libexec/osu-micro-benchmarks/mpi/startup ./
rm -rf libexec
# Set paths to OSU Microbenchmarks binaries
export PATH="/opt/omb-5.6.2/collective:${PATH}"
export PATH="/opt/omb-5.6.2/one-sided:${PATH}"
export PATH="/opt/omb-5.6.2/pt2pt:${PATH}"
export PATH="/opt/omb-5.6.2/startup:${PATH}"
# Clean up /tmp directory
cd /tmp
rm Miniconda3-latest-Linux-x86_64.sh
rm *.deb
rm -rf openmpi-3.1.4*
rm -rf osu-micro-benchmarks-5.6.2*
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-7/7/os/x86_64/
Include: yum
%labels
APPLICATION_NAME centos
APPLICATION_VERSION 7.7.1908
APPLICATION_URL https://www.centos.org
SINGULARITY_VERSION 2.6.1
SINGULARITY_IMAGE_SIZE 4096
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20200129
%setup
%environment
# Set system locale
export LC_ALL=C
# Set default miniconda environment
export PATH="/opt/miniconda3/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Add repositories
yum -y install epel-release
# Install system metapackages
yum -y groupinstall "Development Tools"
yum -y groupinstall "Additional Development"
yum -y groupinstall "Compatibility Libraries"
# Update all packages to their latest versions
yum -y update
# Install common packages
yum -y install bc
yum -y install cmake
yum -y install curl
yum -y install mlocate
yum -y install rsync
yum -y install time
yum -y install wget
yum -y install which
# Install expect to automate responses for interactive build questions
yum -y install expect
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME deepbench
APPLICATION_VERSION unknown
APPLICATION_URL https://github.com/baidu-research/DeepBench
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.5.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 8192
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 201808524
%setup
%environment
# Set system locale
export LC_ALL=C
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install libtool
apt-get -y install pkg-config
apt-get -y install gfortran
apt-get -y install zip
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda2
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
chmod +x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh -b -p /opt/miniconda2
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Location of NVIDIA repositories
declare -r NVIDIA_ROOT_URL='http://developer.download.nvidia.com/compute'
declare -r CUDA_REPO_URL="${NVIDIA_ROOT_URL}/cuda/repos/ubuntu1604/x86_64"
declare -r ML_REPO_URL="${NVIDIA_ROOT_URL}/machine-learning/repos/ubuntu1604/x86_64/"
# Install NVIDIA package dependencies
apt-get -y install x11-common
apt-get -y install xserver-xorg-core
apt-get -y install cmake
apt-get -y install make
apt-get -y install dkms
apt-get -y install linux-libc-dev
apt-get -y install libc6-dev
apt-get -y install lib32gcc1
apt-get -y install libc6-i386
apt-get -y install libgl1
apt-get -y install libwayland-client0
apt-get -y install libwayland-server0
apt-get -y install pkg-config
apt-get -y install screen-resolution-extra
apt-get -y install libvdpau1
apt-get -y install libatk1.0-0
apt-get -y install libcairo-gobject2
apt-get -y install libcairo2
apt-get -y install libfontconfig1
apt-get -y install libgdk-pixbuf2.0-0
apt-get -y install libgtk-3-0
apt-get -y install libgtk2.0-0
apt-get -y install libjansson4
apt-get -y install freeglut3-dev
apt-get -y install libx11-dev
apt-get -y install libxmu-dev
apt-get -y install libxi-dev
apt-get -y install libglu1-mesa
apt-get -y install libglu1-mesa-dev
apt-get -y install default-jre
# Download NVIDIA drivers, libraries, and packages
wget --wait=10 "${CUDA_REPO_URL}/nvidia-367_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-367-dev_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-modprobe_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/libcuda1-367_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-libopencl1-367_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-opencl-icd-367_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/libxnvctrl0_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/nvidia-settings_367.48-0ubuntu1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-drivers_367.48-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-license-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-misc-headers-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-core-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-driver-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cudart-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-command-line-tools-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvrtc-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvml-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-nvgraph-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusolver-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cublas-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cublas-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cufft-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-curand-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-cusparse-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-npp-dev-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-samples-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-documentation-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-visual-tools-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-toolkit-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-runtime-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${CUDA_REPO_URL}/cuda-demo-suite-8-0_8.0.44-1_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libcudnn6_6.0.21-1+cuda8.0_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libnccl2_2.1.2-1+cuda8.0_amd64.deb"
wget --wait=10 "${ML_REPO_URL}/libnccl-dev_2.1.2-1+cuda8.0_amd64.deb"
# Install NVIDIA drivers, libraries, and packages
dpkg -i nvidia-367_367.48-0ubuntu1_amd64.deb
dpkg -i nvidia-367-dev_367.48-0ubuntu1_amd64.deb
dpkg -i nvidia-modprobe_367.48-0ubuntu1_amd64.deb
dpkg -i libcuda1-367_367.48-0ubuntu1_amd64.deb
dpkg -i nvidia-libopencl1-367_367.48-0ubuntu1_amd64.deb
dpkg -i nvidia-opencl-icd-367_367.48-0ubuntu1_amd64.deb
dpkg -i libxnvctrl0_367.48-0ubuntu1_amd64.deb
dpkg -i nvidia-settings_367.48-0ubuntu1_amd64.deb
dpkg -i cuda-drivers_367.48-1_amd64.deb
dpkg -i cuda-license-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-misc-headers-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-core-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cudart-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-driver-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cudart-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-command-line-tools-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-nvrtc-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-nvrtc-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-nvml-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-nvgraph-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-nvgraph-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cusolver-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cusolver-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cublas-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cublas-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cufft-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cufft-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-curand-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-curand-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cusparse-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-cusparse-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-npp-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-npp-dev-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-samples-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-documentation-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-visual-tools-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-toolkit-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-runtime-8-0_8.0.44-1_amd64.deb
dpkg -i cuda-demo-suite-8-0_8.0.44-1_amd64.deb
dpkg -i libcudnn6_6.0.21-1+cuda8.0_amd64.deb
dpkg -i libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb
dpkg -i libnccl2_2.1.2-1+cuda8.0_amd64.deb
dpkg -i libnccl-dev_2.1.2-1+cuda8.0_amd64.deb
# Set paths to CUDA binaries and libraries
export PATH="/usr/local/cuda-8.0/bin${PATH:+:${PATH}}"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}"
# Install basic drivers for user space access to Ethernet, RDMA,
# and Infiniband. See https://community.mellanox.com/docs/DOC-2431
apt-get -y install dkms
apt-get -y install infiniband-diags
apt-get -y install libibverbs-dev
apt-get -y install ibacm
apt-get -y install librdmacm-dev
apt-get -y install libmlx4-dev
apt-get -y install libmlx5-dev
apt-get -y install mstflint
apt-get -y install libibcm-dev
apt-get -y install libibmad-dev
apt-get -y install libibumad-dev
apt-get -y install opensm
apt-get -y install srptools
# Install additional tools
apt-get -y install ibutils
apt-get -y install ibverbs-utils
apt-get -y install rdmacm-utils
apt-get -y install perftest
apt-get -y install numactl
apt-get -y install libnuma-dev
# Install libnl
apt-get -y install libnl-3-200
apt-get -y install libnl-route-3-200
apt-get -y install libnl-route-3-dev
apt-get -y install libnl-utils
# Download, build, and install CUDA-aware OpenMPI
wget https://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.4.tar.gz
tar -xzvf openmpi-1.8.4.tar.gz
cd openmpi-1.8.4
./configure --prefix=/opt/openmpi-1.8.4 --with-cuda
make all install
# Set paths to OpenMPI binaries and libraries
export PATH="/opt/openmpi-1.8.4/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/openmpi-1.8.4/lib:${LD_LIBRARY_PATH}"
cd /opt
# Donwload, build, and install NCCL tests
git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests
make MPI=1 \
MPI_HOME='/opt/openmpi-1.8.4' \
CUDA_HOME='/usr/local/cuda-8.0' \
NCCL_HOME='/usr/lib/x86_64-linux-gnu'
# Download, build, and install DeepBench
cd /opt
git clone https://github.com/baidu-research/DeepBench
cd DeepBench/code
git clone https://github.com/baidu-research/baidu-allreduce
cd baidu-allreduce
make MPI_ROOT='/opt/openmpi-1.8.4' CUDA_ROOT='/usr/local/cuda-8.0'
cd ../
make BAIDU_ALLREDUCE_PATH='/opt/DeepBench/code/baidu-allreduce' \
CUDA_PATH='/usr/local/cuda-8.0' \
CUDNN_PATH='/usr/lib/x86_64-linux-gnu' \
NCCL_PATH='/usr/lib/x86_64-linux-gnu' \
MPI_PATH='/opt/openmpi-1.8.4' \
MPI_INCLUDE_PATH='/opt/openmpi-1.8.4/include' \
ARCH='sm_30,sm_32,sm_35,sm_50,sm_52,sm_60,sm_61,sm_62'
# Set path to baidu-allreduce and Deepbench binaries
export PATH="/opt/DeepBench/code/bin:${PATH}"
export LD_LIBRARY_PATH="/opt/DeepBench/code/baidu-allreduce:${LD_LIBRARY_PATH}"
# Set container environment variables
cd /.singularity.d/env
echo 'export PATH="/usr/local/cuda-8.0/bin${PATH:+:${PATH}}"' >> 90-environment.sh
echo 'export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"' >> 90-environment.sh
echo 'export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}"' >> 90-environment.sh
echo 'export PATH="/opt/openmpi-1.8.4/bin:${PATH}"' >> 90-environment.sh
echo 'export LD_LIBRARY_PATH="/opt/openmpi-1.8.4/lib:${LD_LIBRARY_PATH}"' >> 90-environment.sh
echo 'export PATH="/opt/DeepBench/code/bin:${PATH}"' >> 90-environment.sh
echo 'export LD_LIBRARY_PATH="/opt/DeepBench/code/baidu-allreduce:${LD_LIBRARY_PATH}"' >> 90-environment.sh
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME gromacs
APPLICATION_VERSION 2019
APPLICATION_URL http://www.gromacs.org/
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.6.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 4096
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190501
%setup
%environment
# Set system locale
export LC_ALL=C
# Source GROMACS environment variables
export GROMACS_VERSION='2019'
export GROMACS_BUILD='tmpi'
export GROMACS_ROOT_DIR="/opt/software/molecular-dynamics/gromacs"
. "${GROMACS_ROOT_DIR}/${GROMACS_VERSION}/${GROMACS_BUILD}/bin/GMXRC"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install cmake
apt-get -y install libtool
apt-get -y install pkg-config
apt-get -y install gfortran
apt-get -y install zip
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda2
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
chmod +x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh -b -p /opt/miniconda2
# Install miniconda3
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
# Download, build, and install GROMACS
declare -xr GROMACS_VERSION='2019'
declare -xr GROMACS_BUILD='tmpi'
declare -xr GROMACS_ROOT_DIR="/opt/software/molecular-dynamics/gromacs"
declare -xr GROMACS_ROOT_URL='http://ftp.gromacs.org/pub'
mkdir -p "${GROMACS_ROOT_DIR}/${GROMACS_VERSION}/${GROMACS_BUILD}
cd "${GROMACS_ROOT_DIR}/${GROMACS_VERSION}/${GROMACS_BUILD}
wget "${GROMACS_ROOT_URL}/gromacs/gromacs-${GROMACS_VERSION}.tar.gz"
tar -xzvf "gromacs-${GROMACS_VERSION}.tar.gz"
cd "gromacs-${GROMACS_VERSION}"
mkdir -p build
cd build
cmake .. \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${GROMACS_ROOT_DIR}/${GROMACS_VERSION}/${GROMACS_BUILD}" \
-DGMX_PREFER_STATIC_LIBS=ON \
-DBUILD_SHARED_LIBS=OFF \
-DGMX_EXTERNAL_BLAS=OFF \
-DGMX_EXTERNAL_BOOST=OFF \
-DGMX_EXTERNAL_LAPACK=OFF \
-DGMX_FFT_LIBRARY=fftw3 \
-DGMX_BUILD_OWN_FFTW=ON \
-DGMX_DOUBLE=OFF \
-DGMX_SIMD=AVX2_256 \
-DGMX_MPI=OFF \
-DGMX_OPENMP=OFF \
-DGMX_GPU=OFF \
-DREGRESSIONTEST_DOWNLOAD=ON
make
make check
make install
# Update database for mlocate
updatedb
%files
%runscript
exec "${@}"
%test
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME jupyter
APPLICATION_VERSION 4.4.0
APPLICATION_URL https://jupyter.org/index.html
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.6.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190516
%setup
%environment
# Set system locale
export LC_ALL=C
export PATH="/opt/anaconda3/bin:${PATH}"
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install cmake
apt-get -y install libtool
apt-get -y install pkg-config
apt-get -y install gfortran
apt-get -y install zip
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install Anaconda2
wget https://repo.anaconda.com/archive/Anaconda2-2019.03-Linux-x86_64.sh
chmod +x Anaconda2-2019.03-Linux-x86_64.sh
./Anaconda2-2019.03-Linux-x86_64.sh -b -p /opt/anaconda2
# Install Anaconda3
wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
chmod +x Anaconda3-2019.03-Linux-x86_64.sh
./Anaconda3-2019.03-Linux-x86_64.sh -b -p /opt/anaconda3
# Install additional python(2) packages with Anaconda2
export PATH="/opt/anaconda2/bin:${PATH}"
conda install -y jupyterhub
# Install additional python3 packages with Anaconda3
export PATH="/opt/anaconda3/bin:${PATH}"
conda install -y jupyterhub
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME keras + tensorflow
APPLICATION_VERSION 2.2.0 + 1.8
APPLICATION_URL https://keras.io/
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.6.1
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20190814
%setup
%environment
# Set system locale
export LC_ALL=C
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install cmake
apt-get -y install libtool
apt-get -y install gfortran
apt-get -y install pkg-config
apt-get -y install wget
apt-get -y install zip
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install Bazel from Debian Package
apt-get -y install openjdk-8-jdk
apt-get -y install zlib1g-dev
wget https://github.com/bazelbuild/bazel/releases/download/0.13.1/bazel_0.13.1-linux-x86_64.deb
dpkg -i bazel_0.13.1-linux-x86_64.deb
# Install TensorFlow python(2) dependencies
apt-get -y install python
apt-get -y install python-dev
apt-get -y install python-pip
apt-get -y install python-wheel
apt-get -y install python-enum34
apt-get -y install python-mock
apt-get -y install python-numpy
# Download TensorFlow source
cd /opt
git clone https://github.com/tensorflow/tensorflow
cd tensorflow
git checkout r1.8
# Build and install TensorFlow for python(2)
echo '#!/usr/bin/expect -f' > install-tensorflow-python.exp
echo 'spawn ./configure' >> install-tensorflow-python.exp
echo 'expect "Please specify the location of python. \[Default is /usr/bin/python\]: "' >> install-tensorflow-python.exp
echo 'send "/usr/bin/python\r"' >> install-tensorflow-python.exp
echo 'expect "Please input the desired Python library path to use. Default is \[/usr/local/lib/python2.7/dist-packages\]\r"' >> install-tensorflow-python.exp
echo 'send "/usr/local/lib/python2.7/dist-packages\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with jemalloc as malloc support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "Y\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Google Cloud Platform support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Hadoop File System support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Amazon S3 File System support? \[Y/n\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with Apache Kafka Platform support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with XLA JIT support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with GDR support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with VERBS support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with OpenCL SYCL support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with CUDA support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to download a fresh release of clang? (Experimental) \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Do you wish to build TensorFlow with MPI support? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "Please specify optimization flags to use during compilation when bazel option \"--config=opt\" is specified \[Default is -march=native\]: "' >> install-tensorflow-python.exp
echo 'send " -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mtune=generic\r"' >> install-tensorflow-python.exp
echo 'expect "Would you like to interactively configure ./WORKSPACE for Android builds? \[y/N\]: "' >> install-tensorflow-python.exp
echo 'send "N\r"' >> install-tensorflow-python.exp
echo 'expect "> "' >> install-tensorflow-python.exp
chmod +x install-tensorflow-python.exp
./install-tensorflow-python.exp
# Clear /home/root/.cache prior to bazel build. Otherwise, previous builds may cause some conflicts. See 'dangling symbolic links' at https://github.com/tensorflow/tensorflow/issues/13928
rm -rf /home/root/.cache
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package tensorflow_pkg
pip install tensorflow_pkg/tensorflow-1.8.0-cp27-cp27mu-linux_x86_64.whl
# Install common python packages for data science and machine learning applications
apt-get -y install python-scipy
apt-get -y install python-pandas
apt-get -y install python-matplotlib
#apt-get -y install ipython
#apt-get -y install ipython-notebook
python -m pip install jupyter
apt-get -y install python-sympy
apt-get -y install python-nose
apt-get -y install python-sklearn
apt-get -y install python-skimage
apt-get -y install python-mlpy
apt-get -y install python-nltk
apt-get -y install python-statsmodels
apt-get -y install libopencv-dev
apt-get -y install python-opencv
# Install common python packages for the biological and biomedical sciences
apt-get -y install python-biopython
apt-get -y install python-biopython-sql
# Install other common python packages
apt-get -y install python-h5py
# Install TensorFlow python3 dependencies
apt-get -y install python3-numpy
apt-get -y install python3-dev
apt-get -y install python3-pip
apt-get -y install python3-wheel
apt-get -y install python3-mock
# Build and install TensorFlow for python3
echo '#!/usr/bin/expect -f' > install-tensorflow-python3.exp
echo 'spawn ./configure' >> install-tensorflow-python3.exp
echo 'expect "Please specify the location of python. \[Default is /usr/bin/python\]: "' >> install-tensorflow-python3.exp
echo 'send "/usr/bin/python3\r"' >> install-tensorflow-python3.exp
echo 'expect "Please input the desired Python library path to use. Default is \[/usr/local/lib/python3.5/dist-packages\]\r"' >> install-tensorflow-python3.exp
echo 'send "/usr/local/lib/python3.5/dist-packages\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with jemalloc as malloc support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "Y\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Google Cloud Platform support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Hadoop File System support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Amazon S3 File System support? \[Y/n\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with Apache Kafka Platform support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with XLA JIT support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with GDR support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with VERBS support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with OpenCL SYCL support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with CUDA support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to download a fresh release of clang? (Experimental) \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Do you wish to build TensorFlow with MPI support? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "Please specify optimization flags to use during compilation when bazel option \"--config=opt\" is specified \[Default is -march=native\]: "' >> install-tensorflow-python3.exp
echo 'send " -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mtune=generic\r"' >> install-tensorflow-python3.exp
echo 'expect "Would you like to interactively configure ./WORKSPACE for Android builds? \[y/N\]: "' >> install-tensorflow-python3.exp
echo 'send "N\r"' >> install-tensorflow-python3.exp
echo 'expect "> "' >> install-tensorflow-python3.exp
chmod +x install-tensorflow-python3.exp
./install-tensorflow-python3.exp
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package tensorflow_pkg
pip3 install tensorflow_pkg/tensorflow-1.8.0-cp35-cp35m-linux_x86_64.whl
# Install common python3 packages for data science and machine learning applications
apt-get -y install python3-scipy
apt-get -y install python3-pandas
apt-get -y install python3-matplotlib
#apt-get -y install ipython3
#apt-get -y install ipython3-notebook
python3 -m pip install jupyter
apt-get -y install python3-sympy
apt-get -y install python3-nose
apt-get -y install python3-sklearn
apt-get -y install python3-skimage
apt-get -y install python3-nltk
# Install common python3 packages for the biological and biomedical sciences
apt-get -y install python3-biopython
apt-get -y install python3-biopython-sql
# Install other common python3 packages
apt-get -y install python3-h5py
# Install Keras dependencies for python(2) and python3
apt-get -y install python-yaml
apt-get -y install python3-yaml
cd /opt
# Download, build, and install Keras
wget https://github.com/keras-team/keras/archive/2.2.0.tar.gz
tar -xzvf 2.2.0.tar.gz
cd /opt/keras-2.2.0
python setup.py install
python3 setup.py install
# Update database for mlocate
updatedb
%files
%runscript
%test
This diff is collapsed.
Bootstrap: debootstrap
MirrorURL: http://us.archive.ubuntu.com/ubuntu
OSVersion: xenial
%labels
APPLICATION_NAME keras + theano
APPLICATION_VERSION 2.2.0 + 1.0.3
APPLICATION_URL https://keras.io/
SYSTEM_NAME comet
SYSTEM_SINGULARITY_VERSION 2.5.2
SYSTEM_URL http://www.sdsc.edu/support/user_guides/comet.html
SINGULARITY_IMAGE_SIZE 16384
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20181203
%setup
%environment
# Set system locale
export LC_ALL=C
# Set other environment variables
export PATH="/opt/miniconda2/bin:${PATH}"
export MKL_THREADING_LAYER='GNU'
export KERAS_BACKEND='theano'
%post -c /bin/bash
# Set system locale
export LC_ALL=C
# Install system metapackages
apt-get -y install ubuntu-standard
apt-get -y install ubuntu-server
# Add repositories
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION} restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-updates restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-backports restricted"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security main"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security universe"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security multiverse"
add-apt-repository -y "deb ${MIRRORURL} ${OSVERSION}-security restricted"
# Upgrade all packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install common packages from 'main'
apt-get -y install autoconf
apt-get -y install automake
apt-get -y install build-essential
apt-get -y install cmake
apt-get -y install libtool
apt-get -y install pkg-config
apt-get -y install gfortran
apt-get -y install zip
# Install expect to automate responses for interactive build questions
apt-get -y install expect
# Make filesystem mount points
mkdir /cvmfs /oasis /projects /scratch
# Use /tmp to store temporary files within the container during the
# bootstraping process
cd /tmp
# Install miniconda2
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
chmod +x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh -b -p /opt/miniconda2
# Install python(2) dependencies for Theano
export PATH="/opt/miniconda2/bin:${PATH}"
conda install -y numpy
conda install -y scipy
conda install -y mkl
conda install -y nose
conda install -y sphinx
conda install -y pydot-ng
# Install Theano for python(2)
conda install -y theano
# Install common python packages for data science and machine
# learning applications
conda install -y pandas
conda install -y matplotlib
conda install -y ipython
conda install -y ipython-notebook
conda install -y sympy
conda install -y scikit-learn
conda install -y scikit-image
conda install -y nltk
conda install -y statsmodels
conda install -y opencv
# Install Keras dependencies for python(2)
conda install -y yaml
conda install -y pyyaml
cd /opt
# Download, build, and install Keras
wget https://github.com/keras-team/keras/archive/2.2.0.tar.gz
tar -xzvf 2.2.0.tar.gz
cd /opt/keras-2.2.0
python setup.py install
# Update database for mlocate
updatedb
%files
%runscript
%test
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment