Aug
1
Sun
Argonne Training Program on Extreme-Scale Computing 2021 @ Q Center
Aug 1 – Aug 13 all-day
Argonne Training Program on Extreme-Scale Computing
Call for 2021 Applications EXTENDED

The Argonne Training Program on Extreme-Scale Computing (ATPESC) provides intensive, two-week training on the key skills, approaches, and tools to design, implement, and execute computational science and engineering applications on current high-end computing systems and the leadership-class computing systems of the future.

The core of the program will focus on programming methodologies that are effective across a variety of supercomputers and that are expected to be applicable to exascale systems. Additional topics to be covered include computer architectures, mathematical models and numerical algorithms, approaches to building community codes for HPC systems, and methodologies and tools relevant for Big Data applications.

Doctoral students, postdocs, and computational scientists interested in attending ATPESC can review eligibility and application details on the application instructions web page.

The event will be held in the Chicago area. If an in-person meeting is not possible, it will be held as a virtual event.

Note: There are no fees to participate. Domestic airfare, meals, and lodging are provided.

IMPORTANT DATES – ATPESC 2021

  • March 5, 2021 (midnight, Anywhere on Earth) – Extended deadline to submit applications
  • April 26, 2021 – Notification of acceptance
  • May 3, 2021 – Account application deadline

For more information see https://extremecomputingtraining.anl.gov or contact [email protected]

Aug
20
Fri
Variorum Lecture Series
Aug 20 @ 7:00 pm – 8:30 pm

1st Variorum Lecture Series August 2021

The Variorum team will provide its first Variorum Lecture Series, where attendees will learn everything necessary to start using Variorum on various platforms to write portable power management code. The team will provide support through GitHub and Variorum mailing list during and after the lecture series. This Variorum Lecture Series will consist of two modules, each of 1.5 hours each. We will hold two sessions to accommodate different time zones as well as attendee schedules.

    Module 1: August 6, 8:30am-10:00am PT / 11:30am-1:00pm ET, targeting US/European attendees, and August 20, 4:00pm-5:30pm PT / 7:00pm-8:30pm ET, targeting US/Asian attendees.
    Module 2: August 13, 8:30am-10:00am PT / 11:30am-1:00pm ET, targeting US/European attendees, and August 27, 4:00pm-5:30pm PT / 7:00pm-8:30pm ET, targeting US/Asian attendees.

What is Variorum?

Variorum is a production-grade, open-source, vendor-neutral software infrastructure for exposing low-level control and monitoring of a system’s underlying hardware features. It can easily be ported to different hardware devices, as well as different generations within a particular device. This allows users to manage power, performance and thermal information seamlessly across hardware from different vendors. More specifically, Variorum’s flexible design supports a set of features that may exist on one generation of hardware, but not on another. Variorum can also be included as part of the system software stack for power management: such as runtime systems, resource managers, and other profiling tools. At present, Variorum supports 5 platforms (IBM, Intel, AMD, ARM and NVIDIA) and a total of ten microarchitectures across these platforms.

Contents of the Lectures

Module 1: Introduction to Variorum

  • Challenges in Power Management and The HPC Power Stack
  • Understanding Power Management Knobs on Intel, IBM, NVIDIA, ARM, and AMD platforms
  • Variorum Library
    • Build, dependencies, and setup
    • Monitoring user applications non-intrusively
    • Vendor-neutral Variorum API across diverse architectures
    • Using Variorum for finer-grained monitoring, power capping, and management

Module 2: Integrating Variorum with System Software and Tools

  • The HPC Power Stack revisited: need for power management at various levels
  • GEOPM: job-level power management
  • Kokkos and Caliper: application and workflow power management
  • SLURM (Research Extensions): system-level power management
  • Upcoming Features in Variorum
  • The HPC Power Stack Roadmap

