Concurrency Platforms OpenMP and Cilk Plus

Slides:



Advertisements
Similar presentations
OpenMP.
Advertisements

MINJAE HWANG THAWAN KOOBURAT CS758 CLASS PROJECT FALL 2009 Extending Task-based Programming Model beyond Shared-memory Systems.
Parallel Processing with OpenMP
Introduction to Openmp & openACC
May 2, 2015©2006 Craig Zilles1 (Easily) Exposing Thread-level Parallelism  Previously, we introduced Multi-Core Processors —and the (atomic) instructions.
1 Programming Explicit Thread-level Parallelism  As noted previously, the programmer must specify how to parallelize  But, want path of least effort.
Taxanomy of parallel machines. Taxonomy of parallel machines Memory – Shared mem. – Distributed mem. Control – SIMD – MIMD.
1 Tuesday, November 07, 2006 “If anything can go wrong, it will.” -Murphy’s Law.
DISTRIBUTED AND HIGH-PERFORMANCE COMPUTING CHAPTER 7: SHARED MEMORY PARALLEL PROGRAMMING.
SMP threads an Introduction to Posix Threads. Technical Definition 1.Independent stream of instructions that can be scheduled to run by an operating system.
CISC 879 : Software Support for Multicore Architectures John Cavazos Dept of Computer & Information Sciences University of Delaware
Contemporary Languages in Parallel Computing Raymond Hummel.
CS 470/570:Introduction to Parallel and Distributed Computing.
Hossein Bastan Isfahan University of Technology 1/23.
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
CS470/570 Lecture 5 Introduction to OpenMP Compute Pi example OpenMP directives and options.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Parallel implementation of RAndom SAmple Consensus (RANSAC) Adarsh Kowdle.
OpenMP in a Heterogeneous World Ayodunni Aribuki Advisor: Dr. Barbara Chapman HPCTools Group University of Houston.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
OpenMP Blue Waters Undergraduate Petascale Education Program May 29 – June
The University of Adelaide, School of Computer Science
04/10/25Parallel and Distributed Programming1 Shared-memory Parallel Programming Taura Lab M1 Yuuki Horita.
Computer Organization David Monismith CS345 Notes to help with the in class assignment.
CS 838: Pervasive Parallelism Introduction to OpenMP Copyright 2005 Mark D. Hill University of Wisconsin-Madison Slides are derived from online references.
Work Replication with Parallel Region #pragma omp parallel { for ( j=0; j
MPI-3 Hybrid Working Group Status. MPI interoperability with Shared Memory Motivation: sharing data between processes on a node without using threads.
Introduction to OpenMP Eric Aubanel Advanced Computational Research Laboratory Faculty of Computer Science, UNB Fredericton, New Brunswick.
Pthreads: A shared memory programming model
12/22/ Thread Model for Realizing Concurrency B. Ramamurthy.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Barnes Hut – A Broad Review Abhinav S Bhatele The 27th day of April, 2006.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Chapter 4 Shared Memory Programming with Pthreads An Introduction to Parallel Programming Peter Pacheco.
Heterogeneous Computing using openMP lecture 1 F21DP Distributed and Parallel Technology Sven-Bodo Scholz.
Martin Kruliš by Martin Kruliš (v1.1)1.
Pitfalls: Time Dependent Behaviors CS433 Spring 2001 Laxmikant Kale.
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
Introduction to parallel programming modelS
Chapter 4: Threads.
Chapter 4: Threads.
SparkBWA: Speeding Up the Alignment of High-Throughput DNA Sequencing Data - Aditi Thuse.
CMPS 5433 Programming Models
SHARED MEMORY PROGRAMMING WITH OpenMP
Pattern Parallel Programming
The University of Adelaide, School of Computer Science
SHARED MEMORY PROGRAMMING WITH OpenMP
Instructor’s Intent for this course
Multithreading Tutorial
Multi-core CPU Computing Straightforward with OpenMP
Chapter 4: Threads.
Pattern Parallel Programming
Hybrid Parallel Programming
Dr. Tansel Dökeroğlu University of Turkish Aeronautical Association Computer Engineering Department Ceng 442 Introduction to Parallel.
System Calls David Ferry CSCI 3500 – Operating Systems
CHAPTER 4:THreads Bashair Al-harthi OPERATING SYSTEM
Hybrid Parallel Programming
Introduction to Operating Systems
Programming with Shared Memory
fork() and exec() David Ferry CSCI 3500 – Operating Systems
Processes David Ferry CSCI 3500 – Operating Systems
Race Conditions David Ferry CSCI 3500 – Operating Systems
Userspace Synchronization
Programming with Shared Memory
Threads David Ferry CSCI 3500 – Operating Systems
Hybrid Parallel Programming
Synchronization These notes introduce:
Atomicity, Mutex, and Locks
Types of Parallel Computers
Shared Memory David Ferry, Chris Gill
Real-Time Scheduling David Ferry CSCI 3500 – Operating Systems
Presentation transcript:

Concurrency Platforms OpenMP and Cilk Plus David Ferry CSCI 3500 – Operating Systems Saint Louis University St. Louis, MO 63103

How can pthreads be improved? Parallel programs repeat the same code over and over again: Thread creation Passing arguments Dividing work between threads Thread synchronization and joining It’d be nice if we didn’t have to jump through all these hoops… CSCI 3500 - Operating Systems

How else can it be improved? Pthreads explicitly links the identification of possible parallelism and the instantiation of parallelism. pthread_create() both creates a new thread and tells it where to execute. However, usually the choice of what to execute in parallel is entirely separate from the question of how and where to execute threads to achieve good performance. CSCI 3500 - Operating Systems

Concurrency Platforms The programmer should only identify opportunities for parallelism, and the system should implement it efficiently. A variety of systems: OpenMP, Cilk Plus, Open MPI… OpenMP is a specification by a committee of industrial and academic practitioners designed for practical parallel computing. Many implementations exist. Cilk Plus is the latest generation of an MIT project called Cilk. This is a specific implementation designed around having strong theoretical performance guarantees. CSCI 3500 - Operating Systems

CSCI 3500 - Operating Systems Parallelism Made Easy for( i = 0; i < 100; i++ ){ some_big_computation(i); } Becomes: #pragma omp parallel for cilk_for( i = 0; i < 100; i++ ){ some_big_computation(i); } CSCI 3500 - Operating Systems