Nvidia has available free online OpenACC courses:https://developer.nvidia.com/openacc/overviewhttps://developer.nvidia.com/openacc-courses Panel |
---|
borderColor | #9c9fb5 |
---|
bgColor | #fcfcfc |
---|
borderWidth | 2 |
---|
borderStyle | solid |
---|
|
ApplicationsMany applications have been optimized to run faster on GPU's. |
These include: Application | Information | Access |
---|
NAMD |
|
- installed ;_cuda - | A restricted license version is installed |
|
on Ocelote the licensed users | $ module load vasp | GROMACS |
|
- on Ocelote; | $ module load gromacs | LAMMPS |
|
- on Ocelote; /gcc/16Mar18 - Installed on Ocelote; and available as an application through Open OnDemand | $ module load abaqus | GAUSSIAN |
|
- on Ocelote; . See these notes - Review the GPU Coder at their web siteANSYS FluentRELION - available as a Singularity container or as a module.ML and DL frameworks - See the next section belowNVIDIA GPU Cloud Container Registry
We support the use of HPC and ML/DL containers available on NVIDIA GPU Cloud (NGC). Many of the popular HPC applications including NAMD, LAMMPS and GROMACS containers are optimized for performance and available to run in Singularity on Ocelote or Puma. On Ocelote these containers must be run on nodes with CentOS 7 installed.
The containers and respective README files can be found at /unsupported/singularity/nvidia/os7 on Ocelote.
The containers and respective README files can be found at /contrib/singularity/nvidia on Puma.
The other option for accessing ML / DL frameworks is through Python 3.6 which is covered in the next section.
Tip |
---|
The Nvidia images have been modified to include bindings for your /extra and /groups directories if you want to run your jobs from those directories. |
These containers have not been updated in a while for two reasons; first that the newer versions would only run on nodes built with CentOS 7, and second that most of them are available in Python 3.6. See elsewhere on this page for the usage of CentOS 7 nodes.
nvidia-caffe.18.09-py2.simg | Caffe is a deep learning framework made with expression, speed, and modularity in mind. It was originally developed by the Berkeley Vision and Learning Center (BVLC) |
nvidia-pytorch.18.09-py3.simg | PyTorch is a Python package that provides two high-level features: - Tensor computation (like numpy) with strong GPU acceleration
- Deep Neural Networks built on a tape-based autograd system
|
nvidia-mxnet.18.09.simg | MXNet is a deep learning framework designed for both efficiency and flexibility. It allows you to mix the flavors of symbolic programming and imperative programming to maximize efficiency and productivity. |
nvidia-tensorflow.18.09-py3.simg | TensorFlow is an open source software library for numerical computation using data flow graphs. TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research. |
nvidia-theano.18.08.simg | Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. |
Each is provided in a Singularity container.
The file name has a tag at the end that represents when it was made, so 18.01 is January 2018
Pulling Nvidia ML / DL Images on Ocelote
Tip |
---|
It is possible for you to create your own Singularity containers on Ocelote pulling down the images created by Nvidia. The general rule that you cannot create your own containers because that would require root authority still applies. Root authority is not required if you follow this procedure. |
Follow this procedure. | Installed as a module and available as an application through Open OnDemand. Review the GPU Coder on their website | $ module load matlab | ANSYS Fluent | Installed as a module and available as an application through Open OnDemand | $ module load ansys | RELION | Available as a Singularity container or as a module. | $ module load relion | ML and DL Frameworks | See the section below. |
|
Python ML/DL including Nvidia RAPIDS The minimum version of Python that is supported is 3.6 |
so you will module load python/3.6 for all these functions. This will get you to installed packages including: Framework | Details |
---|
numba | RAPIDS: numba is for Cuda programming | cuml | RAPIDS: Cuda Machine Learning has many ML algorithms like K-means, PCA and SVM | cudf | RAPIDS: Cuda Dataframes supports loading and manipulating datasets | tensorflow | TensorFlow is an open source software library for numerical computation using data flow graphs. | torch | PyTorch supports tensor computation and deep neural networks | caffe2 | A deep learning framework | tensorrt | Inference server for deep learning | tensorboard | Visualization tool for machine learning |
|
Tip |
---|
You must use a node with CentOS 7 as mentioned above, and you may need to load modules beyond python/3.6, such as tensorrt, cuda101/neuralnet |
PBS Usage including CentOS 7
Tip |
---|
The GPU nodes have more memory than the other Ocelote nodes so the select statements reflect 8GB per core by 28 cores equals 224GB. The following examples use the CentOS 7 nodes with the attribute os7=True |
Either: copy the file you wish to use to your directory. Your home path as well as /extra and /xdisk have been bound to the image, so those are your choices.
Or: run the singularity file from where it is. Since you cannot modify it you will not interfere with anyone else.
For interactive use, start an interactive job on a GPU node modifying this command:
Code Block |
---|
$ qsub -I -N jobname -W group_list=GROUP-NAME -q windfall -l select=1:ncpus=28:mem=224gb:np100s=1:os7=True -l walltime=1:0:0 |
You must change the group_list and you should change the other attributes as desired.
On the compute node assigned to you, as an example you can run:
Code Block |
---|
$ module load singularity
$ singularity exec --nv nvidia-tensorflow.18.01-py3.simg python tensorflow_example.py |
You need to include the --nv and note it has two dashes. This will bind the Cuda libraries.
The example file is included in this directory. "tensorflow_example.py"
For batch use, you will include these three lines in your submission script
Code Block |
---|
#PBS -l select=1:ncpus=28:mem=224gb:np100s=1:os7=True
module load singularity
singularity exec --nv nvidia-tensorflow.18.01-py3.simg python tensorflow_example.py |
You will want exclusive access to the node so there is not contention for the GPU. That is obtained by asking for all 28 cores as shown above
Tip |
---|
Note: the option np100s=0 is not valid. Just leave out that part of the statement if you are not using GPU's |
Tip |
---|
The test V100 node will have nv100s=1 instead of np100s=1. #QSUB -l select=1:ncpus=28:mem=224gb:np100s=1:os7=True |
There are more detailed examples here
Singularity
For more information on Singularity, see their web site at:
http://singularity.lbl.gov/user-guide
There are tutorials for Singularity on HPC here
Training
We host workshops from the Pittsburgh Supercomputer Center which is a NSF funded location. We are working with Nvidia to offer a workshop in the April 2018 timeframe.
Watch for announcements from the hpc-info list.
Nvidia periodically runs training sessions like these ones:Accelerate Your Code with OpenACC