-
Notifications
You must be signed in to change notification settings - Fork 99
/
abstract.tex
53 lines (38 loc) · 7.97 KB
/
abstract.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
\begin{abstract}
The Exascale Computing Project (ECP) Software Technology (ST) focus area is responsible for (1) developing critical software capabilities that will enable the successful execution of ECP applications and (2) providing key components of a productive and sustainable exascale computing ecosystem that will position the US~Department of Energy (DOE) and the broader high-performance computing (HPC) community with a firm foundation for future extreme-scale computing capabilities.
This ECP ST Capability Assessment Report (CAR) provides an overview and assessment of current ECP ST capabilities and activities, giving stakeholders and the broader HPC community information that can be used to assess ECP ST progress and plan their own efforts accordingly. ECP ST leaders commit to updating this document on regular basis (every 6--12 months). Highlights from this version of the report are presented here.
This version of the CAR contains the following updates relative to the previous revision.
\begin{itemize}
\item This report highlights the progress with the Extreme-scale Scientific Software Stack (E4S) efforts. In particular, this report discusses how E4S continues to gain traction as a first-class entity in the HPC ecosystem, enabling new conversations with users, facilities, vendors, other US agencies, and international partners.
\item The several-page summaries of each ECP Level 4 project were updated to reflect recent progress and next steps (Section~\ref{sect:project-summaries}). Of particular note are the experiences of our teams on early-access systems for Frontier.
\item The E4S is described further. E4S is now updated via quarterly releases. E4S is the primary integration and delivery vehicle for ECP ST capabilities (Section~\ref{subsubsect:e4s}).
\item The ECP ST software development kit (SDK) effort further refined its groupings (Section~\ref{subsubsect:sdks}).
\end{itemize}
The ECP ST focus area represents the key bridge between exascale systems and the scientists developing applications that will run on those platforms. ECP ST efforts contribute to approximately 70 software products (Section~\ref{subsubsect:dictionary}) in six technical areas (Table~\ref{table:wbs}). Since publishing the previous revision of the CAR, the team has continued to evolve the product dictionary of official product names, which enables more rigorous mapping of ECP ST deliverables to stakeholders (Section~\ref{subsubsect:dep-management}).
\textbf{\pmr:} In addition to developing key enhancements to MPI and OpenMP for scalable systems with accelerated node architectures, the team is working on performance portability layers (Kokkos and RAJA) and participating in OpenMP and OpenACC software design and development that will enable applications to write much of their source code without needing to provide vendor-specific implementations for each exascale system. One legacy of ECP ST efforts is anticipated to be a software stack that supports Intel and AMD accelerators in addition to NVIDIA's accelerators (Section~\ref{subsect:pmr}).
\textbf{\tools:} The team is enhancing existing widely used compilers (e.g., LLVM) and performance tools for next-generation platforms. Compilers are critical for heterogeneous architectures, and LLVM is the most popular compiler for heterogeneous systems.
%
As node architectures become more complicated and concurrency becomes even more necessary, compilers must generate optimized code for many architectures, and the impediments to performance and scalability will become even more difficult to diagnose and fix.
%
Development tools provide essential insight into these performance challenges and code transformation and support capabilities that help software teams generate efficient code, use new memory systems, and more (Section~\ref{subsect:tools}).
\textbf{\mathlibs:} High-performance scalable math libraries have enabled parallel execution of many applications for decades. The ECP ST is providing the next generation of these libraries to address needs for latency hiding, improved vectorization, threading, and strong scaling. Additionally, the team is addressing new demands for system-wide scalability, including improved support for coupled systems and ensemble calculations (Section~\ref{subsect:mathlibs}). The Mathematical Libraries teams are also leading the SDK initiative that is a pillar of the ECP ST software delivery strategy (Section~\ref{subsubsect:sdks}). Recently, the FFTX portion of the STRUMPACK/SuperLU project was transferred out of ECP ST into the ECP AD co-design portfolio, to better align the exploratory nature of FFTX with co-design approaches.
\textbf{\dataviz:} The ECP ST has a large collection of data management and visualization products that provide essential capabilities for compressing, analyzing, moving, and managing data. These tools are becoming even more important as the volume of simulation data produced grows faster than the ability to capture and interpret it (Section~\ref{subsect:dataviz}).
\textbf{\ecosystem:} This technical area provides important enabling technologies, such as Spack~\cite{gamblin+:sc15}, a from-source build and package manager; container environments for high-performance computers; and a toolkit of reusable components for scientific workflow management systems. This area also provides the critical resources and staffing that will enable the ECP ST to perform continuous integration testing and product releases. Finally, this area engages with software and system vendors and DOE facilities staff to ensure the coordinated planning and support of ECP ST products (Section~\ref{subsect:ecosystem}).
\textbf{\nnsa:} This technical area brings all the National Nuclear Security Administration (NNSA)-funded work in the ECP ST into one Level 3 (L3) area for easier coordination with other project work at NNSA laboratories. Introducing this L3 area enables continued integrated planning with the rest of the ECP ST while permitting flexible coordination within the NNSA laboratories (Section~\ref{subsect:nnsa}).
\textbf{ECP ST Software Delivery Mechanisms:} The ECP ST delivers software capabilities to users via several mechanisms (Section~\ref{sect:deliverables}). Almost all products are delivered via source code to at least some of their users. About 10 products are available via vendor software stack and via binary distributions, such as Linux distributions.
\textbf{ECP ST Project Overviews:} A significant portion of this report includes two-page synopses of each ECP ST project (Section~\ref{sect:project-summaries}), including a project overview, key challenges, solution strategy, recent progress, and next steps.
\textbf{Project Organization:} The ECP ST has established a tailored project management structure using capability integration goals, milestones, regular project-wide video meetings, monthly and quarterly reporting, and an annual review process. This structure supports project-wide communication and coordinated planning and development that enables 35 projects and more than 250 contributors to create the ECP ST software stack.
\textbf{How to navigate this document:} This report is large. However, it is organized in a hierarchical fashion that should permit rapid navigation for readers who are interested in specific information. The report is organized as follows.
\begin{itemize}
\item General overview of ECP ST: Sections~\ref{sect:intro}--\ref{sect:deliverables} provide an introduction and general overview of the ECP ST.
\item Section~\ref{sect:project-summaries} is dedicated to the L3 technical areas. Each subsection includes an overview of the L3 area followed by a two-page overview, status, and plans for each product supported by the ECP ST.
\begin{itemize}
\item \pmr: Section~\ref{subsect:pmr}.
\item \tools: Section~\ref{subsect:tools}.
\item \mathlibs: Section~\ref{subsect:mathlibs}.
\item \dataviz: Section~\ref{subsect:dataviz}.
\item \ecosystem: Section~\ref{subsect:ecosystem}.
\item \nnsa: Section~\ref{subsect:nnsa}.
\end{itemize}
\end{itemize}
\end{abstract}