Skip to content

Commit

Permalink
Update top-level content
Browse files Browse the repository at this point in the history
  • Loading branch information
maherou committed Nov 18, 2020
1 parent 495771c commit ac238c6
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 14 deletions.
Binary file modified ECP-ST-Leads.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ECP-ST-Leads_v3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ECP22.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 12 additions & 6 deletions Introduction.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\section{Introduction}
\section{Introduction}\label{sect:intro}
The Exascale Computing Project Software Technology (ECP ST) focus area represents the key bridge between Exascale systems and the scientists developing applications that will run on those platforms. ECP offers a unique opportunity to build a coherent set of software (often referred to as the ``software stack'') that will allow application developers to maximize their ability to write highly parallel applications, targeting multiple Exascale architectures with runtime environments that will provide high performance and resilience. But applications are only useful if they can provide scientific insight, and the unprecedented data produced by these applications require a complete analysis workflow that includes new technology to scalably collect, reduce, organize, curate, and analyze the data into actionable decisions. This requires approaching scientific computing in a holistic manner, encompassing the entire user workflow—from conception of a problem, setting up the problem with validated inputs, performing high-fidelity simulations, to the application of uncertainty quantification to the final analysis. The software stack plan defined here aims to address all of these needs by extending current technologies to Exascale where possible, by performing the research required to conceive of new approaches necessary to address unique problems where current approaches will not suffice, and by deploying high-quality and robust software products on the platforms developed in the Exascale systems project.
The ECP ST portfolio has established a set of interdependent projects that will allow for the research, development, and delivery of a comprehensive software stack, as summarized in Table~\ref{table:wbs}.

Expand All @@ -23,7 +23,7 @@ \section{Introduction}

\begin{figure}
\centering
\includegraphics[width=0.9\linewidth]{ECP21}
\includegraphics[width=0.9\linewidth]{ECP22}
\caption{The ECP Work Breakdown Structure through Level 3 (L3) as of December 5, 2019. Under Software Technology, WBS 2.3.6 consolidates ATDM contributions to ECP into a new L3 area.}
\label{fig:ecp2}
\end{figure}
Expand Down Expand Up @@ -52,14 +52,14 @@ \subsection{Background}

The next section describes the approach employed by ECP ST to address the Exascale challenges.

\subsection{ECP ST Project Restructuring}\label{subsect:ProjectRestructuring}
\subsection{ECP ST Project WBS changes}\label{subsect:ProjectRestructuring}

The initial organization of ECP ST was based on discussions that occurred over several years of Exascale planning within DOE, especially the DOE Office of Advanced Scientific Computing Research (ASCR). Figure~\ref{fig:ecpstv1} shows the conceptual diagram of this first phase. The 66 ECP ST projects were mapped into 8 technical areas, in some cases arbitrating where a project should go based on its primary type of work, even if other work was present in the project. In November 2017, ECP ST was reorganized into 5 technical areas, primarily through merging a few smaller areas, and the number of projects was reduced to 56 (then 55 due to further merging in \ecosystem). Figure~\ref{fig:ecpstv2} shows the diagram of the second phase of ECP ST. In Section~\ref{sect:PETA}, we describe the organization, planning, execution, tracking and assessment processes that will put ECP ST in a good position for success in the CD-2 phase of the project.

\begin{figure}
\centering
\includegraphics[width=0.9\linewidth]{STFY20WBS}
\caption{\label{fig:wbs-FY20} The FY20 ECP ST WBS structure as of December 5, 2019, includes a new L3 (2.3.6) and better balances L4 subprojects in the first four L3 technical areas. Technical area 2.3.5 has only two projects, which are focused on meta-product development in SDKs, E4S, Spack and SuperContainers.}
\caption{\label{fig:wbs-FY20} The FY20 ECP ST WBS structure as of November 18, 2020, includes two new L4 subprojects: 2.3.5.10 ExaWorks, a workflow components project, and 2.3.3.15 PEEKS, a new solver effort that provides funding for Trilinos porting to Frontier and Aurora platforms and merges sparse solver efforts for the products Kokkos Kernels and Ginkgo from CLOVER for improved compatibility.}
\end{figure}

