Runtime Correctness Checking for Emerging Programming Paradigms

Similar documents
On-the-Fly Data Race Detection in MPI One-Sided Communication

ELP. Effektive Laufzeitunterstützung für zukünftige Programmierstandards. Speaker: Tim Cramer, RWTH Aachen University

OpenMP Tutorial. Dirk Schmidl. IT Center, RWTH Aachen University. Member of the HPC Group Christian Terboven

Research on Programming Models to foster Programmer Productivity

Performance Tools for Technical Computing

Tasking and OpenMP Success Stories

1 of 6 Lecture 7: March 4. CISC 879 Software Support for Multicore Architectures Spring Lecture 7: March 4, 2008

OpenMP Overview. in 30 Minutes. Christian Terboven / Aachen, Germany Stand: Version 2.

HPC Tools on Windows. Christian Terboven Center for Computing and Communication RWTH Aachen University.

OpenMPand the PGAS Model. CMSC714 Sept 15, 2015 Guest Lecturer: Ray Chen

Evaluation of Asynchronous Offloading Capabilities of Accelerator Programming Models for Multiple Devices

OpenMP for Accelerators

Agenda. Optimization Notice Copyright 2017, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Programming Environment Research Team

C++ and OpenMP. 1 ParCo 07 Terboven C++ and OpenMP. Christian Terboven. Center for Computing and Communication RWTH Aachen University, Germany

Introduction to OpenMP

Linkage of XcalableMP and Python languages for high productivity on HPC cluster system

Lecture 16: Recapitulations. Lecture 16: Recapitulations p. 1

Omni Compiler and XcodeML: An Infrastructure for Source-to- Source Transformation

Module 10: Open Multi-Processing Lecture 19: What is Parallelization? The Lecture Contains: What is Parallelization? Perfectly Load-Balanced Program

OpenMP - II. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS15/16. HPAC, RWTH Aachen

Exploiting Object-Oriented Abstractions to parallelize Sparse Linear Algebra Codes

OpenMP I. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS16/17. HPAC, RWTH Aachen

HPC on Windows. Visual Studio 2010 and ISV Software

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples

PTP - PLDT Parallel Language Development Tools Overview, Status & Plans

Implementation of Parallelization

EE/CSCI 451 Introduction to Parallel and Distributed Computation. Discussion #4 2/3/2017 University of Southern California

Parallel Computing Parallel Programming Languages Hwansoo Han

An Extension of XcalableMP PGAS Lanaguage for Multi-node GPU Clusters

CME 213 S PRING Eric Darve

<Insert Picture Here> OpenMP on Solaris

Masterpraktikum - High Performance Computing

Shared Memory Programming with OpenMP (3)

Introduction to OpenMP

Introduction to OpenMP

Shared memory programming model OpenMP TMA4280 Introduction to Supercomputing

OpenMP and more Deadlock 2/16/18

Introduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines

COMP4510 Introduction to Parallel Computation. Shared Memory and OpenMP. Outline (cont d) Shared Memory and OpenMP

PROGRAMOVÁNÍ V C++ CVIČENÍ. Michal Brabec

int a[100]; #pragma xmp nodes p[*] #pragma xmp template t[100] #pragma xmp distribute t[block] onto p #pragma xmp align a[i] with t[i]

Masahiro Nakao, Hitoshi Murai, Takenori Shimosaka, Mitsuhisa Sato

OpenMP. Dr. William McDoniel and Prof. Paolo Bientinesi WS17/18. HPAC, RWTH Aachen

Parallel Programming Libraries and implementations

Models and languages of concurrent computation

What else is available besides OpenMP?

OpenMP Tool Interfaces in OpenMP 5.0. Joachim Protze

Questions from last time

Exception Handling with OpenMP in Object-Oriented Languages

An Introduction to OpenMP

OpenMP. Dr. William McDoniel and Prof. Paolo Bientinesi WS17/18. HPAC, RWTH Aachen

PCS - Part Two: Multiprocessor Architectures

Advanced C Programming Winter Term 2008/09. Guest Lecture by Markus Thiele

Parallelization Using a PGAS Language such as X10 in HYDRO and TRITON

Performance Evaluation for Omni XcalableMP Compiler on Many-core Cluster System based on Knights Landing

First Experiences with Intel Cluster OpenMP

High Performance Computing on Windows. Debugging with VS2005 Debugging parallel programs. Christian Terboven

Department of Informatics V. HPC-Lab. Session 2: OpenMP M. Bader, A. Breuer. Alex Breuer

Automatic Scoping of Variables in Parallel Regions of an OpenMP Program

OpenMP Algoritmi e Calcolo Parallelo. Daniele Loiacono

NUMA-aware OpenMP Programming

CS691/SC791: Parallel & Distributed Computing

JS Event Loop, Promises, Async Await etc. Slava Kim

Advanced OpenMP Features

Debugging Serial and Parallel Programs with Visual Studio

POSIX Threads: a first step toward parallel programming. George Bosilca