How to Attend

  • The lecture series is available to everyone, and participants are welcome to attend any/all sessions.
  • No-cost registration is necessary, meeting link and password will be sent to registrants. See “Tickets” above.
  • Presenters will show in-depth demos during the lecture series. Presenters can provide support during and after the lecture series with setup and usage on supported architectures.

Presenters

  • Stephanie Brink, Tapasya Patki, Aniruddha Marathe and Barry Rountree (Lawrence Livermore National Laboratory)

Module 1

Module 2

Aug
23
Mon
CMake Training
Aug 23 @ 12:00 pm – 4:00 pm

Due to the great interest that this training attracted, we are unable to accommodate additional participants and registration is now closed.

The training class will be virtual and will use computational resources available at NERSC for the exercises. The tentative agenda for the training is given below.  The training is targeted at a deeper understanding of CMake. It seeks to assist ECP developers in learning how to resolve issues outside of their control, in addition to writing a build system generator capable of seamlessly configuring for multiple unique architectures with a variety of compilers.

Tentative Agenda

Session #1: Monday, August 23, 12pm – 4pm ET

— Kitware Background
— CMake Background

  • What it is
  • Why it exists
  • Why you should use it

— Introduction to CMake
— Resources for learning CMake

  • How to install CMake
  • How to run CMake on existing projects
  • CMake workflow
  • Exercise: run cmake-gui, ccmake and cmake

— Commands and Variables

  • CMake basic syntax
  • CMake commands
  • CMake variables
  • Configuring header files
  • Requiring a CMake version
  • Language levels ( c++11/14/17/20 )
  • Exercise: configure a file and C++11 controls
  • Flow control
  • Variable scope
  • Functions/macros
  • CMake cache variables
  • Compiler options
  • Build configurations (debug vs. release)
  • CMake presets

— Libraries

  • Different types of libraries: shared/static/object/module
  • Linking & specifying dependencies
  • Exercise: adding a library
  • Usage requirements / modern CMake
  • Exercise: usage requirements

— Speeding up your Builds

Session #2: Tuesday, August 24, 12pm – 4pm ET

— Install rules
— Testing with CMake

  • CTest features
  • Multi core tests
  • Test resource allocation
  • Exercise: installing and testing

— System Introspection

  • Using find modules
  • Using config modules
  • Writing find modules
  • Understanding find module search order
  • Debugging find modules
  • Include command
  • Exercise: system introspection

— Build Artifact Controls
— Custom Commands

  • Exercise: custom command and generated file

— CMake Scripting
— Using CPack to create installers

  • Exercise: building an installer

— Reporting build/test results to CDash

  • Feature overview
  • Coverage
  • Static analysis
  • Dynamic analysis
  • Exercise: submitting results to a dashboard

Session #3: Wednesday, August 25, 12pm – 4pm ET

— Mixing Library Types
— Symbol Visibility
— Library Visibility

  • Exercise: mixing static and shared

— Generator Expressions

  • Exercise: using generator expressions

— Importing & Exporting Targets

  • Exercise: export configuration

— CMake’s Policy System
— MPI Support
— CUDA Support
— Cross Compilation
— External Project & Fetch Content
— Fortran Support
— Noteworthy changes from recent CMake releases

Session #4: Thursday, August 26, 12pm – 4pm ET

— Office hours / Q&A session

Slides and recordings will be available after the classes.

Aug
24
Tue
CMake Training
Aug 24 @ 12:00 pm – 4:00 pm

Due to the great interest that this training attracted, we are unable to accommodate additional participants and registration is now closed.

The training class will be virtual and will use computational resources available at NERSC for the exercises. The tentative agenda for the training is given below.  The training is targeted at a deeper understanding of CMake. It seeks to assist ECP developers in learning how to resolve issues outside of their control, in addition to writing a build system generator capable of seamlessly configuring for multiple unique architectures with a variety of compilers.

Tentative Agenda

Session #1: Monday, August 23, 12pm – 4pm ET

