Useful commands for LaPalma3 (preparations)
We have gathered a list of useful commands when working with LaPalma3. These commands are classified in the next sections, please, let us know if you use other commands that you think we should add to this list:
Useful commands for executing your parallel application are listed at Useful Commands (executions).
Connecting
Before connecting you need an account in LaPalma3 and send us your
public key (please, see this page for more
details).
You only need to do those previous steps once, if they are already done,
simply use ssh
in a shell terminal.
[mymachine]$ ssh username@lapalma1.iac.es
Transferring files
For transferring files to LaPalma from Unix systems (Linux,
MacOS,...), you can use secure copy (scp
) and secure ftp (sftp
),
both tools have the same syntax as the old and insecure tools such as
rcp
(remote copy) and ftp
. You can use remote sync (rsync
), too,
as long as you use ssh
as remote shell. As have been said before, no
connections are allowed from inside LaPalma to the outside world so all
scp
, sftp
and rsync
commands have to be executed from your local
machines and not inside LaPalma.
Here there are some examples of each of this tools transferring files to LaPalma:
[mymachine]$ scp localfile usertest@lapalma1.iac.es:remotedir
[mymachine]$ sftp usertest@lapalma1.iac.es
sftp> cd remotedir
sftp> put localfile
[mymachine]$ rsync -auv localfile usertest@lapalma1.iac.es:remotedir
These are the ways to retrieve files from LaPalma to your local machine:
[mymachine]$ scp usertest@lapalma1.iac.es:remotefile localdir
[mymachine]$ sftp usertest@lapalma1.iac.es
sftp> cd remotedir
sftp> get remotefile
[mymachine]$ rsync -auv usertest@lapalma1.iac.es:remotefile localdir
If you are not familiar with these transferring tools, please, check
documentation to know the different options they offer. For instance,
with sftp
you can use mget
or mput
for multiple transfers, -r
for recursion in directories, lcd
to change the local directory, use
!
to execute some commands locally, etc. rsync
also offers a lot of
different useful options.
On a Windows system, most of the secure shell clients come with a
tool to make secure copies or secure ftp's. There are several tools
that accomplishes the requirements, There are several different clients,
but as previously mentioned, IAC recommends the use of putty
clients
for transferring files: psftp
and pscp
. You can find it at the same
web page as putty
(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html).
Other possible tool for users requiring graphical file transfers could be:
WinSCP
: FreewareSftp
andScp
client for Windows (https://winscp.net/eng/download.php)
In order to start remote X applications you need and X-Server running in your local machine. Here is a list of most common X-servers for windows:
Cygwin/X
: https://x.cygwin.com/MobaXterm
: https://mobaxterm.mobatek.net/
Once the X-Server is running run putty
with X11 forwarding enabled
Available software on LaPalma
You will find installed on LaPalma the most common software used in
scientific computation, like GNU and Intel compilers, OpenMPI and
MVAPICH2 MPI compilers, scientific librarires (scalapack
, fftw
,
GSL
, MKL
, hdf5
, ...), tools (cmake
, gnuplot
, python
, ...),
parallel applications (VASP
, SIESTA
, ...), etc.
There are several compilers on LaPalma, and due to compatibility
reasons, some software have been compiled with different compilers, so
you can choose the version that best fits your needs. For instance,
hdf5/gnu/openmpi/1.10.1
means that HDF5
version 1.10.1 has been
compiled with gnu
compilers (sequential) and with OpenMPI
compilers
(parallel). That will also give you a hint about prerequisites: to load
this version of hdf5
you should first load at least gnu
and
openmpi/gnu
(you can equally use gnu
or gcc
, both are the same).
The list of available software on LaPalma is continuously being updated, since we frequently install new software or upgrade existing one according to the needs of our users. If you would like to ask for time to execute on LaPalma, but you need to know first which software is available, please, contact us and inquire whether a specific software (and version) is already available or we can install it. Also you can check next list to have an idea:
List of installed software on La Palma (November 2020)
----------------------------------------------- compilers -----------------------------------------------
gcc/4.8.5 gnu/4.8.5 intel/2018.2 mvapich2/gnu/2.3rc2 openmpi/3.0.0
openmpi/gnu/3.0.0 openmpi/intel/3.0.0 gcc/7.2.0(default) gnu/7.2.0(default) jdk/1.8.0_212
mvapich2/intel/2.3rc2 openmpi/gnu(default) openmpi/gnu/3.0.1 openmpi/intel/3.0.1
----------------------------------------------- libraries -----------------------------------------------
bzip2/1.0.7/gnu hdf5/gnu/openmpi/1.10.1 petsc/3.7.1-complex
cfitsio/3.420 hdf5/intel/impi/1.10.1 petsc/3.7.1-real
fftw/gnu/openmpi/2.1.5 hdf5/intel/mvapich2/1.10.1 qt/4.8.5
fftw/gnu/openmpi/2.1.5f hdf5/intel/openmpi(default) qt/5.6.1
fftw/gnu/openmpi/3.3.7 hdf5/intel/openmpi/1.10.1 qt/5.13.1/gnu/4.8.5
gmp/6.1.2/gnu/4.8.5 icu/4.8.2/gnu/4.8.5 scalapack/2.0.1
grackle/2.1/gnu icu/64.2/gnu/7.2.0 scalapack/2.0.2
grackle/3.1/gnu icu/65/gnu/7.2.0 slepc/3.6.0-complex
grackle/3.1/intel impi/2018.1 slepc/3.6.0-real
gsl/1.9 impi/2018.2 slepc/3.7.1-complex
gsl/2.5/gcc7 lapack/3.5.0 slepc/3.7.1-real
gsl/2.5/gnu mkl/2018.1 slepc/3.7.3-real
hdf5/1.8.20 mkl/2018.2 szip/gnu/2.1.1
hdf5/gnu(default) mlnx_ofed/4.2-1.0.0.0 szip/intel/2.1.1
hdf5/gnu/mvapich2/1.10.1 mlnx_ofed/4.2-1.2.0.0 uv/1.33.1/gnu/7.2.0
hdf5/gnu/openmpi(default) netcdf/4.4.4-parallel-fortran xmlf90/1.5.4/intel/2018.2
hdf5/gnu/openmpi/1.8.20 netcdf/4.5.0-parallel-c
------------------------------------------------- tools -------------------------------------------------
ase/3.17.0 flex/2.6.4/gnu libtool/2.4.6/intel python/3.7.4
autoconf/2.69 flex/2.6.4/intel/2018.2 nano/4.0/gnu valgrind/3.10.1
cmake/gnu(default) gnuplot/5.0.1 paraver/4.7.1 valgrind/3.14.0/intel
cmake/gnu/3.10.0 gnuplot/5.2.2(default) perl/5.24.0
cmake/gnu/3.11.1 greasy/2.2/gnu/4.8.5/openmpi/3.0.1 python/2.7.14
cmake/intel/3.10.0 greasy/2.2/gnu/7.2.0/openmpi/3.0.1 python/3.5.0
easybuild/4.1.2 greasy/2.2/intel/2018.2/openmpi/3.0.1 python/3.6.4
extrae/3.5.2 libtool/2.4.6/gnu python/3.7.3
--------------------------------------------- applications ----------------------------------------------
abinit/8.10.3/intel/2018.2 namd/2.11 siesta/spglib/intel/2018.2
cp2k/2.3 namd/2.12 vasp/5.2
cp2k/3.0 octave/4.0.0 vasp/5.3.5
cp2k/4.1 octave/4.2.1(default) vasp/5.4.1(default)
fhi-aims/071914_4 openfoam/v1912/intel/2018.2 vasp/5.4.4
fhi-aims/081213 orca/4.2.1 vasp/5.4.4-vtst
fhi-aims/081912 paraview/4.3.1 vasp/5.4.4-vtst-patched
fhi-aims/151012 paraview/5.5.2/bin vmd/1.9.1
fhi-aims/151109 paraview/5.5.2/gnu vtk/6.2.0
fhi-aims/161219 paraview/5.6.0 vtk/7.0.0
glpk/4.65/gnu/4.8.5 pkdgrav3/2019060/gnu vtk/7.1.1
gromacs/4.6.7-plumed-2.1-hrex plumed/2.1.5 vtk/8.1.0
gromacs/5.0 plumed/2.2.3
gromacs/5.0-plumed-2.1.5 plumed/2.2.3_libmatheval
gromacs/5.0.4 plumed/2.3b
gromacs/5.1 plumed/2.4.3
gromacs/5.1.2 plumed/2.4.6/intel/2018.2
gromacs/5.1.3 plumed/2.5.1
gromacs/5.1.4 plumed/2.5.3/gnu/7.2.0
gromacs/2016.4 plumed/2.5.3/intel/2018.2
gromacs/2016.5-plumed qhull/2015.2
gromacs/2018 quantum-espresso/impi/6.2.1-Environ1.0
gromacs/2018.6-PLUMED-2.5.1 quantum-espresso/impi/6.3
gromacs/2018.6/plumed/2.4.6/intel/2018.2 R/3.6.0/gnu
gromacs/2019.2 siesta/4.0.1
namd/2.9_plumed2.0.1 siesta/rel-MaX-1/intel/2018.2
Specifying which software you want to use
All installed software (compilers, applications, numerical and graphical
libraries, tools, etc.) can be found at /storage/apps/
or directly
/apps
. There is a directory for each application (uppercase letters)
and then a subdirectory with the installed versions. For better
flexibility, users are allowed to choose which software packages and
version want to use on their executions. By using the Environment
Modules
package you can dynamically load and/or unload specific modules using
the commands listed below (remember to load your required modules in
your submission scripts). To manage the modules, you only need to use
module
command and the proper option, the most common ones are listed
bellow:
List all available modules
[lapalma1]$ module avail
List all available versions of a specific package
[lapalma1]$ module avail <package> # For example: module avail gnu
Load an specific module
[lapalma1]$ module load <module_name> # For example: module load gnu/7.2.0
List all loaded modules
[lapalma1]$ module list
Unload modules
[lapalma1]$ module rm <module_name> # Unload a specific module. For example: module rm python/2.6 [lapalma1]$ module purge # Unload all modules [lapalma1]$ module switch <old_mod> <new_mod> # Replace modules (unload old_mod and then load new_mod)
Show detailed info (like prerequisites and conflicts)
[lapalma1]$ module show <module_name> # Display details for a module (you can also use display) [lapalma1]$ module show <module_name> | grep "prereq\|conflict" # Show prerequisites and conflicts
Note
Some modules have prerequisites and/or conflicts, so you might need to load them following the proper order. If you have problems when loading your modules, please, check this FAQ.
Some of the modules could be needed when executing your code, in order to properly load dynamic libraries, etc. Be careful and do not forget to add the right modules in your script file when submitting it.
Compiling
There are several available compilers in LaPalma3, remember to load their modules before using those compilers. Some modules are not compatible among them, so you may need to unload first a module to load a new one (some examples about how to load and unload modules are shown above).
Sequential
You can use the GNU or Intel compilers in order to compile your sequential codes:
# C C++ Fortran Compiler
[lapalma1]$ gcc ... g++ gfortran # GNU: module load gnu
[lapalma1]$ icc ... icpc ifort # Intel(*): module load intel
Caution
A valid license is needed to use Intel compilers. It should be available for sequential and OpenMP parallel program. Please, contact us if you have any issue related to licenses.
OpenMP
The same compilers used for sequential codes can be used for OpenMP applications, adding the proper flag:
# C C++ Fortran Compiler
[lapalma1]$ gcc -fopenmp ... g++ gfortran # GNU: module load gnu
[lapalma1]$ icc -qopenmp ... icpc ifort # Intel(*): module load intel
MPI
If you need to compile MPI programs, you can use
OpenMPI or
MVAPICH2 (both compiled with gnu
and
intel
(*))
# C C++ Fortran Compiler
[lapalma1]$ mpicc ... mpicxx mpifort # OpenMPI(gnu): module load gnu openmpi/gnu
[lapalma1]$ mpicc ... mpicxx mpifort # OpenMPI(intel): module load intel openmpi/intel
[lapalma1]$ mpicc ... mpicxx mpifort # MVAPICH2(gnu): module load gnu mvapich2/gnu
[lapalma1]$ mpicc ... mpicxx mpifort # MVAPICH2(intel): module load intel mvapich2/intel
Note
The recommended commands to invoke the compilers are those listed above, but depending on the modules that have been loaded, there might be many others:
mpif90
,mpif77
,mpigcc
,mpigxx
, etc. You can use the one that best fits your needs, most times they are just wrappers or links, but check the documentation since some of them are deprecated.
Tip
Use
man
to get the complete list of options of each compiler (i.e.man gcc
orman icc
)
Note
If your application needs some external libraries (like
gsl
,mkl
,hdf5
,netcdf
, etc.), use commandmodule avail <package>
to see if they are available. If so, load the one(s) you need withmodule load <module>
before compiling your application (and also remember that you might also need to load them in your submit script when running your application). Also check all available versions before loading a module, since sometimes there are specific modules depending on the compilers that you are going to use (for instance,openmpi
has different modules forgnu
orintel
. You can see all those versions using:module avail <package>
, usually dependencies are indicated after the version number). Please, contact us if you have any doubt about which version you should choose or you need any software that is not already installed.
Profiling and debugging
The next tools are available on LaPalma3:
GNU profiler:
gprof
GNU code coverage:
gcov
GNU debugger:
gdb