Software Old: Difference between revisions

From NU HPC Wiki
Jump to navigation Jump to search
(Created page with "List of software packages currently available on Shabyt Note that there maybe different versions available for each of the listed modules. Type module avail in the terminal window to see the complete list of versions. Module Name Software Name Description [13]Anaconda Anaconda Anaconda is a distribution of the Python and R programming languages for scientific computing, that aims to simplify package management and deployment.[14]Product Page [15]A...")
 
No edit summary
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
List of software packages currently available on Shabyt
== New Software ==
  Note that there maybe different versions available for each of the
New software can be installed system-wide at the request of users, provided it meets the following criteria:
  listed modules. Type module avail in the terminal window to see the
* It is either freely available or NU has a site license for it.
  complete list of versions.
* It is compatible with the existing OS environment on Shabyt.
  Module Name Software Name Description
* It can utilize resources available on Shabyt effectively.
  [13]Anaconda Anaconda Anaconda is a distribution of the Python and R
For assistance regarding new software packages, please contact Shabyt system administrators at [mailto:hpcadmin@nu.edu.kz hpcadmin@nu.edu.kz].
  programming languages for scientific computing, that aims to simplify
 
  package management and deployment.[14]Product Page
== Software Priorities ==
  [15]ANSYS ANSYS ANSYS is a general-purpose, finite-element modeling
Software applications are installed in accordance with priorities.
  package for numerically solving a wide variety of mechanical