— Kitware Background
— CMake Background

  • What it is
  • Why it exists
  • Why you should use it

— Introduction to CMake
— Resources for learning CMake

  • How to install CMake
  • How to run CMake on existing projects
  • CMake workflow
  • Exercise: run cmake-gui, ccmake and cmake

— Commands and Variables

  • CMake basic syntax
  • CMake commands
  • CMake variables
  • Configuring header files
  • Requiring a CMake version
  • Language levels ( c++11/14/17/20 )
  • Exercise: configure a file and C++11 controls
  • Flow control
  • Variable scope
  • Functions/macros
  • CMake cache variables
  • Compiler options
  • Build configurations (debug vs. release)
  • CMake presets

— Libraries

  • Different types of libraries: shared/static/object/module
  • Linking & specifying dependencies
  • Exercise: adding a library
  • Usage requirements / modern CMake
  • Exercise: usage requirements

— Speeding up your Builds

Session #2: Tuesday, August 24, 12pm – 4pm ET

— Install rules
— Testing with CMake

  • CTest features
  • Multi core tests
  • Test resource allocation
  • Exercise: installing and testing

— System Introspection

  • Using find modules
  • Using config modules
  • Writing find modules
  • Understanding find module search order
  • Debugging find modules
  • Include command
  • Exercise: system introspection

— Build Artifact Controls
— Custom Commands

  • Exercise: custom command and generated file

— CMake Scripting
— Using CPack to create installers

  • Exercise: building an installer

— Reporting build/test results to CDash

  • Feature overview
  • Coverage
  • Static analysis
  • Dynamic analysis
  • Exercise: submitting results to a dashboard

Session #3: Wednesday, August 25, 12pm – 4pm ET

— Mixing Library Types
— Symbol Visibility
— Library Visibility

  • Exercise: mixing static and shared

— Generator Expressions

  • Exercise: using generator expressions

— Importing & Exporting Targets

  • Exercise: export configuration

— CMake’s Policy System
— MPI Support
— CUDA Support
— Cross Compilation
— External Project & Fetch Content
— Fortran Support
— Noteworthy changes from recent CMake releases

Session #4: Thursday, August 26, 12pm – 4pm ET

— Office hours / Q&A session

Slides and recordings will be available after the classes.

Aug
25
Wed
CMake Training
Aug 25 @ 12:00 pm – 4:00 pm

Due to the great interest that this training attracted, we are unable to accommodate additional participants and registration is now closed.

The training class will be virtual and will use computational resources available at NERSC for the exercises. The tentative agenda for the training is given below.  The training is targeted at a deeper understanding of CMake. It seeks to assist ECP developers in learning how to resolve issues outside of their control, in addition to writing a build system generator capable of seamlessly configuring for multiple unique architectures with a variety of compilers.

Tentative Agenda

Session #1: Monday, August 23, 12pm – 4pm ET

— Kitware Background
— CMake Background

  • What it is
  • Why it exists
  • Why you should use it

— Introduction to CMake
— Resources for learning CMake

  • How to install CMake
  • How to run CMake on existing projects
  • CMake workflow
  • Exercise: run cmake-gui, ccmake and cmake

— Commands and Variables

  • CMake basic syntax
  • CMake commands
  • CMake variables
  • Configuring header files
  • Requiring a CMake version
  • Language levels ( c++11/14/17/20 )
  • Exercise: configure a file and C++11 controls
  • Flow control
  • Variable scope
  • Functions/macros
  • CMake cache variables
  • Compiler options
  • Build configurations (debug vs. release)
  • CMake presets

— Libraries

  • Different types of libraries: shared/static/object/module
  • Linking & specifying dependencies
  • Exercise: adding a library
  • Usage requirements / modern CMake
  • Exercise: usage requirements

— Speeding up your Builds

Session #2: Tuesday, August 24, 12pm – 4pm ET

