Home GitHub Tutorials Team Contacts

Minos Computing Library

Supporting Extremely Heterogeneous Computing in HPC, AI, and Data Analytics

PPoPP'22 -- April 2nd, 2022

Programming extremely heterogeneous system with MCL

Logistics: Saturday April 2nd, 2022 -- 2.00pm-6.00pm PST

Objectives: This tutorial provides an overview of the MCL programming environment and a step- by-step guide to write, build, and test an MCL program in a multi-device environment. At the end of this tutorial, attendees should be able to run their MCL code on their laptops and scale out their code on more complex systems, both larger workstations and power-efficient embedded systems.

Abstract: Emerging applications in different domains, from scientific simulations and machine- learning to data-analytics and signal-processing, pose new challenges and requirements to industry and research communities. Specialization has become a fundamental pillar for the design of future high-end systems: modern supercomputers feature several accelerators (e.g., GPUs); military systems employ domain-specific SoC and ASICs; industries have introduced specialized hardware for machine-/deep-learning. This high level of specialization results in extremely heterogeneous systems that are complicated to design, test, and program. This tutorial introduces the Minos Computing Library (MCL), a new programming environment for efficient programming of extremely heterogeneous systems. MCL provides a task-based abstraction that simplifies programming and hides architectural details while the runtime supports asynchronous execution of tasks from concurrent applications. The MCL scheduler manages computing resources, performs automatic load balancing, and utilizes locality-aware scheduling. MCL increases performance portability by transparently scaling applications developed on personal desktops to large workstations and supercomputers as well as power- efficient embedded systems. This tutorial will demonstrate how MCL can be used to program and drive multiple heterogeneous classes of devices, such as GPGPU, FPGA, and DL accelerators, and manage multiple devices within a system (e.g., multi-GPU systems).

Tutorial Docker Image: MCL PPOPP'21 Docker Image

Time (PST) Topic Presenter Material
2.00-2.30 Introduction R. Gioiosa Slides
2.30-3.15 Hands-on Session R. Gioiosa Slides Code
3.15-4.00 MCL on FPGA and SambaNova Accelerators R. Gioiosa, R. Friese Slides1 Slides2 Code
4.00-4.30 A realistic example: MiniMD A. Kamatar Slides Code
4.30-5.30 Programming with Rust R. Friese Slides
5.30-6.00 Q&A and Conclusions All Slides