OSDX 2024: ORNL SOFTWARE AND DATA EXPO 2024
PROGRAM FOR WEDNESDAY, JULY 10TH
Days:
previous day
all days

View: session overviewtalk overview

09:00-11:00 Session 12A: Tutorials III (a)

Session Chair - Andrew Ayres

09:00
Introduction to Scientific Machine Learning

ABSTRACT. Machine learning is a popular field, but how can it be leveraged for real scientific problems? This tutorial will explain the fundamentals of various categories of machine learning, aid in rigorously defining questions and expected answers in ways that will allow them to be addressed via machine learning models, and provide programming experience with machine learning libraries to demonstrate how to use them to address real problems.

09:00-11:00 Session 12B: Tutorials III (b)

Session Chair - Reece Boston

09:00
Kokkos Tutorial

ABSTRACT. Kokkos is a C++-based programming model for writing performance portable applications targeting all major HPC platforms and it is the most popular such framework for ECP applications. The key feature of Kokkos is the ability to abstract away the underlying hardware architecture and allow you to write a single source code that can run on a variety of platforms efficiently.

This tutorial is targeted towards new users and gives a short overview of the Kokkos ecosystem focusing on Kokkos Core capabilities. Participants will learn about Kokkos basic policies, parallel constructs, and data management. The tutorial will also have a hands-on component consisting of accompanying exercises that will help internalize the presented concepts.

Participants are expected to be familiar with C++.

Expected duration: 2 hours Hands-on component: YES

11:30-12:30 Session 13: Tutorials IV

Session Chair - Brett Eiffert

11:30
Continuous Integration (CI) and Continuous Delivery / Deployment (CD) using GitHub Actions

ABSTRACT. Continuous Integration (CI) is the concept of continuously integrating all code changes. So every time a contributor (student, colleague, random bystander) provides new changes to your codebase, those changes can trigger builds, tests, or other code checks to make sure the changes don’t “break” anything. As your team of developers grow and your community of contributors grow, CI becomes your best friend to ensure quality of code!

CD can actually mean two different terms. First there is Continuous Deployment (CD) and then their is Continuous Delivery (also CD). Most people use these interchangably but there is a subtle difference.

This tutorial will walk through using GitHub Actions to setup both.

12:30-13:30Lunch Break (on your own)
13:30-15:30 Session 14: Tutorials V

Session Chair - Maria Patrou

13:30
Scientific Workflows at Scale using GNU Parallel

ABSTRACT. GNU Parallel is a shell tool that executes terminal commands in parallel on one or more computers. A versatile tool, Parallel offers numerous options and features that makes it easy, concise and efficient to work on multicore and multinode architectures. Ability to run tasks in parallel over files / raw data in a wide variety of modes and load distributions makes it a powerful and suitable tool for a wide variety of applications. GNU Parallel fits nicely with the HPC middleware and filesystems making it a low friction tool to perform not only the computations but data movements efficiently.

Research computing centers offer their resources in a shared manner via resource managers and schedulers. This makes it important for any tool to be able to work well with such schedulers. GNU Parallel integrates nicely with HPC job schedulers such as SLURM, LSF, PBS / Torque and others.

Workflows often require dependency chaining between multiple computing stages. With simple shell techniques we will see how we can leverage Parallel to achieve fully asynchronous, parallel multi-stage scientific workflows.

Parallel is invaluable from the scientific user's point of view, in that the simplicity empowers to rapidly extract the parallel profile of a complex workflow and experiment to hone it for large scale runs. Sometimes, just the rapid prototyping of the parallelism using GNU Parallel in an application helps programmers use tools such as MPI or openMP to implement applications.