— Install rules
— Testing with CMake

  • CTest features
  • Multi core tests
  • Test resource allocation
  • Exercise: installing and testing

— System Introspection

  • Using find modules
  • Using config modules
  • Writing find modules
  • Understanding find module search order
  • Debugging find modules
  • Include command
  • Exercise: system introspection

— Build Artifact Controls
— Custom Commands

  • Exercise: custom command and generated file

— CMake Scripting
— Using CPack to create installers

  • Exercise: building an installer

— Reporting build/test results to CDash

  • Feature overview
  • Coverage
  • Static analysis
  • Dynamic analysis
  • Exercise: submitting results to a dashboard

Session #3: Wednesday, August 25, 12pm – 4pm ET

— Mixing Library Types
— Symbol Visibility
— Library Visibility

  • Exercise: mixing static and shared

— Generator Expressions

  • Exercise: using generator expressions

— Importing & Exporting Targets

  • Exercise: export configuration

— CMake’s Policy System
— MPI Support
— CUDA Support
— Cross Compilation
— External Project & Fetch Content
— Fortran Support
— Noteworthy changes from recent CMake releases

Session #4: Thursday, August 26, 12pm – 4pm ET

— Office hours / Q&A session

Slides and recordings will be available after the classes.

Aug
26
Thu
CMake Training
Aug 26 @ 12:00 pm – 4:00 pm

Due to the great interest that this training attracted, we are unable to accommodate additional participants and registration is now closed.

The training class will be virtual and will use computational resources available at NERSC for the exercises. The tentative agenda for the training is given below.  The training is targeted at a deeper understanding of CMake. It seeks to assist ECP developers in learning how to resolve issues outside of their control, in addition to writing a build system generator capable of seamlessly configuring for multiple unique architectures with a variety of compilers.

Tentative Agenda

Session #1: Monday, August 23, 12pm – 4pm ET

— Kitware Background
— CMake Background

  • What it is
  • Why it exists
  • Why you should use it

— Introduction to CMake
— Resources for learning CMake

  • How to install CMake
  • How to run CMake on existing projects
  • CMake workflow
  • Exercise: run cmake-gui, ccmake and cmake

— Commands and Variables

  • CMake basic syntax
  • CMake commands
  • CMake variables
  • Configuring header files
  • Requiring a CMake version
  • Language levels ( c++11/14/17/20 )
  • Exercise: configure a file and C++11 controls
  • Flow control
  • Variable scope
  • Functions/macros
  • CMake cache variables
  • Compiler options
  • Build configurations (debug vs. release)
  • CMake presets

— Libraries

  • Different types of libraries: shared/static/object/module
  • Linking & specifying dependencies
  • Exercise: adding a library
  • Usage requirements / modern CMake
  • Exercise: usage requirements

— Speeding up your Builds

Session #2: Tuesday, August 24, 12pm – 4pm ET

— Install rules
— Testing with CMake

  • CTest features
  • Multi core tests
  • Test resource allocation
  • Exercise: installing and testing

— System Introspection

  • Using find modules
  • Using config modules
  • Writing find modules
  • Understanding find module search order
  • Debugging find modules
  • Include command
  • Exercise: system introspection

— Build Artifact Controls
— Custom Commands

  • Exercise: custom command and generated file

— CMake Scripting
— Using CPack to create installers

  • Exercise: building an installer

— Reporting build/test results to CDash

  • Feature overview
  • Coverage
  • Static analysis
  • Dynamic analysis
  • Exercise: submitting results to a dashboard

Session #3: Wednesday, August 25, 12pm – 4pm ET

— Mixing Library Types
— Symbol Visibility
— Library Visibility

  • Exercise: mixing static and shared

— Generator Expressions

  • Exercise: using generator expressions

— Importing & Exporting Targets

  • Exercise: export configuration

— CMake’s Policy System
— MPI Support
— CUDA Support
— Cross Compilation
— External Project & Fetch Content
— Fortran Support
— Noteworthy changes from recent CMake releases

