Basic User's Guide
What is the supercomputer?
The computing cluster (supercomputer) of HSE University consist of computing nodes connected by a high-speed communication network. Each computing node has its own RAM and SSD and also it is connected to shared network storage. Special-parallel software is used to make independent computing nodes to work as a single computer.Work with a computing cluster consists of three stages:
- The user prepares on his own computer the source data for the available application software of the supercomputer or writes his own parallel program.
- The user connects to the head node of the cluster via the SSH protocol, downloads the source data, and puts his task in the queue for calculation.
- The user downloads the result from the computing cluster to his own computer and studies it locally.
Remote access to the supercomputer
Remote connection to the supercomputer is carried out through the head node using the SSH protocol at cluster.hpc.hse.ru, port 2222.In GNU/Linux and MacOS, the ssh application is used for connection; for Microsoft Windows, the freeware PuTTY program is recommended.
Logging in begins with the login: system prompt: In response to it, enter the user name and press the [Return/Enter] key. Then the system will ask for the user password. Enter the password and press the [Return/Enter] key. Please note that when entering the password, characters on the screen are not printed, however, the password itself is entered.
To change users password after logging in, users should use the passwd command and enter the new password twice in response to the invitation. Entered characters will not be displayed.
Transferring files to the supercomputer
File storage
In accordance with the rules, the user independently provides a backup of his data. It’s not allowed to store the data that is no longer involved in calculations on the supercomputer.User directories look like /home/{username}. User directories are located on the Luster parallel data storage. The maximum amount of data for a user is determined by the disk quota determined during registration (after that the quota can be increased if necessary). In addition, a local directory for temporary files (/tmp) is available on each computing node and is located on the node’s SSD. After the program finishes, temporary user files in the /tmp node are deleted automatically.
Setting environment
To manage versions of application software packages and libraries, the Environmental Modules software package is installed on the supercomputer. It allows usets to flexibly configure environment variables for using certain software versions and tracking their dependencies (including starting in batch mode using sbatch). Also, the use of Environment Modules allows the user to flexibly manage different versions of the application (for example, the user can quickly switch between different versions of compilers and versions of the MPI library).Using Environment Modules
Basic Environment Modules commands
- module avail – list available modules
- module list – list loaded modules
- module load module1 – load module module1
- module unload module1 – unload module module1
- module swap module1 module2 – replace the loaded module module1 with module2
- module purge – unload all loaded modules
- module whatis module1 – show module1 information
- module save [env_name] - save the current set of loaded modules under the name env_name. If you do not specify a name, the set will be overwritten by the default set
- module resotre [env_name] - load a set of saved modules
- module describe [env_name] - show the composition of the set of saved modules
Environmental Modules case studies
View loaded modules:$ module list
Currently Loaded Modules:
1) autotools 2) prun/1.2 3) gnu7/7.3.0 4) openmpi3/3.1.3 5) ohpc
View available modules:
$ module avail
- /opt/ohpc/pub/modulefiles -
CUDA/10.0 cnpy_lib/1.0 hpcx/hpcx-stack
Python/Anaconda_v10.2019 gnu7/7.3.0 (L) hpcx/hpcx (D)
EasyBuild/3.7.1 fltk/v1.3.5 hwloc/1.11.10
Where:
D: module, loaded by default;
L: currently loaded module.
Unloading all modules and loading CUDA/10.2 and Python/Anaconda_v10.2019:
$ module purge
$ module add CUDA/10.2 Python/Anaconda_v10.2019
$ module list
Currently Loaded Modules:
1) CUDA/10.2 2) Python/Anaconda_v10.2019
Saving the default module set:
$ module save
Saved current collection of modules to: "default"
Compiling programs on the supercomputer
To compile programs on the HSE University computing cluster, the following are installed:- Proprietary Intel Parallel Studio XE Cluster Edition for GNU/Linux.
- A set of free GNU Compiler Collection compilers.
Instructions for compiling programs on the supercomputer
The compiler is selected by loading the appropriate module:
module load gnu8 openmpi3
or
module load INTEL/parallel_studio_xe_2020_ce
- C: mpiicc [options] -o program.out file1.c file2.c
- C++: mpiicpc [options] -o program.out file1.cpp file2.cpp
- Fortran: mpiifort [options] -o program.out file1.f90 file2.f90
To compile parallel MPI applications using the GNU Compiler Collection + OpenMPI, use the mpicc, mpixx, mpifort commands:
- C: mpicc [options] -o program.out file1.c file2.c
- C++: mpicxx [options] -o program.out file1.cpp file2.cpp
- Fortran: mpifort [options] -o program.out file1.f90 file2.f90
When compiling, it is recommended to specify special optimization flags to speed up program execution. The -O2 optimization flag activates vectorization and basic loop optimization. In most cases, this flag ensures the best performance of the program.
When using programs with a large number of floating-point calculations or processing bulk data sets, it is recommended to use the -O3 flag, which activates a more aggressive conversion of loops and conditional expressions. More information on optimization flags can be found on the Intel Parallel Studio website and the GNU Compiler Collection.
When compiling using Intel compilers, it is also recommended to specify the -xHOST flag. It allows the compiler to use the maximum set of instructions available for processors on the supercomputer. This flag optimizes the application even more but reduces its portability to other platforms (all the nodes of the HSE University computing cluster have processors of the same generation with the same set of instructions).
An example of using optimization flags when compiling MPI programs:
mpiicpc -xHOST -O2 /opt/ophc/pub/examples/mpi/hello.c -o ./program_name
mpicxx -O2 /opt/ophc/pub/examples/mpi/hello.c -o ./program_name
To compile regular (non-parallel) programs using Intel Parallel Studio, use the following commands:
- C: icc [options] -o program.out file1.c file2.c
- C++: icpc [options] -o program.out file1.cpp file2.cpp
- Fortran: ifort [options] -o program.out file1.f90 file2.f90
- C: gcc [options] -o program.out file1.c file2.c
- C++: g++ [options] -o program.out file1.cpp file2.cpp
- Fortran: gfortran [options] -o program.out file1.f90 file2.f90
Queuing a task
To run calculations on the supercomputer, users should use Slurm job management system. This system (task scheduler) manages available resources and places tasks on suitable free computing nodes. In accordance with the rules, it is forbidden to perform tasks that require significant computing resources on the head node.We recommend using the sbatch command to queue a task. The user should prepare a script with the necessary keys and command to use sbatch:
#!/bin/bash
#SBATCH <sbatch key> <value>
#SBATCH <sbatch key> <value>
<user commands>
Detailed information on launching tasks is available in a separate instruction.
View Queue Status
Removing a task from the queue
To remove a task from the queue, use the scancel [task number] command.Basic GNU/Linux OS commands
List of basic commands in GNU/Linux:- pwd – print the full path of the current directory
- cd [path] - change the current directory
- ls – show directory contents
- cp <source> <recipient> - copy file
- mv <source> <recipient> - move the file
- rm <path> - delete the file
- cat <path> - display the contents of the file in the terminal
- mcedit [path] - open a text file editor
- exit – exit the shell (or disconnect from the supercomputer)
About maintenance work
In case of problems
To resolve questions arising on the use of the HSE University computing cluster, contact the Supercomputer modeling department by creating a ticket on the support portal or by e-mail at hpc@hse.ru. The ticket should describe in detail the problem that has arisen and the steps for reproducing it.
Have you spotted a typo?
Highlight it, click Ctrl+Enter and send us a message. Thank you for your help!
To be used only for spelling or punctuation mistakes.