Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide popular PRACE packages, ensure they are available as a meta-module #82

Open
boegel opened this issue Jan 18, 2013 · 6 comments
Open

Comments

@boegel
Copy link
Member

boegel commented Jan 18, 2013

(originally by @fgeorgatos)

most of the content on this has been shamelessly copied^H^H^H^H^H^H borrowed from:
https://openwiki.uninett.no/metacenter:reference:noturcpe

@boegel
Copy link
Member Author

boegel commented Jan 18, 2013

Moved from easybuilders/easybuild-framework#333

@fgeorgatos
Copy link
Collaborator

fgeorgatos commented Feb 25, 2013

Updating status as of v2.2.0:

Required Components

Application name and remarks follow:

  • FEniCS fenics ## FG: I understand DOLFIN covers this fine, any objections? Seems no.
  • FFTW fftw ## version 2 pending and 3 OK
  • GSL gsl
  • MATLAB matlab
  • PETSc petsc ## to check: built with double,complex,64-bit indices
  • R R
  • Trilinos trilinos
  • CMake cmake
  • GridFTP gridftp
  • gnuplot gnuplot
  • HDF5 hdf5
  • hpn-ssh clients only
  • Mayavi mayavi version 2 ## EPD might provide this
  • NetCDF netcdf
  • PAPI papi
  • ParaView paraview
  • pigz pigz multicore-parallel gzip
  • Python python see the Python subsection
  • TotalView totalview
  • Visit visit by LLNL ## GJB may visit it
  • VTK vtk

Python module

There is also an apparent need for an extended Python module, covering

  • Cython
  • gnuplot Python interface to gnuplot
  • Ipython ## EPD might provide this
  • matplotlib
  • mpi4py requires MPI
  • NumPy
  • petsc4py requires PETSc
  • Pypar
  • PyTables requires hdf5
  • PyTrilinos requires hdf5, trilinos
  • ScientificPython
  • SciPy
  • SciTools ## EPD might provide this
  • SymPy ## EPD might provide this

PRACE CPE Compatibility - issue objective

Finally, the PRACE CPE is the compatibility layer centers strive to be compliant against:

  • Bash bash ## VP has this?
  • BLACS blacs [1]
  • BLAS blas [1]
  • C compiler c [2]
  • C++ compiler c++ [2]
  • Emacs emacs
  • Fortran compiler fortran [2]
  • Java compiler java [1]
  • LAPACK lapack [1]
  • MPI mpi [1]
  • ScaLAPACK scalapack [1]
  • tcsh tcsh ## FG/VP has a version
  • GNU Make gmake ## FG should fix this
  • NEdit nedit ## FG needs this
  • Perl perl
  • Tcl tcl
  • Tk tk
  • OpenSSH openssh clients only
  • PRACE CPE prace container module ## ie. this is a Toolchain per EasyBuild parlance!

As per the following, some aliasing work will be required (or it can be done via alt. namespace):

[1] provide an alias to the recommended, highest performance, library or utility, supporting the platform recommended compiler. In case of a library, this might be fully contained in another product. If a recommended vendor library does not fully contain the module file library (including its API), separate libraries must be provided (e.g. IBM ESSL).
[2] provide an alias to the recommended compiler, capable of compiling parallel (MPI) programs, with or without OpenMP.

btw. sources to bootstrap some easyconfigs needed above - some are working already

Mockup -untested- versions for some of the missing small items above can be found at:
https://github.com/fgeorgatos/easybuild.experimental/blob/master/contrib/pkgsrc/20121226/e/emacs-22.3.eb
https://github.com/fgeorgatos/easybuild.experimental/blob/master/contrib/pkgsrc/20121226/n/nedit--src.eb

Default PRACE module dependencies and variables

The PRACE module should automatically bring up as dependencies (ie. behave as an extended toolchain):
c c++ fortran mpi blas lapack blacs scalapack fftw/3 netcdf hdf5
and ensure it adjusts variables (ie. define modextravars in relation to $EBPRACEDEVEL?):

$PRACE_{FFLAGS,CFLAGS,LDFLAGS,STORE,SCRATCH,ARCH}

PRACE Applications - this is fyi. only

Finally, these apps have to be available as modules, too:

  • mpiBLAST mpiblast
  • LAMMPS lamps ## LS2/GF cares about this
  • NAMD name ## LS2/GT is working on this
  • ADF adf
  • CPMD cpmd ## LS2 cares about this?
  • Dalton dalton
  • Gaussian gaussian ## LS2 cares about this? N/A
  • VASP vasp ## LS2/GF cares about this?
  • OpenFOAM openfoam

PRACE Benchmarks - this is fyi. only