Session #4: Thursday, August 26, 12pm – 4pm ET

— Office hours / Q&A session

Slides and recordings will be available after the classes.

Aug
27
Fri
Variorum Lecture Series
Aug 27 @ 7:00 pm – 8:30 pm

1st Variorum Lecture Series August 2021

The Variorum team will provide its first Variorum Lecture Series, where attendees will learn everything necessary to start using Variorum on various platforms to write portable power management code. The team will provide support through GitHub and Variorum mailing list during and after the lecture series. This Variorum Lecture Series will consist of two modules, each of 1.5 hours each. We will hold two sessions to accommodate different time zones as well as attendee schedules.

    Module 1: August 6, 8:30am-10:00am PT / 11:30am-1:00pm ET, targeting US/European attendees, and August 20, 4:00pm-5:30pm PT / 7:00pm-8:30pm ET, targeting US/Asian attendees.
    Module 2: August 13, 8:30am-10:00am PT / 11:30am-1:00pm ET, targeting US/European attendees, and August 27, 4:00pm-5:30pm PT / 7:00pm-8:30pm ET, targeting US/Asian attendees.

What is Variorum?

Variorum is a production-grade, open-source, vendor-neutral software infrastructure for exposing low-level control and monitoring of a system’s underlying hardware features. It can easily be ported to different hardware devices, as well as different generations within a particular device. This allows users to manage power, performance and thermal information seamlessly across hardware from different vendors. More specifically, Variorum’s flexible design supports a set of features that may exist on one generation of hardware, but not on another. Variorum can also be included as part of the system software stack for power management: such as runtime systems, resource managers, and other profiling tools. At present, Variorum supports 5 platforms (IBM, Intel, AMD, ARM and NVIDIA) and a total of ten microarchitectures across these platforms.

Contents of the Lectures

Module 1: Introduction to Variorum

  • Challenges in Power Management and The HPC Power Stack
  • Understanding Power Management Knobs on Intel, IBM, NVIDIA, ARM, and AMD platforms
  • Variorum Library
    • Build, dependencies, and setup
    • Monitoring user applications non-intrusively
    • Vendor-neutral Variorum API across diverse architectures
    • Using Variorum for finer-grained monitoring, power capping, and management

Module 2: Integrating Variorum with System Software and Tools

  • The HPC Power Stack revisited: need for power management at various levels
  • GEOPM: job-level power management
  • Kokkos and Caliper: application and workflow power management
  • SLURM (Research Extensions): system-level power management
  • Upcoming Features in Variorum
  • The HPC Power Stack Roadmap

How to Attend

  • The lecture series is available to everyone, and participants are welcome to attend any/all sessions.
  • No-cost registration is necessary, meeting link and password will be sent to registrants. See “Tickets” above.
  • Presenters will show in-depth demos during the lecture series. Presenters can provide support during and after the lecture series with setup and usage on supported architectures.

Presenters

  • Stephanie Brink, Tapasya Patki, Aniruddha Marathe and Barry Rountree (Lawrence Livermore National Laboratory)

Module 1

Module 2

Sep
14
Tue
Facility Testing of E4S via E4S Testsuite, Spack Test, and buildtest
Sep 14 @ 12:00 pm – 2:00 pm

Abstract:

Extreme-Scale Scientific Software Stack (E4S) is a collection of open-source software packages for running scientific application typically run on HPC systems. E4S is a collection of spack packages that is built collectively with a fixed version of spack on a quarterly basis. So far, we have deployed E4S on Cori and Summit, and in the coming months we will have E4S deployed on Perlmutter, Spock, and Aurora. As part of the facility deployment, we need a mechanism to test the software stack and increase test coverage that properly tests the software at the facility.

