E4S Project

The Extreme-scale Scientific Software Stack

E4S 23.08 container images now available!

See Downloads for more information on E4S 23.08.

What is E4S?

The Extreme-scale Scientific Software Stack (E4S) is a community effort to provide open source software packages for developing, deploying and running scientific applications on high-performance computing (HPC) platforms. E4S provides from-source builds and containers of a broad collection of HPC software packages.

Purpose

E4S exists to accelerate the development, deployment and use of HPC software, lowering the barriers for HPC users. E4S provides containers and turn-key, from-source builds of more than 80 popular HPC products in programming models, such as MPI; development tools such as HPCToolkit, TAU and PAPI; math libraries such as PETSc and Trilinos; and Data and Viz tools such as HDF5 and Paraview.

Approach

By using Spack as the meta-build tool and providing containers of pre-built binaries for Docker, Singularity, Shifter and CharlieCloud, E4S enables the flexible use and testing of a large collection of reusable HPC software packages.

Platforms

E4S packages build on most computer systems, from laptops to supercomputers.

Testing

The E4S software distribution is tested regularly on a variety of platforms, from Linux clusters to leadership platforms.

E4S.png

Capabilities

  • From-source builds using Spack.
  • Pre-built containers for Docker, Singularity, Shifter and CharlieCloud.

Interoperability Approach

While porting of individual scientific software products is challenging, achieving interoperability between packages is even more difficult. E4S uses a dual-pronged approach for achieving software interoperability: Spack and SDKs.

  • Spack: E4S uses the Spack packages manager for software delivery. Spack provides the ability to specify versions of software packages that are and are not interoperable. It is also a common build layer to not only E4S software, but also an enormous number of software packages outside of ECP ST. These features support achieving and maintaining interoperability between ST software packages.
  • Software Development Kits (SDKs): An ECP ST Software Development Kit is a collection of related ECP ST software products (called packages) where coordination across package teams will improve usability and practices, and foster community growth among teams that develop similar and complementary capabilities. An SDK is more of a project than a product, although it involves several products. It can also be considered as an association of products and product teams. The activities that take place inside an SDK promote interoperability (where appropriate and logical) between products. The initial version 0.2 release of E4S contains member packages of one SDK - the Extreme-Scale Scientific Software Development Kit (xSDK). Future releases will incorporate additional SDKs that will be defined in the coming months.

Distribution

E4S is open source software published under the MIT License. E4S can be redistributed and modified under the terms of this license. E4S packages each have their own open source license.

Contacts

Michael A. Heroux

Project Leader

Sameer Shende

E4S Lead

James Willenbring

SDK Lead

References

  1. Getting Started with E4S for Industry and Agencies Workshop, June 2021 (E4S-IAW21)
  2. Blog article, June 2021
  3. E4S Tutorial at ECP Annual Meeting, April 2021 [Video]
  4. E4S BoF at ECP Annual Meeting, April 2021 [Video]
  5. ECP Software Technology Capability Assessment Report (CAR) Version 1.5 [PDF]
  6. DOE’S E4S Software Stack Takes An Extreme Step Towards Exascale [Article]
  7. Extreme-Scale Scientific Software Stack (E4S) Release 0.1 - YouTube [Video]
  8. State of E4S - July 2020 Update [Power Point]