\begin{figure}
Expand All @@ -76,7 +76,7 @@ \subsection{ECP ST Project Restructuring}\label{subsect:ProjectRestructuring}
\item 41 ASCR-funded projects. Added 2 \ecosystem\ projects and 4 SDK projects.
\item 15 ATDM projects: Combined the previous 31 ATDM projects into one project per technical area per lab. ATDM projects are generally more vertically integrated and would not perfectly map to any proposed ECP ST technical structure. Minimizing the number of ATDM projects within the ECP WBS structure reduces complexity of ATDM to ECP coordination and gives ATDM flexibility in revising its portfolio without disruption to the ECP-ATDM mapping.
\end{itemize}
\item Phase 3: 33 total L4 subprojects. Fewer, larger and more uniform-sized projects
\item Phase 3a: 33 total L4 subprojects. Fewer, larger and more uniform-sized projects
\begin{itemize}
\item Starting with FY2020, ECP ST has further consolidated L4 projects to foster additional synergies and amortize project overheads as ECP heads into Critical Decision Phase 2~\cite{413.3B}, where more rigor in planning and execution are needed.
\item 5 L3s to 6: New NNSA ST L3
Expand All @@ -89,6 +89,12 @@ \subsection{ECP ST Project Restructuring}\label{subsect:ProjectRestructuring}
\item No more small subprojects.
\item Figure~\ref{fig:wbs-FY20} show the overall structure.
\end{itemize}
\item Phase 3b: 35 total L4 subprojects. Add two new L4 subprojects.
\begin{itemize}
\item New L4 subproject called ExaWorks. Focuses on providing an underlying component architecture for workflow management systems, led by a team of workflow experts who would leverage the new substrate in their own workflow products.
\item Revised L4 subproject called PEEKS. PEEKS was originally an independent L4 subproject in Phase 2. In Phase 3 PEEKS was combined with SLATE, HeFFTe and Kokkos Kernels to create the CLOVER L4 subproject. Due to an increased level of funding for sparse solvers in Trilinos and the close connection between PEEKS and Kokkos Kernels with efforts in Trilinos, it made sense to again have PEEKS be an independent project that combines the previous PEEKS and Kokkos Kernels scope along with the new scope for Trilinos. The new Trilinos scope focuses on specific porting to Aurora and Frontier, which is outside the scope of what NNSA funds would support.
\item Figure~\ref{fig:wbs-FY20} show the overall structure.
\end{itemize}
\end{itemize}
\end{mdframed}

Expand Down Expand Up @@ -116,7 +122,7 @@ \subsection{ECP ST Project Restructuring}\label{subsect:ProjectRestructuring}
\begin{figure}
\centering
\includegraphics[width=0.9\linewidth]{ECP-ST-Leads}
\caption{ECP ST Leadership Team as of October 2019.}
\caption{ECP ST Leadership Team as of November 2020. Jonathan Carter, previous Deputy Director of ECP ST, became Associate Lab Director of the Computing Sciences Area at Lawrence Berkeley National Laboratory. His departure led to naming of Lois Curfman McInnes, previously the L3 Lead of Math Libraries, as Deputy Director of ECP ST, and Sherry Li as the new Math Libraries L3 Lead. Rob Neely was also promoted at LLNL, leading to Kathryn Mohror becoming the L3 Lead of NNSA ST.}
\label{fig:ecpstleads}
\end{figure}