E4S Testsuite is a validation testsuite for E4S products, which is a collection of shell scripts, makefiles, source code that runs tests on a facility deployed spack stack. Spack recently added support to run standalone tests for spack packages via spack test command which allows one to specify tests in their spack packages that can be run post-deployment.

Buildtest is a HPC testing framework designed to help facilities develop and run tests to validate their system and software stack. In buildtest, tests are written in YAML template called buildspecs which are processed by buildtest into shell-scripts. Buildtest has support for job submission to Slurm, LSF, PBS and Cobalt scheduler. Buildtest supports a rich YAML structure for writing buildspecs that is validated by a JSON Schema. Furthermore, buildtest provides numerous commands to query test results, inspect a particular test, validate buildspecs and find buildspecs through its buildspec cache. In v0.10.0, buildtest added support for spack schema to allow one to write buildspecs that can leverage spack to install specs, manage spack environments, and run spack test.

The presentation will provide a brief overview of buildtest commands and how to write tests in buildspecs, followed by a demo. The presentation will include an overview of Cori testsuite, which is a repository that contains sanity test for the Cori system including E4S tests using E4S tests. Gitlab is used to help automate execution of tests which are pushed to CDASH for post-processing. The presentation will end with a summary of E4S tests that are run on Cori, as well as current challenges.

References:

Presenter: Shahzeb Mohammed Siddiqui (NERSC)

SLIDES

Sep
15
Wed
What I Learned from 20 Years of Leading Open Source Projects
Sep 15 @ 2:00 pm – 3:00 pm

The IDEAS Productivity project, in partnership with the DOE Computing Facilities of the ALCF, OLCF, and NERSC and the DOE Exascale Computing Project (ECP) has resumed the webinar series on Best Practices for HPC Software Developers, which we began in 2016.

As part of this series, we offer one-hour webinars on topics in scientific software development and high-performance computing, approximately once a month. The September webinar is titled What I Learned from 20 Years of Leading Open Source Projects, and will be presented by Wolfgang Bangerth (Colorado State University). The webinar will take place on Wednesday, September 15, 2021 at 2:00 pm ET. This webinar will start one hour later than the usual time.

Abstract:

Scientific software has grown from loose collections of individual routines working on relatively simple data structures to very large packages of 100,000s to millions of lines of code, with dozens of contributors, and hundreds or thousands of users. In the process, the approaches to software development have also drastically changed: both the software packages as well as their development are professionally managed, with version control, extensive test suites, and automatic regression checks for every patch. Maybe more interestingly, the approaches to managing the *community* of software developers and users have also dramatically changed.

Having led two large, open source software projects (the finite element package deal.II, and the Advanced Simulator for Problems in Earth ConvecTion ASPECT) for more than 20 years, the presenter will share lessons learned about both the technical management of scientific software projects, as well as the social side of these projects.

Sep
23
Thu
Strategies for Working Remotely Panel Series – Training Virtualization
Sep 23 @ 3:00 pm – 4:15 pm

In response to the COVID-19 pandemic and transition to remote work, ECP and the IDEAS Productivity project launched the panel series Strategies for Working Remotely, which explores important topics in this area.

Abstract:

  • Many organizations abruptly transitioned from a primarily on-site to a primarily remote work experience last spring.  However, organizations still have training needs that were once largely accomplished through in-person events such as workshops, hackathons, and tutorials.  This panel shared what they learned during the past year in their efforts to bring more virtualization to what historically has worked for in-person training events.  What worked well?  What did not work?  This panel shared their insights about lessons learned over the past year and how those  experiences will inform plans moving forward when organizations can safely offer in-person training again.

Panelists:

  • Kelly Barnes, The Carpentries
  • Helen He, NERSC, Lawrence Berkeley National Laboratory
  • Julia Levites, Nvidia Corporation
  • Thomas Papatheodore, OLCF, Oak Ridge National Laboratory

Moderators:

  • Ashley Barker, Oak Ridge National Laboratory
  • Osni Marques, Lawrence Berkeley National Laboratory