* Software which can be installed via EasyBuild application falls under this category. List of supported EasyBuild softwares you can find here: [https://docs.easybuild.io/version-specific/supported-software/ EasyBuild]
  problems.[16]Product Page
* Applications that are crucial for User Groups but cannot be installed through EasyBuild fall under this priority.
  aocc AMD Optimizing C/C++ Compiler A set of LLVM compilers (clang,
* Individual user requests. Such requests will be processed only after other priorities have been fulfilled.
  flang) and toolchain technologies for AMD x64 platform. [17]Product
{| class="wikitable"
  page
!Name
  aocl/aocc AMD Optimizing CPU Libraries for AOCC A set of numerical
!Description
  libraries tuned specifically for ADM EPYC processor family. It includes
!Versions
  BLIS/BLAS, libFLAME, LAPACK, ScaLAPACK, FFTW, AMD Math Library, AMD
|-
  Random Number Generator Library, and other components. [18]Product Page
|[https://www.amd.com/en/developer/uprof.html#documentation AMD-uProf]
  aocl/gcc9 AMD Optimizing CPU Libraries for GCC v9 A set of numerical
|AMD uProf is a performance analysis tool for applications running on Windows, Linux & FreeBSD operating systems. It allows developers to better understand the runtime performance of their application and to identify ways to improve its performance.
  libraries tuned specifically for ADM EPYC processor family. It includes
|AMD-uProf/3.5.671
  BLIS/BLAS, libFLAME, LAPACK, ScaLAPACK, FFTW, AMD Math Library, AMD
|-
  Random Number Generator Library, and other components. [19]Product Page
|[[Software#Anaconda|Anaconda3]]
  cmake CMake A cross-platform open-source tool for build automation,
|Anaconda: Python Data Science Platform for Python 3
  testing, packaging and installation of software by using a
|Anaconda3/2022.05
  compiler-independent method. [20]Product page
|-
  [21]CUDA CUDA computing platform and API A parallel computing platform
|[https://www.amd.com/en/developer/aocc.html#documentation AOCC]
  and application programming interface to use with Nvidia graphical
|AOCC is a high-performance x86 CPU compiler for C, C++, and Fortran programming languages
  processing units. [22]Product page
|AOCC/4.0.0
  dafoam DaFOAM Discrete Adjoint with OpenFOAM for High-fidelity
|-
  Multidisciplinary Design Optimization.[23]Product Page
|[https://github.com/archspec/archspec archspec]
  easybuild EasyBuild EasyBuild is a tool that allows to perform
|Archspec provides a standard set of human-understandable labels for various aspects of a system architecture like CPU, network fabrics, etc. and APIs to detect, query and compare them.
  automated and reproducible compilation and installation of
|archspec/0.1.3
  software.[24]Product Page
|-
  gaussian Gaussian 16 computational chemistry package A popular
|[https://gnome.pages.gitlab.gnome.org/atk/ ATK]
  electronic structure package that implements a wide range of
|ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK interfaces, accessibility tools have full access to view and control running applications.
  theoretical methods to investigate molecular properties and chemical
|ATK/2.38.0
  problems. [25]Product Page
|-
  gcc GNU Compiler Collection and Toolchain A set of standard compilers
|[https://www.gnu.org/software/automake/ Automake]
  (gcc, g++, gfortran, and others). [26]Product Page
|Automake – make file builder part of autotools
  [27]GROMACS Gromacs molecular dynamics package A popular molecular
|Automake/1.16.1
  dynamics package for for simulations of large systems (e.g. proteins).
Automake/1.16.3
  [28]Product page
 
  intel Intel Parallel Studio XE Cluster Edition 2020 A set of compilers
Automake/1.16.4
  (icc, icpc, ifort, and others), numerical libraries (Intel MKL), MPI
 
  libraries, profiling and debugging tools tools (VTune, Advisor,
Automake/1.16.5 (D)
  Inspector), Integrated Performance Primitives (IPP), Data Analytics
|-
  Acceleration Library (DAAL), Intel Distribution of Python and other
|[https://www.gnu.org/software/bison/ Bison]
  components. [29]Product Page
|Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing <abbr>LALR</abbr>(1) parser tables.
  lammps LAMMPS molecular dynamics package LAMMPS (Large-scale
|Bison/3.5.3
  Atomic/Molecular Massively Parallel Simulator) is a molecular dynamics
Bison/3.7.1
  software package developed at Sandia National Laboratories. [30]Product
 
  page
Bison/3.7.6
  matlab MATLAB MATLAB is a proprietary multi-paradigm programming
 
  language and numeric computing environment developed by MathWorks.
Bison/3.8.2 (D)
  [31]Product Page
|-
  nvhpc-byo-compiler NVIDIA ����HPC Software Development Kit (BYOC – Bring
|[https://cairographics.org/ cairo]
  Your Own Compiler) Same as nvhpc but does not add PGI-compiler or MPI
|Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output.
  to the environment. [32]Product Page
|cairo/1.16.0
  nvhpc-nompi NVIDIA HPC Software Development Kit (no MPI) Same as nvhpc
cairo/1.17.4 (D)
  but without adding any MPI installation to the environment. [33]Product
|-
  Page
|[https://www.cgal.org/ CGAL]
  nvhpc NVIDIA HPC Software Development A suite of PGI compilers (nvcc,
|CGAL is an open source software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library.
  nvc++, nvfortran), libraries and tools for HPC. [34]Product Page
|CGAL/4.14.3
  openfoam OpenFOAM OpenFOAM (for "Open-source Field Operation And
|-
  Manipulation") is a C++ toolbox for the development of customized
|[https://cmake.org/ CMake]
  numerical solvers, and pre-/post-processing utilities for the solution
|CMake is the standard for building C++ code
  of continuum mechanics problems, most prominently including
|CMake/3.20.1
  computational fluid dynamics (CFD). [35]Product Page
CMake/3.21.1
  openmpi/aocc Open MPI module for AOCC An industry standard
 
  implementation of MPI (Message Passing Interface) developed and
CMake/3.22.1
  maintained by a consortium of academic, research, and industry
 
  partners. [36]Product Page
CMake/3.23.1 (D)
  openmpi/gcc4 Open MPI module for GCC v4 An industry standard
|-
  implementation of MPI (Message Passing Interface) developed and
|[https://developer.nvidia.com/cuda-toolkit CUDA]
  maintained by a consortium of academic, research, and industry
|CUDA (formerly Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce. CUDA gives developers access to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.
  partners. [37]Product Page
|CUDA/11.4.1
  openmpi/gcc9 Open MPI module for GCC v9 An industry standard
CUDA/11.7.0 (D)
  implementation of MPI (Message Passing Interface) developed and
|-
  maintained by a consortium of academic, research, and industry
|[https://github.com/google/double-conversion double-conversion]
  partners. [38]Product Page
|Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles.
  openmpi/gcc10 Open MPI module for GCC v10 An industry standard
|double-conversion/3.2.0
  implementation of MPI (Message Passing Interface) developed and
|-
  maintained by a consortium of academic, research, and industry
|[https://www.doxygen.nl/ Doxygen]
  partners. [39]Product Page
|Doxygen is a widely-used documentation generator tool in software development. It automates the generation of documentation from source code comments, parsing information about classes, functions, and variables to produce output in formats like HTML and PDF.
  openmpi/gcc11 Open MPI module for GCC v11 An industry standard
|Doxygen/1.9.1
  implementation of MPI (Message Passing Interface) developed and
Doxygen/1.9.4 (D)
  maintained by a consortium of academic, research, and industry
|-
  partners. [40]Product Page
|Eigen
  openmpi/intel Open MPI module for Intel compiler suite An industry
|Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  standard implementation of MPI (Message Passing Interface) developed
|Eigen/3.3.9
  and maintained by a consortium of academic, research, and industry
Eigen/3.4.0 (D)
  partners. [41]Product Page
|-
  quantumespresso QuantumESPRESSO Quantum ESPRESSO is a suite for
|[https://elpa.rzg.mpg.de/ ELPA]
  first-principles electronic-structure calculations and materials
|Eigenvalue SoLvers for Petaflop-Applications.
  modeling.[42]Product Page
|ELPA/2021.11.001
  R R R is a programming language for statistical computing and graphics
|-
  supported by the R Core Team and the R Foundation for Statistical
|[https://libexpat.github.io/ expat]
  Computing.[43]Product Page
|An XML parser library written in C.
  singularity Singularity Singularity is a container solution created by
|expat/2.2.9
  necessity for scientific and application driven workloads.[44]Product
|-
  Page
|[https://www.fftw.org/ FFTW]
  tensorflow TensorFlow TensorFlow is an end-to-end open source platform
|<abbr>FFTW</abbr> is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST)
  for machine learning.[45]Product Page
|FFTW/3.3.9
  wps WPS The WRF Pre-Processing System (WPS) is a collection
FFTW/3.3.10 (D)
  of Fortran and C programs that provides data used as
|-
  input to the real.exe program. [46]Product Page
|[https://ffmpeg.org/ FFmpeg]
  wrf WRF The Weather Research and Forecasting (WRF) Model is a
|FFmpeg is the multimedia framework, able to '''decode''', '''encode''', '''transcode''', '''mux''', '''demux''', '''stream''', '''filter''' and '''play''' audio stream and video.
  next-generation mesoscale numerical weather prediction system designed
|FFmpeg/4.3.2
  for both atmospheric research and operational forecasting
FFmpeg/4.4.2 (D)
  applications.[47]Product Page
|-
  New software
|[https://xiph.org/flac/ FLAC]
  New software can be installed system-wide at the request of users,
|FLAC is an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality.
  provided it meets the following criteria:
|FLAC/1.3.4
    * It is either freely available or NU has a site license for it
|-
    * It is compatible with the existing OS environment on Shabyt
|[https://github.com/westes/flex flex]
    * It can utilize resources available on Shabyt effectively
|Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text.
  For assistance regarding new software packages please contact Shabyt
|flex/2.6.4
  system administrators at [48]hpcadmin@nu.edu.kz
|-
  Anaconda
|[https://freetype.org/ freetype]
  Description:
|FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images).
  "Anaconda" (shortly “conda”), a Python package management, permits the
|freetype/2.11.0
  creation of "environments," which are sets of modifiable packages. It
freetype/2.12.1 (D)
  accomplishes this by placing them in your residence. This page will
|-
  take you through conda loading, environment creation, and modification
|GCC
  so you may install and utilize any Python packages you require.
|The GNU Compiler Collection (GCC) provides C/C++ and Fortran compilers.
  Usage:
|GCC/9.3.0
  Anaconda could be loaded by:
GCC/9.4.0
  module load Anaconda3/2022.��� 05
 
    Creating the Conda Environment
GCC/10.3.0
  Every user can create their own environments, and packages that are
 
  shared with the system-wide environments will not be reinstalled or
GCC/11.2.0
  copied to your file store; instead, they will be symlinked. This
 
  reduces the amount of space required in your /home directory to install
GCC/11.3.0
  numerous Python environments.
 
  To build a pristine environment with only Python 3.9 and numpy,
GCC/12.2.0 (D)
  execute:
|-
  conda create -n mynumpy1 python=3.9 numpy
|[https://gdal.org/ GDAL]
  This will download the most recent version of Python 3.9 and numpy and
|GDAL is a translator library for raster and vector geospatial data formats that is released under an MIT style Open Source License by the Open Source Geospatial Foundation. As a library, it presents a single raster abstract data model and single vector abstract data model to the calling application for all supported formats. It also comes with a variety of useful command line utilities for data translation and processing.
  build a mynumpy1 environment. Any version of Python or package list may
|GDAL/3.5.0-foss-2022a
  be supplied:
|-
  conda create -n mynumpy2 python=3.9 numpy=1.15.2 scipy
|[https://libgeos.org/ GEOS]
  To alter an existing environment, such as one of the anaconda
|GEOS is a C/C++ library for computational geometry with a focus on algorithms used in geographic information systems (GIS) software.
  installations, you can clone it:
|GEOS/3.10.3
  conda create --clone mynumpy2 -n mynumpy3
|-
  This will create an environment called mynumpy3 which has all the same
|GLPK
  conda packages as the mynumpy2 environment.
|The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed integer programming (MIP) problems.
  Package Installation Within a Conda Environment
|GLPK/5.0
  After creating your own environment, you can install more packages or
|-
  other versions of existing programs. There are two ways to accomplish
|[https://gmplib.org/ GMP]
  this: conda and pip. If a package is accessible through conda, it is
|GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers.
  strongly advised that you use it to install packages. Using conda, you
|GMP/6.2.1
  can search for packages:
|-
  conda search pandas
|[https://gi.readthedocs.io/en/latest/ GObject-Introspection]
  then download the package by following these steps:
|GObject introspection is a middleware layer between C libraries (using GObject) and language bindings. The C library can be scanned at compile time and generate metadata files, in addition to the actual native C library.
  conda install pandas
|GObject-Introspection/1.68.0
  When attempting to install packages outside of your environment, you
GObject-Introspection/1.72.0 (D)
  will receive a permission denied message. If this occurs, create, or
|-
  activate an environment you own. If a package is not available via
|[https://www.gnu.org/software/gsl/ GSL]
  conda, you can search for and install it using pip:
|The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License.
  pip search colormath
|GSL/2.7
  pip install colormath
|-
  Usage of conda Environments
|[https://www.gtk.org/ GTK2]
  Once the conda module has been loaded, the required conda environments
|The GTK+ 2 package contains libraries used for creating graphical user interfaces for applications.
  must be loaded or created. See the conda manual for documentation on
|GTK2/2.24.33
  conda environments. You can load a conda environment with the
|-
  following:
|[https://www.ghostscript.com/ Ghostscript]
  source activate mycondaenv
|Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to different targets.
  where mycondaenv is the environment's name, unload one with:
|Ghostscript/9.56.1
  source deactivate
|-
  which returns you back to the base environment. You can list all the
|[https://git-scm.com/ git]
  accessible environments by using:
|Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
  conda env list
|git/2.32.0
  A set of anaconda environments are provided system-wide; these are
git/2.33.1
  installed with the anaconda version number in the environment name and
 
  are never updated. Therefore, they will provide a fixed base for
git/2.36.0 (D)
  alternative environments or for direct use.
|-
  Using Conda in conjunction with the SLURM scheduler
|[https://github.com/harfbuzz/harfbuzz HarfBuzz]
  Using the Anaconda batch mode
|An OpenType text shaping engine
  To submit jobs to the Slurm job scheduler, you must run your primary
|HarfBuzz/2.8.2
  application in batch mode from within your Conda environment. There are
HarfBuzz/4.2.1 (D)
  several stages to take:
|-
  Create a script for application
|[https://computing.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods Hypre]
  Create a Slurm script job to execute the application script
|Hypre is a library for solving large, sparse linear systems of equations on massively parallel computers.
  sbatch is used to submit the job script to the task scheduler.
|Hypre/2.21.0-foss-2021a
  Your application script should provide the necessary sequence of
|-
  commands for your analysis. A Slurm job script is a Bash shell script
|[https://icu.unicode.org/ ICU]
  of a particular type that the Slurm job scheduler recognizes as a job.
|ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms and between C/C++ and Java software.
  Create a batch job submission script like the following and name it
|ICU/69.1
  myscript.slurm:
ICU/71.1 (D)
  #!/bin/bash
|-
  #SBATCH --partition=NVIDIA
|[https://imagemagick.org/index.php ImageMagick]
  #SBATCH --nodes=1
|ImageMagick® is a free, open-source software suite, used for editing and manipulating digital images.
  #SBATCH --ntasks=1
|ImageMagick/7.1.0-37
  #SBATCH --cpu-per-task=8
|-
  #SBATCH --mem=16GB
|[https://www.ece.uvic.ca/~frodo/jasper/ Jasper]
  #SBATCH --time=1:00:00
|The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard
  module purge
|JasPer/2.0.33
  eval $(conda shell.bash hook)”
|-
  conda activate myenvironment
|[https://openjdk.org/ Java]
  python script.py
|Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers.
  The following describes each line:
|Java/11.0.16
  Command or Slurm option
|-
  Description
|[https://kahip.github.io/ KaHIP]
  #!/bin/bash
|The graph partitioning framework KaHIP -- Karlsruhe High Quality Partitioning.
  Use BASH to execute the script
|KaHIP/3.14
  #SBATCH
|-
  Syntax that allows SLURM to read your requests (ignored by BASH)
|LAMMPS
  --partition=NVIDIA
|LAMMPS is a classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator.
  Submit job to the NVIDIA partition
|LAMMPS/23Jun2022
  --nodes=1
|-
  Use only one compute node
|[https://llvm.org/ LLVM]
  --ntasks=1
|The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
  Run only one task
|LLVM/12.0.1
  --cpus-per-task=8
LLVM/14.0.3 (D)
  Reserve 8 CPUs for user
|-
  --mem=16GB
|LibTIFF
  Research 16GB of RAM
|LibTIFF – Tag Image File Format(TIFF) Library and Utilities
  --module purge
|LibTIFF/4.3.0
  Purge or clear environment modules
|-
  --time=1:00:00
|[https://www.littlecms.com/ LittleCMS]
  Reserve resource for an hour
|OPEN SOURCE small-footprint color management engine
  eval $(conda shell.bash hook) Initi����alize the shell to use Conda
|LittleCMS/2.13.1
  conda activate myenvironment Activate your Conda environment, i.e.,
|-
  myenvironment
|[https://www.lua.org/ Lua]
  python script.py Use python to run script.py
|Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
  Be sure to alter the requested resources based on your needs, but keep
|Lua/5.4.4
  in mind that requesting fewer resources will reduce the waiting time
|-
  for your work. To fully exploit the resources, particularly the amount
|[https://www.gnu.org/software/m4/m4.html M4]
  of cores, it may be necessary to modify your application script.  You
|GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.
  can build application scripts and job scripts on your local machine and
|M4/1.4.18
  then move them to the cluster, or you can develop them directly on the
M4/1.4.19 (D)
  cluster using one of the various text editor modules (e.g., nano,
|-
  micro, vim). Submit the job to the job scheduler using the
|[http://glaros.dtc.umn.edu/gkhome/metis/metis/overview METIS]
  Slurm's sbatch command:
|METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.
  sbatch myscript.slurm
|METIS/5.1.0
  To determine the status of your position, enter:
|-
  myqueue
|[https://www.mpfr.org/ MPFR]
  If there is no job status listed, then the job has been finished. The
|The MPFR library is a C library for multiple-precision floating-point computations with correct rounding.
  job's findings will be logged and, by default, stored to a plain-text
|MPFR/4.1.0
  file of the following format:
|-
  slurm-<jobid>.outin
|[https://mumps-solver.org/index.php MUMPS]
  the identical directory from which the job script was submitted. To
|A parallel sparse direct solver
  access this file's contents, enter:
|MUMPS/5.4.0
  less slurm-<jobid>.out
|-
  then press q to close the viewer.
|[https://www.makotemplates.org/ Mako]
  CUDA
|Mako is a template library written in Python. It provides a familiar, non-XML syntax which compiles into Python modules for maximum performance.
  Description:
|Mako/1.1.4
  Nvidia created the parallel computing platform and programming model
Mako/1.2.0 (D)
  known as CUDA for use with its own GPUs for general computing (graphics
|-
  processing units). By utilizing the capability of GPUs for the
|[https://www.mesa3d.org/ Mesa]
  parallelizable portion of the calculation, CUDA enables developers to
|Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.
  accelerate computationally heavy applications.
|Mesa/21.1.7
  Usage:
Mesa/22.0.3 (D)
  module load CUDA/11.4.1
|-
  to check if CUDA has been loaded, type:
|[https://mesonbuild.com/ Meson]
  nvcc --version
|Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.
  ANSYS
|Meson/0.58.2
  Description:
Meson/0.62.1 (D)
  The ANSYS suite of tools can be used to numerically simulate a wide
|-
  range of structural and fluid dynamics issues encountered in several
|[https://www.nasm.us/ NASM]
  engineering, physics, medical, aerospace, and automotive sector
|NASM: General-purpose x86 assembler
  applications.
|NASM/2.15.05
  Usage:
|-
  Loading the ANSYS module
|[https://developer.nvidia.com/nccl NCCL]
  module load ansys/2022r1
|The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective
  launching the workbench is accomplished by:
|NCCL/2.10.3
  runwb2
|-
  The workbench provides access to Fluent, CFX, ICEM, Mechanical
|[http://ab-initio.mit.edu/wiki/index.php/NLopt NLopt]
  APDL/model, and many other languages and models. The appropriate GUIs
|NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.
  can be launched outside of the workbench using fluent, cfx5pre,
|NLopt/2.7.1
  icemcfd, and launcher.
|-
  GROMACS
|[https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR NSPR]
  Description: GROMACS is a flexible package for performing molecular
|Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc-like functions.
  dynamics, i.e., simulating the Newtonian equations of motion for
|NSPR/4.34
  systems containing hundreds of thousands to millions of particles. It
|-
  is primarily intended for biochemical molecules, such as proteins,
|NSS
  lipids, and nucleic acids, that have many complex bonded interactions.
|
  However, since GROMACS is extremely fast at calculating the nonbonded
|
  interactions (which typically dominate simulations), many groups use it
|-
  for research on non-biological systems, such as polymers.
|NVHPC/22.7
  Usage:
|
  To load GROMACS software:
|
  module load GROMACS/2021.5-foss-2021b-CUDA-11.4.1
|-
  The GROMACS executable is either gmx or gmx mpi if an OpenMPI module is
|Ninja
  being used. When you type gmx help commands, a list of gmx commands and
|
  their functions will be displayed.
|
  Batch jobs
|-
  Users are encouraged to create their own scripts for batch submissions.
|OpenBLAS
  The following are examples of batch submission scripts, my job.sh, that
|
  are submitted to the queue by typing qsub my job.sh.
|
  In addition to GPU acceleration, GROMACS can operate in two different
|-
  parallel environments, smp and mpi. Below are examples of these types
|OpenFOAM
  of batch submissions.
|
  Parallel MPI
|
  #!/bin/bash
|-
  #SBATCH --job-name=gromacs
|OpenMPI
  #SBATCH --mail-user=<YOUR_NU_ID>@nu.edu.kz
|
  #SBATCH --mail-type=FAIL,BEGIN,END
|
  #SBATCH --output=gmx-%j.out
|-
  #SBATCH --ntasks=2
|OpenSSL
  #SBATCH --cpus-per-task=4
|
  #SBATCH --ntasks-per-socket=1
|
  #SBATCH --time=24:00:00
|-
  #SBATCH --mem-per-cpu=1gb
|PCRE
  module purge
|
  module load OpenMPI/4.1.1-GCC-11.2.0
|
  module load GROMACS/2021.5-foss-2021b-CUDA-11.4.1
|}
  export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
 
  srun --mpi=pmix_v3 gmx mdrun -ntomp ${SLURM_CPUS_PER_TASK} -s topol.tpr����neral NU Policies that
== Anaconda ==
  govern the use of shared use facilities.
'''Description:'''
  Please note that the interactive login node (mgmt01) is designated to
"Anaconda" (shortly "conda"), a Python package management, permits the creation of "environments," which are sets of modifiable packages. It accomplishes this by placing them in your residence. This page will take you through conda loading, environment creation, and modification so you may install and utilize any Python packages you require.
  tasks such as user file management, code compilation, and job
 
  submission. It is NOT designated for long calculations and heavy data
'''Usage:'''
  processing. Simply put, users should not run production calculations on
Anaconda could be loaded by:
  it. Instead, all heavy computational tasks should be sent to a batch
<nowiki>module load Anaconda3/2022.05</nowiki>
  queue. Users who repeatedly abuse this rule of using the login node
 
  propely may be subject to account suspension.
'''Creating the Conda Environment:'''
Maintenance
Every user can create their own environments, and packages that are shared with the system-wide environments will not be reinstalled or copied to your file store; instead, they will be symlinked. This reduces the amount of space required in your /home directory to install numerous Python environments.
  Most maintenance work is performed by the HPC team in the background
To build a pristine environment with only Python 3.9 and numpy, execute:
  and does not interfere with user activities. However, there may be
<code>
  situations when an interruption of the service is required for
conda create -n mynumpy1 python=3.9 numpy
  system-wide maintenance. This will be planned ahead of time and
</code>
  scheduled with at least several days of advance notice. Batch queues
To alter an existing environment, such as one of the anaconda installations, you can clone it:
  may be temporarily modified prior to scheduled downtimes to hold jobs
<code>
  that require more time than remains before the shutdown.
conda create --clone mynumpy2 -n mynumpy3
User groups
</code>
  Any new account on NU HPC systems (e.g. for a graduate student or a
 
  postdoc who does computational research) requires sponsorship/approval
'''Package Installation Within a Conda Environment:'''
  by the PI of a research project. Thus, all users are structured into
After creating your own environment, you can install more packages or other versions of existing programs. There are two ways to accomplish this: conda and pip. If a package is accessible through conda, it is strongly advised that you use it to install packages. Using conda, you can search for packages:
  two types of groups. The first type is a group of an individual PI.
<code>
  Then the PIs’ groups are structured into three larger groups: NU group,
conda search pandas
  HPCNC Research Cluster Group (this group is the principal host of
</code>
  Shabyt), and External Users group. Please note that the priorities of
then download the package by following these steps:
  the jobs submitted for execution on Shabyt may depend on multiple
<code>
  factors, such as the number of jobs belonging to an individual PI group
conda install pandas
  currently running and/or recently completed on the system, which of the
</code>
  three larger groups the user belongs to, the amount of resources
When attempting to install packages outside of your environment, you will receive a permission denied message. If this occurs, create or activate an environment you own. If a package is not available via conda, you can search for and install it using pip:
  requested by the job, and others. The algorithm for setting job
<code>
  priorities is subject to change and will be guided by the NU HPC
pip search colormath
  Committee.
</code>
Storage quotas
<code>
  Current default storage quota for users’ home directories is set to 100
pip install colormath
  GB. If any individual user requires more storage for his/her work, it
</code>
  can be allocated through a special request to the HPC admins. For
 
  particularly large, multi-terabyte storage needs Shabyt has an HDD
'''Usage of conda Environments:'''
  array with the total capacity of 120 TB.
Once the conda module has been loaded, the required conda environments must be loaded or created. See the conda manual for documentation on conda environments. You can load a conda environment with the following:
Data backup
<code>
  Please be advised that users take full responsibility for the integrity
source activate mycondaenv
  and safety of their data stored on Shabyt. While Shabyt features
</code>
  enterprise level hardware, failures are still a possibility, especially
where mycondaenv is the environment's name; unload one with:
  given no redundancy in the underlying storage systems that are designed
<code>
  for high throughput. Currently Shabyt does not have any automatic
source deactivate
  backup of users’ data. While this may change in the future as the HPC
</code>
  team continues to configure the system, at this time users are strongly
which returns you back to the base environment. You can list all the accessible environments by using:
  advised to perform regular back up of any important data they may have
<code>
  stored in their home directories.
conda env list
Queues and the number of jobs
</code>
  Currently, Shabyt has two partitions for user jobs. While at this time,
A set of anaconda environments is provided system-wide; these are installed with the anaconda version number in the environment name and are never updated. Therefore, they will provide a fixed base for alternative environments or for direct use.
  when the system is still being configured and fine-tuned, there is no
 
  hardcoded limit on the number of jobs by any individual user, it will
'''Using Conda in conjunction with the SLURM scheduler:'''
  likely change in the near future.
Using the Anaconda batch mode
Acknowledgment
To submit jobs to the Slurm job scheduler, you must run your primary application in batch mode from within your Conda environment. There are several stages to take:
  If the computational resources provided by NU HPC facilities were an
Create a script for application
  important asset in your work resulting in a publication, we will
Create a Slurm script job to execute the application script
  greatly appreciate your acknowledgment. We suggest the following form
sbatch is used to submit the job script to the task scheduler.
  of the acknowledgment statement at the end of your publication:
Your application script should provide the necessary sequence of commands for your analysis. A Slurm job script is a Bash shell script of a particular type that the Slurm job scheduler recognizes as a job.
  “The authors are grateful to Nazarbayev University Research
Create a batch job submission script like the following and name it myscript.slurm:
  Computing for providing computational resources for this work.”
<code><clippy show="true">
  If you wish to additionally acknowledge an individual from NU Research
#!/bin/bash
  Computing team who spent considerable amount of time assisting you with
#SBATCH --partition=NVIDIA
  your calculations you are also encouraged to do so, e.g.
#SBATCH --nodes=1
  “We thank [assistant’s name] for [his/her/theirs] help with [your task
#SBATCH --ntasks=1
  accomplished], which was made possible through Nazarbayev University
#SBATCH --cpu-per-task=8
#SBATCH --mem=16GB
#SBATCH --time=1:00:00
module purge
eval $(conda shell.bash hook)
conda activate myenvironment
python script.py
</code></clippy>
The following describes each line:
Command or Slurm option
Description
#!/bin/bash
Use BASH to execute the script
#SBATCH
Syntax that allows SLURM to read your requests (ignored by BASH)
--partition=NVIDIA
Submit job to the NVIDIA partition
--nodes=1
Use only one compute node
--ntasks=1
Run only one task
--cpus-per-task=8
Reserve 8 CPUs for the user
--mem=16GB
Reserve 16GB of RAM
--module purge
Purge or clear environment modules
--time=1:00:00
Reserve resources for an hour
eval $(conda shell.bash hook) Initialize the shell to use Conda
conda activate myenvironment
Activate your Conda environment, i.e., myenvironment
python script.py
Use python to run script.py
Be sure to alter the requested resources based on your needs, but keep in mind that requesting fewer resources will reduce the waiting time for your work. To fully exploit the resources, particularly the amount of cores, it may be necessary to modify your application script. You can build application scripts and job scripts on your local machine and then move them to the cluster, or you can develop them directly on the cluster using one of the various text editor modules (e.g., nano, micro, vim). Submit the job to the job scheduler using the Slurm's sbatch command:
<code>
sbatch myscript.slurm
</code>
To determine the status of your position, enter:
<code>
myqueue
</code>
If there is no job status listed, then the job has been finished. The job's findings will be logged and, by default, stored in a plain-text file of the following format:
<code>
slurm-<jobid>.outin
</code>
in the identical directory from which the job script was submitted. To access this file's contents, enter:
<code>
less slurm-<jobid>.out
</code>
then press q to close the viewer.
 
== CUDA ==
'''Description:'''
Nvidia created the parallel computing platform and programming model known as CUDA for use with its GPUs for general computing (graphics processing units). By utilizing the capability of GPUs for the parallelizable portion of the calculation, CUDA enables developers to accelerate computationally heavy applications.
 
'''Usage:'''
<nowiki>module load CUDA/11.4.1</nowiki>
To check if CUDA has been loaded, type:
<code>
nvcc --version
</code>
 
== ANSYS ==
'''Description:'''
The ANSYS suite of tools can be used to numerically simulate a wide range of structural and fluid dynamics issues encountered in several engineering, physics, medical, aerospace, and automotive sector applications.
 
'''Usage:'''
Loading the ANSYS module
<nowiki>module load ansys/2022r1</nowiki>
Launching the workbench is accomplished by:
<nowiki>runwb2</nowiki>
The workbench provides access to Fluent, CFX, ICEM, Mechanical APDL/model, and many other languages and models. The appropriate GUIs can be launched outside of the workbench using fluent, cfx5pre, icemcfd, and launcher.
 
== GROMACS ==
'''Description:'''
GROMACS is a flexible package for performing molecular dynamics, simulating the Newtonian equations of motion for systems containing hundreds of thousands to millions of particles. It is intended for biochemical molecules, such as proteins, lipids, and nucleic acids, with complex bonded interactions. However, GROMACS is fast at calculating nonbonded interactions, so many groups use it for non-biological systems, like polymers.
 
'''Usage:'''
To load GROMACS software:
<nowiki>module load GROMACS/2021.5-foss-2021b-CUDA-11.4.1</nowiki>
The GROMACS executable is either gmx or gmx mpi if an OpenMPI module is used. When you type gmx help commands, a list of gmx commands and their functions will be displayed.
 
'''Batch jobs:'''
Users are encouraged to create their own scripts for batch submissions. Below are examples of batch submission scripts.
 
Parallel MPI
<nowiki>#!/bin/bash
#SBATCH --job-name=gromacs
#SBATCH --mail-user=<YOUR_NU_ID>@nu.edu.kz
#SBATCH --mail-type=FAIL,BEGIN,END
#SBATCH --output=gmx-%j.out
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=4
#SBATCH --ntasks-per-socket=1
#SBATCH --time=24:00:00
#SBATCH --mem-per-cpu=1gb
module purge
module load OpenMPI/4.1.1-GCC-11.2.0
module load GROMACS/2021.5-foss-2021b-CUDA-11.4.1
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
srun --mpi=pmix_v3 gmx mdrun -ntomp ${SLURM_CPUS_PER_TASK} -s topol.tpr</nowiki>
== Software list ==
 
* [https://hpc.nu.edu.kz/index.php/lmod Environment Module System]
* [https://hpc.nu.edu.kz/index.php/Anaconda Anaconda]
* [https://hpc.nu.edu.kz/index.php/GNU_Compiler_Collection GCC]
* [https://hpc.nu.edu.kz/index.php/CUDA CUDA]
* [https://hpc.nu.edu.kz/index.php/MATLAB MATLAB]
* [https://hpc.nu.edu.kz/index.php/Apptainer Apptainer]

Latest revision as of 17:01, 9 July 2024

New Software

New software can be installed system-wide at the request of users, provided it meets the following criteria:

  • It is either freely available or NU has a site license for it.
  • It is compatible with the existing OS environment on Shabyt.
  • It can utilize resources available on Shabyt effectively.

For assistance regarding new software packages, please contact Shabyt system administrators at hpcadmin@nu.edu.kz.

Software Priorities

Software applications are installed in accordance with priorities.

  • Software which can be installed via EasyBuild application falls under this category. List of supported EasyBuild softwares you can find here: EasyBuild
  • Applications that are crucial for User Groups but cannot be installed through EasyBuild fall under this priority.
  • Individual user requests. Such requests will be processed only after other priorities have been fulfilled.
Name Description Versions
AMD-uProf AMD uProf is a performance analysis tool for applications running on Windows, Linux & FreeBSD operating systems. It allows developers to better understand the runtime performance of their application and to identify ways to improve its performance. AMD-uProf/3.5.671
Anaconda3 Anaconda: Python Data Science Platform for Python 3 Anaconda3/2022.05
AOCC AOCC is a high-performance x86 CPU compiler for C, C++, and Fortran programming languages AOCC/4.0.0
archspec Archspec provides a standard set of human-understandable labels for various aspects of a system architecture like CPU, network fabrics, etc. and APIs to detect, query and compare them. archspec/0.1.3
ATK ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK interfaces, accessibility tools have full access to view and control running applications. ATK/2.38.0
Automake Automake – make file builder part of autotools Automake/1.16.1

Automake/1.16.3

Automake/1.16.4

Automake/1.16.5 (D)

Bison Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables. Bison/3.5.3

Bison/3.7.1

Bison/3.7.6

Bison/3.8.2 (D)

cairo Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. cairo/1.16.0

cairo/1.17.4 (D)

CGAL CGAL is an open source software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library. CGAL/4.14.3
CMake CMake is the standard for building C++ code CMake/3.20.1

CMake/3.21.1

CMake/3.22.1

CMake/3.23.1 (D)

CUDA CUDA (formerly Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA and implemented by the graphics processing units (GPUs) that they produce. CUDA gives developers access to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs. CUDA/11.4.1

CUDA/11.7.0 (D)

double-conversion Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles. double-conversion/3.2.0
Doxygen Doxygen is a widely-used documentation generator tool in software development. It automates the generation of documentation from source code comments, parsing information about classes, functions, and variables to produce output in formats like HTML and PDF. Doxygen/1.9.1

Doxygen/1.9.4 (D)

Eigen Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. Eigen/3.3.9

Eigen/3.4.0 (D)

ELPA Eigenvalue SoLvers for Petaflop-Applications. ELPA/2021.11.001
expat An XML parser library written in C. expat/2.2.9
FFTW FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST) FFTW/3.3.9

FFTW/3.3.10 (D)

FFmpeg FFmpeg is the multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play audio stream and video. FFmpeg/4.3.2

FFmpeg/4.4.2 (D)

FLAC FLAC is an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. FLAC/1.3.4
flex Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text. flex/2.6.4
freetype FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). freetype/2.11.0

freetype/2.12.1 (D)

GCC The GNU Compiler Collection (GCC) provides C/C++ and Fortran compilers. GCC/9.3.0

GCC/9.4.0

GCC/10.3.0

GCC/11.2.0

GCC/11.3.0

GCC/12.2.0 (D)

GDAL GDAL is a translator library for raster and vector geospatial data formats that is released under an MIT style Open Source License by the Open Source Geospatial Foundation. As a library, it presents a single raster abstract data model and single vector abstract data model to the calling application for all supported formats. It also comes with a variety of useful command line utilities for data translation and processing. GDAL/3.5.0-foss-2022a
GEOS GEOS is a C/C++ library for computational geometry with a focus on algorithms used in geographic information systems (GIS) software. GEOS/3.10.3
GLPK The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed integer programming (MIP) problems. GLPK/5.0
GMP GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. GMP/6.2.1
GObject-Introspection GObject introspection is a middleware layer between C libraries (using GObject) and language bindings. The C library can be scanned at compile time and generate metadata files, in addition to the actual native C library. GObject-Introspection/1.68.0

GObject-Introspection/1.72.0 (D)

GSL The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License. GSL/2.7
GTK2 The GTK+ 2 package contains libraries used for creating graphical user interfaces for applications. GTK2/2.24.33
Ghostscript Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to different targets. Ghostscript/9.56.1
git Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. git/2.32.0

git/2.33.1

git/2.36.0 (D)

HarfBuzz An OpenType text shaping engine HarfBuzz/2.8.2

HarfBuzz/4.2.1 (D)

Hypre Hypre is a library for solving large, sparse linear systems of equations on massively parallel computers. Hypre/2.21.0-foss-2021a
ICU ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms and between C/C++ and Java software. ICU/69.1

ICU/71.1 (D)

ImageMagick ImageMagick® is a free, open-source software suite, used for editing and manipulating digital images. ImageMagick/7.1.0-37
Jasper The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard JasPer/2.0.33
Java Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers. Java/11.0.16
KaHIP The graph partitioning framework KaHIP -- Karlsruhe High Quality Partitioning. KaHIP/3.14
LAMMPS LAMMPS is a classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS/23Jun2022
LLVM The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. LLVM/12.0.1

LLVM/14.0.3 (D)

LibTIFF LibTIFF – Tag Image File Format(TIFF) Library and Utilities LibTIFF/4.3.0
LittleCMS OPEN SOURCE small-footprint color management engine LittleCMS/2.13.1
Lua Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. Lua/5.4.4
M4 GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc. M4/1.4.18

M4/1.4.19 (D)

METIS METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes. METIS/5.1.0
MPFR The MPFR library is a C library for multiple-precision floating-point computations with correct rounding. MPFR/4.1.0
MUMPS A parallel sparse direct solver MUMPS/5.4.0
Mako Mako is a template library written in Python. It provides a familiar, non-XML syntax which compiles into Python modules for maximum performance. Mako/1.1.4

Mako/1.2.0 (D)

Mesa Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics. Mesa/21.1.7

Mesa/22.0.3 (D)

Meson Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. Meson/0.58.2

Meson/0.62.1 (D)

NASM NASM: General-purpose x86 assembler NASM/2.15.05
NCCL The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective NCCL/2.10.3
NLopt NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms. NLopt/2.7.1
NSPR Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc-like functions. NSPR/4.34
NSS
NVHPC/22.7
Ninja
OpenBLAS
OpenFOAM
OpenMPI
OpenSSL
PCRE

Anaconda

Description: "Anaconda" (shortly "conda"), a Python package management, permits the creation of "environments," which are sets of modifiable packages. It accomplishes this by placing them in your residence. This page will take you through conda loading, environment creation, and modification so you may install and utilize any Python packages you require.

Usage: Anaconda could be loaded by: module load Anaconda3/2022.05

Creating the Conda Environment: Every user can create their own environments, and packages that are shared with the system-wide environments will not be reinstalled or copied to your file store; instead, they will be symlinked. This reduces the amount of space required in your /home directory to install numerous Python environments. To build a pristine environment with only Python 3.9 and numpy, execute: conda create -n mynumpy1 python=3.9 numpy To alter an existing environment, such as one of the anaconda installations, you can clone it: conda create --clone mynumpy2 -n mynumpy3

Package Installation Within a Conda Environment: After creating your own environment, you can install more packages or other versions of existing programs. There are two ways to accomplish this: conda and pip. If a package is accessible through conda, it is strongly advised that you use it to install packages. Using conda, you can search for packages: conda search pandas then download the package by following these steps: conda install pandas When attempting to install packages outside of your environment, you will receive a permission denied message. If this occurs, create or activate an environment you own. If a package is not available via conda, you can search for and install it using pip: pip search colormath pip install colormath

Usage of conda Environments: Once the conda module has been loaded, the required conda environments must be loaded or created. See the conda manual for documentation on conda environments. You can load a conda environment with the following: source activate mycondaenv where mycondaenv is the environment's name; unload one with: source deactivate which returns you back to the base environment. You can list all the accessible environments by using: conda env list A set of anaconda environments is provided system-wide; these are installed with the anaconda version number in the environment name and are never updated. Therefore, they will provide a fixed base for alternative environments or for direct use.

Using Conda in conjunction with the SLURM scheduler: Using the Anaconda batch mode To submit jobs to the Slurm job scheduler, you must run your primary application in batch mode from within your Conda environment. There are several stages to take: Create a script for application Create a Slurm script job to execute the application script sbatch is used to submit the job script to the task scheduler. Your application script should provide the necessary sequence of commands for your analysis. A Slurm job script is a Bash shell script of a particular type that the Slurm job scheduler recognizes as a job. Create a batch job submission script like the following and name it myscript.slurm: <clippy show="true">

  1. !/bin/bash
  2. SBATCH --partition=NVIDIA
  3. SBATCH --nodes=1
  4. SBATCH --ntasks=1
  5. SBATCH --cpu-per-task=8
  6. SBATCH --mem=16GB
  7. SBATCH --time=1:00:00

module purge eval $(conda shell.bash hook) conda activate myenvironment python script.py </clippy> The following describes each line: Command or Slurm option Description

  1. !/bin/bash

Use BASH to execute the script

  1. SBATCH

Syntax that allows SLURM to read your requests (ignored by BASH) --partition=NVIDIA Submit job to the NVIDIA partition --nodes=1 Use only one compute node --ntasks=1 Run only one task --cpus-per-task=8 Reserve 8 CPUs for the user --mem=16GB Reserve 16GB of RAM --module purge Purge or clear environment modules --time=1:00:00 Reserve resources for an hour eval $(conda shell.bash hook) Initialize the shell to use Conda conda activate myenvironment Activate your Conda environment, i.e., myenvironment python script.py Use python to run script.py Be sure to alter the requested resources based on your needs, but keep in mind that requesting fewer resources will reduce the waiting time for your work. To fully exploit the resources, particularly the amount of cores, it may be necessary to modify your application script. You can build application scripts and job scripts on your local machine and then move them to the cluster, or you can develop them directly on the cluster using one of the various text editor modules (e.g., nano, micro, vim). Submit the job to the job scheduler using the Slurm's sbatch command: sbatch myscript.slurm To determine the status of your position, enter: myqueue If there is no job status listed, then the job has been finished. The job's findings will be logged and, by default, stored in a plain-text file of the following format: slurm-<jobid>.outin in the identical directory from which the job script was submitted. To access this file's contents, enter: less slurm-<jobid>.out then press q to close the viewer.

CUDA

Description: Nvidia created the parallel computing platform and programming model known as CUDA for use with its GPUs for general computing (graphics processing units). By utilizing the capability of GPUs for the parallelizable portion of the calculation, CUDA enables developers to accelerate computationally heavy applications.

Usage: module load CUDA/11.4.1 To check if CUDA has been loaded, type: nvcc --version

ANSYS

Description: The ANSYS suite of tools can be used to numerically simulate a wide range of structural and fluid dynamics issues encountered in several engineering, physics, medical, aerospace, and automotive sector applications.

Usage: Loading the ANSYS module module load ansys/2022r1 Launching the workbench is accomplished by: runwb2 The workbench provides access to Fluent, CFX, ICEM, Mechanical APDL/model, and many other languages and models. The appropriate GUIs can be launched outside of the workbench using fluent, cfx5pre, icemcfd, and launcher.

GROMACS

Description: GROMACS is a flexible package for performing molecular dynamics, simulating the Newtonian equations of motion for systems containing hundreds of thousands to millions of particles. It is intended for biochemical molecules, such as proteins, lipids, and nucleic acids, with complex bonded interactions. However, GROMACS is fast at calculating nonbonded interactions, so many groups use it for non-biological systems, like polymers.

Usage: To load GROMACS software: module load GROMACS/2021.5-foss-2021b-CUDA-11.4.1 The GROMACS executable is either gmx or gmx mpi if an OpenMPI module is used. When you type gmx help commands, a list of gmx commands and their functions will be displayed.

Batch jobs: Users are encouraged to create their own scripts for batch submissions. Below are examples of batch submission scripts.

Parallel MPI #!/bin/bash #SBATCH --job-name=gromacs #SBATCH --mail-user=<YOUR_NU_ID>@nu.edu.kz #SBATCH --mail-type=FAIL,BEGIN,END #SBATCH --output=gmx-%j.out #SBATCH --ntasks=2 #SBATCH --cpus-per-task=4 #SBATCH --ntasks-per-socket=1 #SBATCH --time=24:00:00 #SBATCH --mem-per-cpu=1gb module purge module load OpenMPI/4.1.1-GCC-11.2.0 module load GROMACS/2021.5-foss-2021b-CUDA-11.4.1 export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK srun --mpi=pmix_v3 gmx mdrun -ntomp ${SLURM_CPUS_PER_TASK} -s topol.tpr

Software list