Elementary Parallel Programming with Examples. Reinhold Bader (LRZ) Georg Hager (RRZE)

Parallel Programming with OpenMP. CS240A, T. Yang

Allows program to be incrementally parallelized

CMSC 714 Lecture 4 OpenMP and UPC. Chau-Wen Tseng (from A. Sussman)

Tasking in OpenMP 4. Mirko Cestari - Marco Rorro -

Shared Memory Parallel Programming with Pthreads An overview

Towards OpenMP for Java

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

Threaded Programming. Lecture 9: Alternatives to OpenMP

Typical Bugs in parallel Programs

Parallel Programming Models. Parallel Programming Models. Threads Model. Implementations 3/24/2014. Shared Memory Model (without threads)

OpenMP - III. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS15/16. HPAC, RWTH Aachen

OpenMP. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS16/17. HPAC, RWTH Aachen

Exploring XcalableMP. Shun Liang. August 24, 2012

Parallel Programming. Libraries and Implementations

C++ and OpenMP Christian Terboven Center for Computing and Communication RWTH Aachen University, Germany

SHARCNET Workshop on Parallel Computing. Hugh Merz Laurentian University May 2008

15-418, Spring 2008 OpenMP: A Short Introduction

Programming Shared Memory Systems with OpenMP Part I. Book

Introduction to. Slides prepared by : Farzana Rahman 1

Chapel Introduction and

Debugging with TotalView

Shared Memory Programming Model

Parallel Computing. Prof. Marco Bertini

Intel Threading Tools

GPU GPU CPU. Raymond Namyst 3 Samuel Thibault 3 Olivier Aumage 3

Little Motivation Outline Introduction OpenMP Architecture Working with OpenMP Future of OpenMP End. OpenMP. Amasis Brauch German University in Cairo

Chapter 4: Multithreaded Programming

HPC User Environment

OpenMP Programming. Aiichiro Nakano

EE/CSCI 451: Parallel and Distributed Computation

OpenMP examples. Sergeev Efim. Singularis Lab, Ltd. Senior software engineer

Hybrid Parallelization: Performance from SMP Building Blocks

Transcription:

(protze@itc.rwth-aachen.de), Christian Terboven, Matthias S. Müller, Serge Petiton, Nahid Emad, Hitoshi Murai and Taisuke Boku RWTH Aachen University, Germany University of Tsukuba / RIKEN, Japan Maison de la Simulation, France

Motivation Increasing concurrency in HPC needs new concepts of programming MPI + X is one candidate Highlights the need for multilevel parallelism Potentially even more levels of parallelism Multiple PGAS approaches were developed Did any of these gain acceptance? Why? Key to success might be tool support 2

Portable runtime correctness checking Can we reuse existing tools and apply them to new programming paradigms? What are the common challenges? What are the limitations? How big is the effort to integrate analysis for pragma-based PGAS approach XMP into existing MPI tool MUST? Data race and deadlock are major threats in parallel Can we define an abstract interface, that provides sufficient information to analyse arbitrary parallel paradigms? 3

Defect classification in parallel programs Defect parallel programs can violate the programming standard / specification result in program failures or wrong results How can we classify the set A P = {A 1,.., A n } of possible defects for a paradigm P? Design issues: D Defects that can be detected statically S Defects that can be detected at runtime R Other defects: O Questions addressed in MYX: Identify members of D, S, R and O How to minimize D? Ho to minimize O? How can we improve the detection and analysis of members of S and R? 4

Defect classification cont. Tools can detect defects statically, or at runtime Some defects can only be detected statically: Using an integer instead of MPI_SOURCE_ANY At runtime some defects are detected with local information MPI-Send to rank 10, but only 8 processes Some defects need distributed or global knowledge: MPI-Send of 4 doubles, MPI-Recv of 4 integers Some defects might need compile time information at runtime: Sending an array of integers, declaring it as doubles 5

Tools interfaces PMPI Tools interface for MPI MPI spec describes wrapping of MPI functions OMPT Tools interface for OpenMP Latest OpenMP spec describes events, tool gets notification about encountered events XMPT Tools interface for XMP, follows the specification of OMPT 6

XMPT What events are needed? Events for the begin and end of XMP regions What information is needed? Essentially, all information possibly provided to the XMP pragma To allow stateless implementation of the tool, the runtime stores a tool data with scopes XMP already provided functions to derive information from handles Is this information sufficient for performance analysis? 7

Example: Data race detection for XMP XMPT (in MUST): - Fork / join, barrier - Async communication - Coarray access - XMP communication Transformation ThreadSanitizer: - Happened-before - POSIX threads - POSIX threads - Happened-before Analysis XMPT (in MUST): - Report of data races - Report of dead locks - Synchronization issues Attributed to XMP regions Transformation ThreadSanitizer: - Report of data races - Report of dead locks - Synchronization issues Attributed to POSIX threads 8

Summary Correctness tools are important Tools are always steps behind the development of new languages Tools interface is important for easier porting of tools Why not use a language, that prevents the issues? How many HPC codes are written in RUST? 9

Thank you for your attention.