The objective of this session is to exemplify the execution of several common, parallel, Computational Fluid Dynamics, Molecular Dynamics and Chemistry software on the UL HPC platform.
Note: you can check out either the instructions for the OAR scheduler (gaia and chaos clusters) or SLURM (for iris).
First of all, we will submit a job with 2 cores on each of 2 compute nodes for 1 hour. Please note that the Gaia cluster can be replaced at any point in this tutorial with the Chaos cluster if not enough resources are immediately available.
First of all, we will submit on the iris cluster an interactive job with 2 tasks on each of 2 compute nodes for 1 hour.
Toolchains represent sets of compilers together with libraries commonly required to build software, such as MPI, BLAS/LAPACK (linear algebra) and FFT (Fast Fourier Transforms). For more details, see the EasyBuild page on toolchains.
The main alternative to this toolchain is intel (toolchain/intel) that includes the Intel tools icc, ifort, impi and imkl.
As of June 2018 we are testing a new set of global software with updated versions for our major applications, libraries and their dependencies.
Note that the hostname application is not a parallel application, with MPI we are simply launching it on the different nodes available in the job.
Why didn't it work? Remember we stored this application on a compute node's /tmp directory, which is local to each node, not shared. Thus the application couldn't be found (more on this later) on the remote nodes.
Now some different error messages are shown, about loading shared libraries, and the execution hangs (stop it with Ctrl-C). Why? Remember that on the current node we have loaded the goolf toolchain module, which has populated the environment with important details such as the paths to applications and libraries. This environment is not magically synchronized across the multiple nodes in our OAR job, thus when the hellompi process is started remotely, some libraries are not found.
Note that SLURM's srun knows the environment of your job and this will drive parallel execution, if you do not override it explicitly!
density-functional theory, plane waves, and pseudopotentials (both norm-conserving and ultrasoft).
One thing we note is that some versions may have a -hybrid suffix. These versions are hybrid MPI+OpenMP builds of QE. MPI+OpenMP QE can give better performance than the pure MPI versions, by running only one MPI process per node (instead of one MPI process for each core in the job) that creates (OpenMP) threads which run in parallel locally.
Now we will run pw.x to perform electronic structure calculations in the presence of a finite homogeneous electric field, and we will use sample input (PW example10) to calculate high-frequency dielectric constant of bulk Silicon. For reference, many examples are given in the installation directory of QE, see $EBROOTQUANTUMESPRESSO/espresso-$EBVERSIONQUANTUMESPRESSO/PW/examples.
We will see the calculation progress, this serial execution should take around 2 minutes.
You can see that in addition to QuantumESPRESSO, Yambo versions that are linked with QE are found by module avail.
Now we will run the reactingParcelFoam solver of OpenFOAM on an example showing the spray-film cooling of hot boxes (lagrangian/reactingParcelFilmFoam/hotBoxes). For reference, many examples are given in the installation directory of OpenFOAM, see $FOAM_TUTORIALS.
We will use one of ABINIT's parallel test cases to exemplify parallel execution. For reference, many examples are given in the installation directory of ABINIT, see $EBROOTABINIT/share/abinit-test.
Try to comment all the np* vars and set paral_kgb=    -4 to have advices on process distribution.
The product of npkpt, npfft, npband and npspinor is bigger than the number of processors.
in order to bring this product below nproc .
equal to the total number of processors, nproc.
As shown above, ABINIT itself can give details into how to tune input parameters for the dataset used.
Edit the input file si_kpt_band_fft.in as per ABINIT's instructions, then re-run ABINIT. The following message will be shown, with a list of parameters that you will need to edit in si_kpt_band_fft.
"Computing all possible proc distrib for this input with nproc less than      4"
Next, ensure you can now run ABINIT on this example to completion.
NAMD, recipient of a 2002 Gordon Bell Award and a 2012 Sidney Fernbach Award, is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems. Based on Charm++ parallel objects, NAMD scales to hundreds of cores for typical simulations and beyond 500,000 cores for the largest simulations.
We will use one of the benchmark inputs of NAMD to test it, specifically the reference STMV (virus) benchmark (1,066,628 atoms, periodic, PME).
ASE is a Python library for working with atoms *.
ASE can interface with many external codes as calculators: Asap, GPAW, Hotbit, ABINIT, CP2K, CASTEP, DFTB+, ELK, EXCITING, FHI-aims, FLEUR, GAUSSIAN, Gromacs, Jacapo, LAMMPS, MOPAC, NWChem, SIESTA, TURBOMOLE and VASP. More details on the official webpage.
Let us run the official short example structure optimization of hydrogen molecule on the Iris cluster. Note that parallel executions of the external codes require specific environment variables to be set up, e.g. for NWChem it's ASE_NWCHEM_COMMAND which needs to include the srun parallel job launcher of Iris, which integrates with the MPI suites.