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 and key technologies of importance to ECP. These projects are done in close collaboration between the 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, 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 possible and training materials are archived in the training area of the Exascale website. 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.