Category Archives: Software Specific

Running Parallel Python3 Jupyter Notebook on zeus HPC

This is an approach to launch Jupyter notebook on a compute node of EEC HPC. Normally you launch Jupyter locally and then open associated web interface on your local machine. This is also possible to do on the HPC, however because the compute nodes of the cluster are mostly accessible via CLI only and are not “exposed” to the external to HPC network, one need to tunnel through the headnodes in order to reach them. The provided set of 2 HTA scripts simplifies the procedure: first script submits the Jupyter job to the queuing system of HPC (slurm) using html forms and ssh command tool (plink.exe from PuTTY). The second script (again using plink) establishes the ssh-tunnel to the target node, where the Jupyter server is running and starts the default browser on the client machine, pointing to the local port brought by the tunnel to the client machine. Since the compute nodes of HPC have multiple CPUs (some up to 32 cores), it is also shown that Jupyter notebook can utilise IPython ipcluster for running notebook codes on parallel threads.

link to scripts on coventry github

 

Video:

https://web.microsoftstream.com/embed/video/cb944d42-8d10-4784-8407-6e53fbaf3cbe?autoplay=false&showinfo=true

 

Simple MPI “Hello World!” on HPC

How to complile and launch simple MPI code on HPC:
 

 

OpenMPI 4.0.0

OpenMPI v.4.0.0 is available on zeus HPC. Two versions, compiled with intel compiler 2019:

module load openmpi/4.0.0/intel2019

and gcc-7.1.0

module load /openmpi/4.0.0/gcc7.1.0

There is also openmpi-2.1.5 compiled with gcc-7.1.0

module load openmpi/2.1.5/gcc7.1.0

Alex

PGI Community Edition [free]

PGI Community Edition

PGI Community Edition includes a no-cost license to a recent release of the PGI Fortran, C and C++ compilers and tools for multicore CPUs and NVIDIA Tesla GPUs, including all OpenACC, OpenMP and CUDA Fortran features. The PGI Community Edition enables development of performance-portable HPC applications with uniform source code across the most widely used parallel processors and systems.

http://www.pgroup.com/products/community.htm 

 

module load pgi/2017

Compilers:

pgc
pgcc
pgc++
pgf77
pgf90
pgf95
etc...

OpenMPI for PGI compilers

module load pgi/mpi/1.10.2/2017

OR

module load pgi/mpi/2.1.2/2017

Then mpi versions of PGI compilers will be available as

mpicc, mpic++, mpif90, mpif77...

 

Compiling with Intel MPI compiler

Let’s compile parallel code with intel compiler, say version 2013

module load intel/13 (you can also choose intel/11/icc or intel/11/ifort)
module load intel/impi

C-code

mpicc -cc=icc main.c -o main.exe

Fortran code main.f90

mpif90 -fc=ifort main.f90 -o main.exe

Run the code

module load intel/13
module load intel/impi

Launch on 8 CPUs:
mpirun -np 8 ./main.exe

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)

  1. 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 apply for a personal user license for Intel Software follow link here

Maya 2014 Renderfarm on Zeus HPC

Maya 2014 is installed on Zeus HPC (zeus.coventry.ac.uk)

I wrote a simple script for frame-based rendering parallelism, which can be found on HPC in

/share/apps/autodesk/render.sh

___________________________________________________________________________

Usage:

  1. Upload ready-to-render maya *.mb  scene file (with all other files if required) to HPC in your home folder (say, to  /home/ax4444/mayatrial , can use quick HPC tools on W:ECSTUDENTHPC, e.g. WinSCP for uploading files)
  2. Connect in a ssh-terminal (PuTTY) to HPC, change to maya project folder (i.e. cd ~/mayatrial)
  3. copy render.sh script there if need to change some extra rendering parameters (resolution, camera etc):
    cp /share/apps/autodesk/render.sh ./
  4. Decide on how many frames you need to render and how many compute nodes of zeus to use, i.e. to render 100 frames starting from frame 1 on 10 compute nodes of HPC, issue command:
    srun -N10 -t 24:00:00 --exclusive ./render.sh 1 100 mymayafile.mb &
  5. This will put the job into execution with time limit of 24 hours. If more time is needed use “long” queue, i.e. srun -N10 -t 24:00:00 -p long --exclusive ./render.sh 1 100 mymayafile.mb &
  6. render.sh script will automatically split required Nr of  frames between 10 compute nodes and will launch Mental Ray renderer  on each compute node. On each of 10 nodes 8 CPUs will be used for rendering each single frame.
  7. Resulting sequence of images (png files, change output format in render.sh if needed) is saved in the “output” folder which is created automatically. Alternatively you can edit render.sh to change output folder to, say ~/public_html, which will allow to see rendered images via web-browsed by pointing it to http://zeus.coventry.ac.uk/~yourusername/.
  8. Check the output of “squeue” command to see that the job is running in the HPC queue. Once the job finishes (or even before that), images can be downloaded to your local PC.
  9. During rendering the script (by default) will create output folder in your ~/public_html directory, so that you can see the results of rendering in your browser at  http://zeus.coventry.ac.uk/~yourusername/.  “movie.html” page created automatically in that directory will stream all currently rendered images as an animated sequence. You have to reload the page (Ctrl+R) for it to reread newly rendered frames.

Alex Pedcenko.

P.S. Take a look at the example of the output: http://zeus.coventry.ac.uk/~aa3025/inkDrop.ma/

css.php