Training and Productivity

For applications to take full advantage of exascale hardware and software, a robust developer training and productivity program keeps application and software team members, staff, and other stakeholders abreast of emerging technologies. This effort is a close collaboration of Facilities, vendors, and the ECP community.

Description: Disseminate and transfer application development knowledge, lessons learned, and best practices across application teams and provide training on key technologies.

For applications to take full advantage of exascale hardware and software, a robust developer training and productivity program is necessary to keep application and software team members, staff, and other stakeholders abreast of emerging technologies. Potential high-priority topics include algorithms and methods, high-performing libraries, memory and storage hierarchies, on-node parallelism and vectorization, application portability techniques, software technologies, and software engineering design principles and best practices.

While the primary focus of this project is on supporting the ECP teams, the project has opened many of the training and productivity activities to a broader community whenever that makes sense. Reaching beyond the researchers involved in ECP today helps in terms of workforce development for the ECP, as well as laying the groundwork for the second generation of exascale developers and users after ECP ends and exascale systems (including smaller-scale deployments of those architectures) become more common and accessible to a broader base of users.

Key aspects of the work include the following.

  • Partnering with ECP project teams to understand productivity bottlenecks and improve software practices. Example areas include build systems and continuous integration.
  • Customizing and curating methodologies for ECP teams to improve software productivity and sustainability, including methodologies for software development kits (SDKs), as vehicles for sustainable delivery of Software Technology (ST) products.
  • Creating sets of customizable resources for improving scientific software development.
  • Conducting training and outreach activities in close collaboration with DOE Facilities, vendors, and the ECP community. Training is conducted through a variety of activities such as seminars, webinars, deep dive workshops and lectures, hackathons, and tutorials.
  • Expanding the Better Scientific Software community as a vehicle for partnerships with the broader HPC computational science community on issues in software productivity and sustainability.
  • Applying strategies for transitioning ST and Application Development (AD) teams to exploit emerging ECP architectures, while retaining confidence in scientific results.

Lead: Ashley Barker, Oak Ridge National Laboratory