2 changes: 1 addition & 1 deletion Project-Management.tex
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ \subsubsection{The Extreme-scale Scientific Software Stack (E4S)}\label{subsubse
\begin{figure}
\centering
\fbox{\includegraphics[width=0.9\linewidth]{E4S-Build-Tree}}
\caption{Using Spack~\cite{gamblin+:ecp18-spack-tutorial}, E4S builds a comprehensive software stack. As ECP ST efforts proceed, we will use E4S for continuous integration testing, providing developers with rapid feedback on regression errors and providing user facilities with a stable software base as we prepare for Exascale platforms. This diagram shows how E4S builds ECP products via an SDK target (the math libraries SDK called xSDK in this example). The SDK target then builds all product that are part of the SDK (see Figure~\ref{fig:sdk-definition1} for SDK groupings), first defining and building external software products. Green-labeled products are part of the SDK. The blue-label indicates expected system tools, in this case a particular version of Python. Black-labeled products are expected to be previously installed into the environment (a common requirement and easily satisfied). Using this approach, a user who is interested in only SUNDIALS (a particular math library) can be assured that the SUNDIALS build will be possible since it is a portion of what E4S builds and tests.}
\caption{Using Spack~\cite{gamblin+:ecp18-spack-tutorial}, E4S builds a comprehensive software stack. As ECP ST efforts proceed, we will use E4S for continuous integration testing, providing developers with rapid feedback on regression errors and providing user facilities with a stable software base as we prepare for Exascale platforms. This diagram shows how E4S builds ECP products via an SDK target (the math libraries SDK called xSDK in this example). The SDK target then builds all product that are part of the SDK (see Figure~\ref{fig:sdk-definition1-0} for SDK groupings), first defining and building external software products. Green-labeled products are part of the SDK. The blue-label indicates expected system tools, in this case a particular version of Python. Black-labeled products are expected to be previously installed into the environment (a common requirement and easily satisfied). Using this approach, a user who is interested in only SUNDIALS (a particular math library) can be assured that the SUNDIALS build will be possible since it is a portion of what E4S builds and tests.}
\label{fig:e4s-build-tree}
\end{figure}

Expand Down
Binary file modified STFY20WBS.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added STFY20WBS_v1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 18 additions & 7 deletions abstract.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,15 @@

This \textit{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 six to 12 months). Highlights from this version of the report are presented here.

\textbf{What is new in CAR V2.0:} CAR V2.0 contains the following updates relative to CAR V1.5.
\textbf{What is new in CAR V2.5:} CAR V2.5 contains the following updates relative to CAR V2.0.
\begin{itemize}
\item We introduce the FY20--23 project structure. ECP ST now consists of 6 (up from 5) level-3 (L3) technical areas, introducing the NNSA ST L3 area, which brings into one L3 the ECP open source development efforts at NNSA labs that are of particular importance to the rest of ECP. The number of ECP ST level-4 (L4) subprojects has been reduced from 55 to 33. The strategic aggregation of projects into fewer and larger units enables us to better manage L4 subprojects consistently as a portfolio. See Section~\ref{subsect:ProjectRestructuring}.
\item We describe new and enhanced project management processes and resources including our iterative planning process, new KPP-3 capability integration process, a product dictionary and dependency management database. These new project features and related dashboards enable more insight and better information to effectively manage efforts across ECP. See Section~\ref{sect:PETA}.
\item We highlight the progress with the Extreme-scale Scientific Software Stack (E4S) efforts. In particular, we discuss how E4S has emerged as a new first-class entity in the HPC ecosystem, enabling new conversations with users, facilities, vendors, other US agencies and international partners. We also highlight the development of the E4S DocPortal and Version 1.0 of E4S community policies, and E4S Spack build caches.
\item The two-page summaries of each ECP L4 projects have been updated to reflect recent progress and next steps. See Section~\ref{sect:project-summaries}.
\item The Extreme-scale Scientific Software Stack (E4S) is further described. The third release, which is also the first major public release Version 1.0, was November 18, 2019. E4S is the primary integration and delivery vehicle for ECP ST capabilities. See Section~\ref{subsubsect:e4s}.
\item The ECP ST SDK effort has further refined its groupings. See Section~\ref{subsubsect:sdks}.
\end{itemize}

The Exascale Computing Project Software Technology (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 70 software products (Section~\ref{subsubsect:dictionary}) in six technical areas (Table~\ref{table:wbs}). Since the publishing of CAR V1.5, we have introduced a product dictionary of official product names, which enables more rigorous mapping of ECP ST deliverables to stakeholders (Section~\ref{subsubsect:dep-management}).
The Exascale Computing Project Software Technology (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 the publishing of CAR V2.0, we continue 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, we are 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 the need to provide vendor-specific implementations for each exascale system. We anticipate that one legacy of ECP ST efforts will be a software stack that supports Intel and AMD accelerators in addition to Nvidia. See Section~\ref{subsect:pmr}.

Expand All @@ -33,10 +32,22 @@

\textbf{ECP ST Software Delivery mechanisms:} 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. Each of the major DOE computing facilities provides direct support of some users for about 20 ECP ST products. About 10 products are available via vendor software stack and via binary distributions such as Linux distributions.

\textbf{ECP ST Project Restructuring:} ECP ST completed a significant restructuring in October 2019 (Section~\ref{subsect:ProjectRestructuring}). We increased the number of technical areas from 5 to 6 and reduced the number of L4 projects from 55 to 33. We introduced a new L4 subproject for software packaging and delivery in the L3 technical area (\ecosystem) that enhances existing NNSA funding for Spack and creates specific funding and goals for container environments.

\textbf{ECP ST Project Overviews:} A significant portion of this report includes 2-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{ECP ST Project Overviews:} A significant portion of this report includes 2-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:} 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 33 projects and more than 250 contributors to create the ECP ST software stack.

\textbf{How to navigate this document:} The size of the ECP ST CAR is large. However, it is organized in a hierarchical fashion that should permit rapid navigation for readers who are interested in specific information as follows:
\begin{itemize}
\item General Overview of ECP ST: Sections~\ref{sect:intro} through~\ref{sect:deliverables} provide an introduction and general overview of ECP Software Technology.
\item Section~\ref{sect:project-summaries} is dedicated to the L3 Technical areas. Each subsection includes an overview of the L3 area followed by two-page overview, status and plans for each product supported by 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}

0 comments on commit ac238c6

Please sign in to comment.