For completeness -but not a prerequisite to resolve this issue-, here are the applications selected for the PRACE application benchmark suite:

  • QCD, particle physics
  • Quantum_Espresso, computational chemistry
  • NAMD, computational chemistry
  • CPMD, computational chemistry
  • Code_Saturne, computational fluid dynamics
  • GADGET, astronomy and cosmology
  • TORB/EUTERPE, plasma physics
  • WRF, atmospheric modelling
  • NEMO, ocean modelling
  • CP2K, computational chemistry
  • GROMACS, computational chemistry # WJ/FG/GT/KH have been working on this, including CUDA support
  • NS3D, computational fluid dynamics
  • AVBP, computational fluid dynamics
  • HELIUM, computational physics
  • TRIPOLI-4, computational engineering
  • PEPC, plasma physics
  • GPAW, computational chemistry
  • ALYA, computational mechanics
  • OCTOPUS, computational chemistry
  • BSIT, computational geophysics
  • ELMER, computational engineering
  • SPECFEM3D, computational geophysics

Ref: http://www.hpcwire.com/hpcwire/2010-02-15/prace_benchmark_suite_finalised.html

@fgeorgatos
Copy link
Collaborator

fgeorgatos commented Mar 6, 2013

Hoi *,

Getting ready to contribute the first iteration of the PRACE environment during the hackathon @ Cyprus:
https://github.com/fgeorgatos/easybuild.experimental/tree/master/users/fgeorgatos/PRACE

Toolchains tested: goalf/1.1.0, ictce/4.1.13, ictce/5.2.0

We still have some way to go as regards minor tools and also variables, as defined here:
http://www.prace-ri.eu/PRACE-Common-Production

Overall, it's looking good but gives some errors with the $EBDEVELPRACE
(it has to be tuned, because the whole point of the PRACE CPE is to eliminate such issues)

The upcoming hackathon in Nicosia next week is a prime opportunity to follow up on the issues,
before we hit the trigger for the grand pull request.

Don't be dismayed to give it a try, its status is already pretty good for the majority of users;

fgeorgatos@gaia-10:~/easybuild.experimental/users/fgeorgatos/PRACE$ module load PRACE
fgeorgatos@gaia-10:~/easybuild.experimental/users/fgeorgatos/PRACE$ module list
Currently Loaded Modulefiles:
  1) EasyBuild/1.2.0               5) imkl/11.0.2.146               9) Bash/4.2-ictce-5.2.0         13) zlib/1.2.7-ictce-5.2.0       17) Bison/2.5-ictce-5.2.0
  2) icc/2013.2.146                6) ictce/5.2.0                  10) tcsh/6.18.01-ictce-5.2.0     14) Szip/2.1-ictce-5.2.0         18) Doxygen/1.8.1.1-ictce-5.2.0
  3) ifort/2013.2.146              7) make/3.82-ictce-5.2.0        11) Tcl/8.5.12-ictce-5.2.0       15) HDF5/1.8.9-ictce-5.2.0       19) netCDF/4.1.3-ictce-5.2.0
  4) impi/4.1.0.030                8) Java/1.7.0_10                12) Tk/8.5.12-ictce-5.2.0        16) flex/2.5.35-ictce-5.2.0      20) PRACE/20130306-ictce-5.2.0
fgeorgatos@gaia-10:~/easybuild.experimental/users/fgeorgatos/PRACE$
fgeorgatos@gaia-10:~/easybuild.experimental/users/fgeorgatos/PRACE$ echo $EBDEVELPRACE
/home/users/fgeorgatos/.local/easybuild/software/PRACE/20130306-ictce-5.2.0/easybuild/PRACE-20130306-ictce-5.2.0-easybuild-devel

enjoy,
Fotis

@fgeorgatos
Copy link
Collaborator

Progress report:
We now have 2 PRACE toolchains, which cover both recent Intel and GNU compiler toolkits:
https://github.com/fgeorgatos/easybuild.experimental/tree/master/users/fgeorgatos/PRACE
PrgEnv business requires more work but the structure I think is relatively correct.

@fgeorgatos
Copy link
Collaborator

this feels like necroposting, nevertheless here is some newer information in relation to $subject:
https://repository.prace-ri.eu/git/UEABS/ueabs#the-application-codes-that-constitute-the-ueabs-are

It basically has explicit instructions/info about the PRACE benchmark suite's components:

  • ALYA
  • Code_Saturne
  • CP2K
  • GADGET
  • GPAW
  • GROMACS
  • NAMD
  • NEMO
  • PFARM
  • QCD
  • Quantum Espresso
  • SHOC
  • SPECFEM3D

@boegel
Copy link
Member Author

boegel commented May 19, 2020

Oh they even added TensorFlow recently to it, see https://repository.prace-ri.eu/git/UEABS/ueabs#tensorflow .

Now it's getting interesting... I've been looking for a decent TensorFlow benchmark for a while now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants