Category Archives: Quick Guides - Page 3
Resource Management for Multi-Core/Multi-Threaded Usage
LS-DYNA tests on new Broadwell nodes
MPP version of LSDYNA was tested for various CPU configurations on new Broadwell nodes vs old Nehalem 8-CPU nodes for the same problem.
SLURM file for LS-Dyna 9.1.0 submission is here lsdyna.
For 9.1.0 version of LSDYNA use
module load lsdyna/971
module load lsdyna/pmpi
| Family | Nodes | CPUs | EXEC_TIME, hrs | lsdyna ver | mpi |
| Broadwell | 1 | 32 | 06:02 | 7.1.2 | HPMPI |
| Broadwell | 1 | 16 | 09:22 | 7.1.2 | HPMPI |
| Nehalem | 2 | 16=2×8 | >12 hrs (time limit reached) | 7.1.2 | HPMPI |
| Broadwell | 2 | 32=2×16 | 05:28 | 7.1.2 | HPMPI |
| Broadwell | 4 | 64=4×16 | 02:51 | 9.1.0 | PMPI |
| Broadwell | 8 | 128=8×16 | 01:46 | 9.1.0 | PMPI |
| Broadwell | 2 | 64=2×32 | 05:08 | 9.1.0 | PMPI |
| Sandybridge | 2 | 24=2×12 | 09:30 | 7.1.3 | PMPI |
So It looks like running LSDYNA on both CPUs (16 cores) of Broadwell is really does not make the problem solve faster. Instead use just 16 CPU-cores (see 64 CPU-cores case — its 2x faster!): either all on one socket or on different ones is still remains to be tested.
Alex Pedcenko
Remote rendering with ParaView on HPC node with “pvserver”
You can launch remote ParaView server on the HPC compute node to render the data stored on HPC (no need to transfer data to your client machine)
- Reserve a compute node, say 1 “whole” node for 4 hours
salloc -N1 -n8 --exclusive -t 4:00:00
(you can also do it with a slurm submission script of course)
2. then on the node you have been allocated by slurm (say zeus15), launch ParaView server process:
[aa3025@zeus2 ~]$ salloc -N1 -n8 -t 4:00:00 salloc: Granted job allocation 16726 [aa3025@zeus2 ~]$ qstat JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 16726 short4 bash aa3025 R 0:12 1 zeus15 [aa3025@zeus2 ~]$ ssh zeus15 [aa3025@zeus15 ~]$ /share/apps/paraview/ParaView-5.2.0-Qt4-OpenGL2-MPI-Linux-64bit/bin/pvserver -display :0.0 --use-offscreen-rendering Waiting for client... Connection URL: cs://zeus15:11111 Accepting connection(s): zeus15:11111
Leave this window alone, the server is now accepting connections on port 11111.
3. Now we need to tunnel from your Desktop machine (which must have the same verion of ParaView installed as on the node (ParaView-5.2.0). First we establish the ssh tunnel from port 11111 of the node to port 11111 of your Desktop PC via Zeus’s login node, say zeus2.
So on your Desktop machine set up the tunnel (add user name before zeus2 if necessary, i.e. user@zeus2):
ssh -L 11111:zeus15:11111 zeus2
You will be logged in to zeus2 in this ssh session. keep this terminal running this is your link to the target node zeus15.
4. Next open local ParaView (Linux,Windows) and “connect to server” “localhost:11111” -> in the 1st console running the server, you will see that connection is made:
[aa3025@zeus15 bin]$ ./pvserver -display :0.0 --use-offscreen-rendering Waiting for client... Connection URL: cs://zeus15:11111 Accepting connection(s): zeus15:11111 Client connected.
Now you can open your data files in ParaView directly from your home folder on zeus and process them etc and create your animation:
Once you checked it is all working you can make small 1-line slurm script for starting the ParaView server with sbatch-submitted job.
Alex Pedcenko.
RStudio on Zeus
We have R 3.3.2 installed on zeus (login nodes and compute nodes). You can also access R on one login node via RStudio web interace at http://zeus.coventry.ac.uk/R
Alex Pedcenko
Intel Free Software Tools — bring your own license
Qualifications
![]()
Academic Researchers must provide an academic institution email address to qualify for this program.
Offer:
A free 12 month named-user license for the Intel® Performance Libraries
- Intel® Math Kernel Library
- Intel® Data Analytics Acceleration Library
- Intel® Threading Building Blocks
- Intel® Integrated Performance Primitives
- Intel® MPI Library (not available for OS X*)
Get Intel® Performance Libraries for:
Linux* ›
OS X* ›
Windows* ›
Are you interested in more software tools than the libraries listed above?
- To deliver top performance with less effort for C, C++ and Fortran high performance computing (HPC), technical computing and enterprise applications, try Intel® Parallel Studio XE.
- For deep system-level insight into power, performance and reliability of Intel® architecture-based systems and embedded applications, try Intel® System Studio.
- Browse and download Additional Free Software and Code Samples ›.
To apply for a personal user license for Intel Software follow link here
03 Disk Space and User Quotas
As you may be aware, we are experiencing constant disk space shortage on zeus HPC. To address this issue, the disk quotas have been introduced for user home folders. Each user is can be entitled (if space permitting) to 200 Gb of disk space. You can exceed this amount up to 1Tb for up to 7 days (grace period). After that you may no longer add files to your home folder until you clean it below original 200Gb threshold.
Remember that you should not use the HPC disk space for storing your files, please store only the files which are necessary for currently running jobs and/or post processing results etc..
For storing temporary files, job results and even submitting new jobs you can use fast scratch space here /beegfs/users/yourHPCusername
This space has no quota, but it is not backed up, so it should be only used for current jobs and projects, not for storing data!
You can look check how much your home folder is consuming here: http://zeus.coventry.ac.uk/space.php quotas’ status and disk usage are updated hourly.
What if I’m above the quota, but I still need my files and have no means to offload them from HPC?
At the moment we are regularly backing up the content of all /home/ folders onto external network drive (NAS drive). If you need to keep your files, which are currently in your home folder and are above the user quota and you have no means to store them anywhere else, please let me know (email me: aa3025@coventry.ac.uk) and I can disable backing up your home folder on zeus HPC. This way you will have bulk of your files already stored on the backup drive and can delete them from your zeus home folder, leaving only the files which are necessary for currently running jobs. When you delete the files from your home folder on Zeus, they will be automatically (with some delay of 1 day or so) deleted from the backup drive. So if you need to keep them, please let me know for disabling overwriting of the backup copy.
Then you can be given an access to backup drive to retrieve your files when needed.
Best Regards,
Alex Pedcenko
reconstructPar in multiprocessor mode
If you are using OpenFOAM parallel solvers, you may have noticed that reconstruction of the decomposed fields after the solution completes takes quite a long time, especially if you have huge number of time-steps to reconstruct. Apparently the OpenFOAM utility reconstructPar is using just one CPU-core and reconstruct time steps one-by-one in a serial fashion.
However, reconstructPar takes few command-line arguments, in particular you can specify a time step or several separate time-steps to reconstruct. This feature enables to launch several reconstructPar processes, each dedicated to the reconstruction of its own portion of time steps. Brilliant idea! We are going to send bunch of reconstructPar to the compute nodes of HPC once solution completes (I bet I’m not the first person to invent this, but I’m going to use the power of slurm:)!
So, once your solution is done, put this script preconstructPar.slurm it the case folder and submit the job on whatever number of nodes and cores you want, e.g. here I use 4 nodes and 8 cores on each (32 CPUs in total) and default queue “all”: sbatch -N4 -n32 -p all preconstructPar.slurm
The listing of the slurm script which does the job:
#!/bin/bash
#SBATCH --time=8:00:00
#SBATCH --job-name="reconstruct"
#---------------------------------------------------------------------
#PROC files will store groups of time-steps for each CPU:
rm PROC*
#---------------------------------------------------------------------
# How many CPUs we have:
NNODES=$SLURM_NTASKS #(( SLURM_JOB_NUM_NODES * $SLURM_NTASKS_PER_NODE ))
#----------------------------------------------------------------------
# Find how many time-steps there are:
Nsteps=`ls --ignore="constant" ./processor0 | wc -l`
let Nsteps=$Nsteps-1
# if number of time-steps is less then CPU's:
if [ $Nsteps -lt $NNODES ]; then
NNODES=$Nsteps
fi
echo "Nsteps:" $Nsteps
#---------------------------------------------------------------------
#Checking whether Nr of timesteps divides into Nr of CPUs
let TPN=$Nsteps/$NNODES
let rem=$Nsteps%$NNODES
if [ $rem -gt 0 ] # if there is a remainder add one timestep per CPU
then
let TPN=$TPN+1
fi
let NNODES=$Nsteps/$TPN #thats how many CPUs we eventually need for fair division
#--------------------------------------------------------------------
echo " Will use $NNODES CPUs to reconstruct $TPN timesteps on each node:"
let TPN=$TPN-1 # TPN is Nr of time-staps per CPU, but we count from 0
#---------------------------------------------------------------------
node=0
i=0
#-------------- main loop along the time-steps ------------------------
for f in `ls --ignore="constant" ./processor0`
do
if [ "$f" != "0" ];then
if [ $i -eq 0 ];
then
COMA=""
else
COMA=","
fi
steps[$node]=${steps[$node]}$COMA$f
let i=$i+1
if [ $i -gt $TPN ]
then
let node=$node+1
i=0
fi
fi
done
#---------------- loop complete, print PROC files -----------------------
for ((j=0;j<=$NNODES-1; j++))
do
echo ${steps[$j]} > PROCID$j # output which timesteps each CPU must use
echo ${steps[$j]}
done
#------------------------------------------------------------------------
# creating temporary bash-script for each process will pick its own portion of timesteps:
echo "#!/bin/bash" > thread.sh
chmod +x thread.sh
echo "times=`cat PROCID$SLURM_PROCID`" >> thread.sh
echo "echo "Launching on CPU $SLURM_PROCID the times $times">>debug.log " >> thread.sh
echo "reconstructPar -noZero -time $times" >> thread.sh
# Launching in parallel on $NNODES CPUs:
srun -n$NNODES thread.sh
#------------------ clean up the rubbish after all done --------------------
rm -f PROC*
rm -f thread.sh
You can now check on which CPUs the processes are actually running by doing:
squeue
to see on which nodes your reconstruction job is running. Say “zeus[200-217]”. Then we can check for reconstructPar processes on these nodes:
pdsh -w zeus[200-217] ps aux | grep reconstruct | dshbak
Where the list of nodes “zeus[200-217]” is taken from the output of squeue command (see above).
You must see something like:
[aa3025@zeus2 Rayleigh2]$ pdsh -w zeus[200-217] ps aux | grep reconstruct | dshbak
----------------
zeus200
----------------
aa3025 52682 99.9 17.2 8925884 8523252 ? R 09:37 4:19 reconstructPar -noZero -time 0.5
aa3025 52683 100 16.8 8925884 8327192 ? R 09:37 4:20 reconstructPar -noZero -time 10
aa3025 52684 100 17.0 8925884 8441992 ? R 09:37 4:20 reconstructPar -noZero -time 1
----------------
zeus201
----------------
aa3025 21405 99.7 17.4 8925884 8599528 ? R 09:37 4:20 reconstructPar -noZero -time 11
aa3025 21406 99.7 17.2 8925884 8540500 ? R 09:37 4:20 reconstructPar -noZero -time 10.5
aa3025 21407 99.6 17.3 8925884 8578924 ? R 09:37 4:20 reconstructPar -noZero -time 11.5
----------------
zeus202
----------------
aa3025 14981 99.5 17.3 8925884 8549820 ? R 09:37 4:19 reconstructPar -noZero -time 12.5
aa3025 14982 99.6 17.3 8925884 8557780 ? R 09:37 4:20 reconstructPar -noZero -time 12
aa3025 14983 99.6 17.1 8925884 8476252 ? R 09:37 4:19 reconstructPar -noZero -time 13
----------------
zeus203
........ etc
Enjoy the speed of reconstruction!
Alex Pedcenko
07 Midnight Commander for the Rescue of a Novice Linux User
If you just starting with Linux command line, the “Midnight Commander” file manager will be quite helpful for you to ease few simple tasks. You can launch it with a command mc You will see something like this:
The interface of “mc” are two panels with content of any 2 folders you navigate to. To switch between the panels (left/right) use TAB key on your keyboard. You can also use mouse if your ssh-session is capable of this. MC allows to do following things (key to execute in brackets, “F” refers to “function” keys – top row on your keyboard):
- Navigate through files and folders (just select folder you want to go with arrows and press [ENTER]). To go “up” one folder select “..” on top of the folder listing and press [ENTER].
- To select multiple files/folders on current panel use “Ins/0” key on your NUMPAD (small numericl panel on the right of the keyboard) panel. NumLock must be OFF!
- Select All files in folder (“+ and then Enter”). Can also select files of certain extension in the same way.
- View content of a file: select file and press (F3)
- Edit file: select file and press (F4)
- Copy file or folder from one folder to another (i.e. from one panel to the opposite): select file or folder and press (F5)
- Move files/folders (select and press F6)
- Make new folder in the current folder/panel: F7
- Delete file/folder: select file or folder you want to delete and press (F8) [ cannot be undone ]
- (F9) go into top menus if you do not have mouse functionality, navigate through using arrows.
- (F10) exits MC.
You can still use “mc” session as a command line session: just press Ctrl+O to toggle between command line and mc panels. If you start typing while in panel mode, the command appears underneath the panels. Press Enter to execute it in the currently active panel of mc. Typing “exit” will close mc. Type “cd” {ENTER} to change to the top of your home folder. Type “cd foldername” to change to the “foldername” (sometimes it is faster than using “arrows/PgUp/PgDown” keys.
While in one of the panels try pressing (F2) you will see what you can do with currently selected file or folder (the most useful is compress). MC can also decompress various archives (zip/rar/tar/gzip/z… etc). Just select the achieve and press [ENTER] – it will show its content. Select the files you want to de-compress and copy them to the opposite panel.
If you going to use MC you will find much more features soon and wont be able to work in command line without it.
regards,
Alex Pedcenko
01 Connecting to HPC
OK, you’ve got an HPC account, what next?
If you have got the HPC account (on either zeus or pluto HPC), the first thing you need to do is to change your temporary password. For this, you need to log in to HPC terminal/console with your temporary password and issue the command passwd.
This can be done by establishing SSH connection with one of the HPC headnodes (either zeus.coventry.ac.uk or pluto.coventry.ac.uk depending on which HPC you have the account on). SSH is a secure shell protocol used to login to remote computers via command line. There are few ssh-client apps allowing you to do this.
Connecting in console with secure shell (ssh)
To do that you will need ssh-client software. The possibilities are:
- Windows “native” ssh client (command line). If you have relatively recent copy of Windows 10, just open command window (Winkey+R: cmd.exe, Enter)
- If you are using Linux or Mac computer you already have native ssh client.
In either of these cases just open a terminal and type
ssh yourhpcusername@zeus.coventry.ac.uk
or if you are using pluto HPC:
ssh yourhpcusername@pluto.coventry.ac.uk
Using PuTTY as ssh-client
PuTTY free ssh client (also available from AppsAnywhere https://appsanywhere.coventry.ac.uk), or can be downloaded and installed on your desktop PC e.g. from https://www.chiark.greenend.org.uk/~sgtatham/putty/. The documentation for using PuTTY can be found at http://www.chiark.greenend.org.uk/~sgtatham/putty/docs.html
Using Google Chrome as ssh-client
You can install ssh extension for both Google Chrome or MS Edge browsers:
Secure Shell – Chrome Web Store (google.com)
Using Windows 10 Linux subsystem (WSL) apps
Since recently you can install mini Linux distribution on your Windows 10 PC. What you need is to first install optional Windows component (Control Panel -> Programs -> Turn Windows Features on/off -> Windows Subsystem for Linux (WSL)). Once that done, reboot your PC, then go to Windows App store and get some Linux distro you are familiar with: Ubuntu, Debian etc and install it. Launch it, and you will be brought to full-functional Linux terminal, where you can install standard Linux console applications (for sure you may need “openssh-client” (Ubuntu) or “ssh” (Debian), e.g. for Ubuntu do “apt update; apt install openssh-client”). It is usefull to set up your WSL username the same as on HPC (saves time entering it all the time upon each ssh connection).
Connecting to the Desktop of HPC with VNC session (Remote Desktop like)
If you want to have a “Desktop” experience on HPC, once you have changed your temporary HPC password, you can use this way for VNC jobs/connection, see here : VNC jobs GUI HPC VNC jobs for Windows Clients | EEC High Performance Computing (coventry.domains)
Alex Pedcenko
Openconnect-gui –opensource free Windows x86/64 alternative for Cisco anyconnect VPN Client
If you are using windows (especially Windows 10 [update Sept-2015: now Cisco works with Win 10]), you may find that Cisco Openconnect VPN client for accessing University network from the outside is crashing on creating the connection. You can use opensource alternative openconnect:
https://github.com/openconnect/openconnect-gui/wiki
To connect use:
server: connect.coventry.ac.uk
username: your Uni one
Group: VPN
password: your Uni one
Alex

Recent Comments