The Cilk part is a small set of linguistic extensions to C/C++ to support fork-join parallelism. (The Plus part supports vector parallelism.
|
|
- Willis Wilson
- 6 years ago
- Views:
Transcription
1 Cilk Plus The Cilk part is a small set of linguistic extensions to C/C++ to support fork-join parallelism. (The Plus part supports vector parallelism.) Developed originally by Cilk Arts, an MIT spinoff, which was acquired by Intel in July Based on the award-winning Cilk multithreaded language developed at MIT. Features a provably efficient work-stealing scheduler. Provides a hyperobject library for parallelizing code with non-local variables. Includes the Cilkscreen race detector and Cilkview scalability analyzer.
2 Nested Parallelism in Cilk uint64_t fib(uint64_t n) { if (n < 2) { return n; else { uint64_t x, y; x = cilk_spawn fib(n- 1); y = fib(n- 2); cilk_sync; return (x + y); The named child function may execute in parallel with the parent caller. Control cannot pass this point until all spawned children have returned. Cilk keywords grant permission for parallel execution. They do not command parallel execution.
3 Loop Parallelism in Cilk Example: In-place matrix transpose The iterations of a cilk_for loop execute in parallel. a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn A a 11 a 21 a n1 a 12 a 22 a n2 a 1n a 2n a nn A T // indices run from 0, not 1 cilk_for (int i=1; i<n; ++i) { for (int j=0; j<i; ++j) { double temp = A[i][j]; A[i][j] = A[j][i]; A[j][i] = temp;
4 Serial Semantics Cilk source uint64_t fib(uint64_t n) { if (n < 2) { return n; else { uint64_t x, y; x = cilk_spawn fib(n- 1); y = fib(n- 2); cilk_sync; return (x + y); uint64_t fib(uint64_t n) { if (n < 2) { return n; else { uint64_t x, y; x = fib(n- 1); y = fib(n- 2); serialization return (x + y); The serialization of a Cilk program is always a legal interpretation of the program s semantics. Remember, Cilk keywords grant permission for parallel execution. They do not command parallel execution. #define cilk_for for To obtain the serialization: #define cilk_spawn #define cilk_sync
5 Scheduling The Cilk concurrency platform allows the programmer to express logical parallelism in an application. The Cilk scheduler maps the executing program onto the processor cores dynamically at runtime. Cilk s work-stealing scheduler is provably efficient. uint64_t fib(uint64_t n) { if (n < 2) { return n; else { uint64_t x, y; x = cilk_spawn fib(n- 1); y = fib(n- 2); cilk_sync; return (x + y); Memory $ P Network $ P I/O $ P
6 Cilk Platform 1 uint64_t fib(uint64_t n) { if (n < 2) { return n; else { uint64_t x, y; x = cilk_spawn fib(n- 1); y = fib(n- 2); cilk_sync; return (x + y); Cilk++ source uint64_t fib(uint64_t n) { if (n < 2) { return n; else { uint64_t x = fib(n- 1); uint64_t y = fib(n- 2); return (x + y); Serialization 2 Compiler Linker Binary Hyperobject Library Cilkview Scalability Analyzer Cilkscreen Race Detector Conventional Regression Tests 4 Runtime System Parallel Regression Tests Reliable Single- Threaded Code Parallel Performance Reliable Multi- Threaded Code
7 Execution Model int fib (int n) { if (n<2) return (n); else { int x,y; x = cilk_spawn fib(n- 1); y = fib(n- 2); cilk_sync; return (x+y); Example: fib(4)
8 Execution Model int fib (int n) { if (n<2) return (n); else { int x,y; x = cilk_spawn fib(n- 1); y = fib(n- 2); cilk_sync; return (x+y); Example: fib(4) Processor oblivious 1 0 The computation dag unfolds dynamically.
9 Computation Dag continue edge spawn edge initial strand call edge final strand strand return edge A parallel instruction stream is a dag G = (V, E ). Each vertex v V is a strand : a sequence of instructions not containing a call, spawn, sync, or return (or thrown exception). An edge e E is a spawn, call, return, or continue edge. Loop parallelism (cilk_for) is converted to spawns and syncs using recursive divide-and-conquer.
10 How Much Parallelism? Assuming that each strand executes in unit time, what is the parallelism of this computation?
11 Amdahl s Law If 50% of your application is parallel and 50% is serial, you can t get more than a factor of 2 speedup, no matter how many processors it runs on. Gene M. Amdahl In general, if a fraction α of an application must be run serially, the speedup can be at most 1/α.
12 Quantifying Parallelism What is the parallelism of this computation? Amdahl s Law says that since the serial fraction is 3/18 = 1/6, the speedup is upper-bounded by 6.
13 Performance Measures T P = execution time on P processors T 1 = work = 18
14 Performance Measures T P = execution time on P processors T 1 = work T = span* = 18 = 9 * Also called critical-path length or computational depth.
15 Performance Measures T P = execution time on P processors T 1 = work T = span* = 18 = 9 WORK LAW T P T 1 /P SPAN LAW T P T * Also called critical-path length or computational depth.
16 Series Composition A B Work: T 1 (A B) = T 1 (A) + T 1 (B) Span: T (A B) = T (A) + T (B)
17 Parallel Composition A B Work: T 1 (A B) = T 1 (A) + T 1 (B) Span: T (A B) = max{t (A), T (B)
18 Speedup Definition. T 1 /T P = speedup on P processors. If T 1 /T P < P, we have sublinear speedup. If T 1 /T P = P, we have (perfect) linear speedup. If T 1 /T P > P, we have superlinear speedup, which is not possible in this simple performance model, because of the WORK LAW T P T 1 /P.
19 Parallelism Because the SPAN LAW dictates that T P T, the maximum possible speedup given T 1 and T is T 1 /T = parallelism = the average amount of work per step along the span = 18/9 = 2.
20 Example: fib(4) Assume for simplicity that each strand in fib(4) takes unit time to execute. 5 Work: T 1 = 17 Span: T = 8 Parallelism: T 1 /T = Using many more than 2 processors can yield only marginal performance gains.
21 Greedy Scheduling IDEA: Do as much as possible on every step. Definition. A strand is ready if all its predecessors have executed.
22 Greedy Scheduling IDEA: Do as much as possible on every step. Definition. A strand is ready if all its predecessors have executed. Complete step P strands ready. Run any P. P = 3
23 Greedy Scheduling IDEA: Do as much as possible on every step. Definition. A strand is ready if all its predecessors have executed. P = 3 Complete step P strands ready. Run any P. Incomplete step < P strands ready. Run all of them.
24 Analysis of Greedy Theorem [G68, B75, EZL89]. Any greedy scheduler achieves T P T 1 /P + T. Proof. # complete steps T 1 /P, since each complete step performs P work. # incomplete steps T, since each incomplete step reduces the span of the unexecuted dag by 1.
25 Optimality of Greedy Corollary. Any greedy scheduler achieves within a factor of 2 of optimal. Proof. Let T P * be the execution time produced by the optimal scheduler. Since T P * max{t 1 /P, T by the WORK and SPAN LAWS, we have T P T 1 /P + T 2 max{t 1 /P, T 2T P *.
26 Linear Speedup Corollary. Any greedy scheduler achieves nearperfect linear speedup whenever T 1 /T P. Proof. Since T 1 /T P is equivalent to T T 1 /P, the Greedy Scheduling Theorem gives us T P T 1 /P + T T 1 /P. Thus, the speedup is T 1 /T P P. Definition. The quantity T 1 /PT is called the parallel slackness.
27 Cilk Performance Cilk s work-stealing scheduler achieves T P = T 1 /P + O(T ) expected time (provably); T P T 1 /P + T time (empirically). Near-perfect linear speedup as long as P T 1 /T. Instrumentation in Cilkview allows you to measure T 1 and T.
Multicore programming in CilkPlus
Multicore programming in CilkPlus Marc Moreno Maza University of Western Ontario, Canada CS3350 March 16, 2015 CilkPlus From Cilk to Cilk++ and Cilk Plus Cilk has been developed since 1994 at the MIT Laboratory
More informationParallelism and Performance
6.172 erformance Engineering of Software Systems LECTURE 13 arallelism and erformance Charles E. Leiserson October 26, 2010 2010 Charles E. Leiserson 1 Amdahl s Law If 50% of your application is parallel
More informationCilk. Cilk In 2008, ACM SIGPLAN awarded Best influential paper of Decade. Cilk : Biggest principle
CS528 Slides are adopted from http://supertech.csail.mit.edu/cilk/ Charles E. Leiserson A Sahu Dept of CSE, IIT Guwahati HPC Flow Plan: Before MID Processor + Super scalar+ Vector Unit Serial C/C++ Coding
More informationCS 240A: Shared Memory & Multicore Programming with Cilk++
CS 240A: Shared Memory & Multicore rogramming with Cilk++ Multicore and NUMA architectures Multithreaded rogramming Cilk++ as a concurrency platform Work and Span Thanks to Charles E. Leiserson for some
More informationMultithreaded Programming in. Cilk LECTURE 1. Charles E. Leiserson
Multithreaded Programming in Cilk LECTURE 1 Charles E. Leiserson Supercomputing Technologies Research Group Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology
More informationMultithreaded Parallelism and Performance Measures
Multithreaded Parallelism and Performance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 (Moreno Maza) Multithreaded Parallelism and Performance Measures CS 3101
More informationPlan. Introduction to Multicore Programming. Plan. University of Western Ontario, London, Ontario (Canada) Multi-core processor CPU Coherence
Plan Introduction to Multicore Programming Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 1 Multi-core Architecture 2 Race Conditions and Cilkscreen (Moreno Maza) Introduction
More informationPlan. 1 Parallelism Complexity Measures. 2 cilk for Loops. 3 Scheduling Theory and Implementation. 4 Measuring Parallelism in Practice
lan Multithreaded arallelism and erformance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 1 2 cilk for Loops 3 4 Measuring arallelism in ractice 5 Announcements
More informationCSE 613: Parallel Programming
CSE 613: Parallel Programming Lecture 3 ( The Cilk++ Concurrency Platform ) ( inspiration for many slides comes from talks given by Charles Leiserson and Matteo Frigo ) Rezaul A. Chowdhury Department of
More informationPlan. 1 Parallelism Complexity Measures. 2 cilk for Loops. 3 Scheduling Theory and Implementation. 4 Measuring Parallelism in Practice
lan Multithreaded arallelism and erformance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 4435 - CS 9624 1 2 cilk for Loops 3 4 Measuring arallelism in ractice 5
More informationAn Overview of Parallel Computing
An Overview of Parallel Computing Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS2101 Plan 1 Hardware 2 Types of Parallelism 3 Concurrency Platforms: Three Examples Cilk CUDA
More informationMultithreaded Parallelism on Multicore Architectures
Multithreaded Parallelism on Multicore Architectures Marc Moreno Maza University of Western Ontario, Canada CS2101 March 2012 Plan 1 Multicore programming Multicore architectures 2 Cilk / Cilk++ / Cilk
More informationCSE 260 Lecture 19. Parallel Programming Languages
CSE 260 Lecture 19 Parallel Programming Languages Announcements Thursday s office hours are cancelled Office hours on Weds 2p to 4pm Jing will hold OH, too, see Moodle Scott B. Baden /CSE 260/ Winter 2014
More informationPlan. 1 Parallelism Complexity Measures. 2 cilk for Loops. 3 Scheduling Theory and Implementation. 4 Measuring Parallelism in Practice
lan Multithreaded arallelism and erformance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 02 - CS 9535 arallelism Complexity Measures 2 cilk for Loops 3 Measuring
More informationCS CS9535: An Overview of Parallel Computing
CS4403 - CS9535: An Overview of Parallel Computing Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) January 10, 2017 Plan 1 Hardware 2 Types of Parallelism 3 Concurrency Platforms:
More informationMoore s Law. Multicore Programming. Vendor Solution. Power Density. Parallelism and Performance MIT Lecture 11 1.
Moore s Law 1000000 Intel CPU Introductions 6.172 Performance Engineering of Software Systems Lecture 11 Multicore Programming Charles E. Leiserson 100000 10000 1000 100 10 Clock Speed (MHz) Transistors
More informationShared-memory Parallel Programming with Cilk Plus
Shared-memory Parallel Programming with Cilk Plus John Mellor-Crummey Department of Computer Science Rice University johnmc@rice.edu COMP 422/534 Lecture 4 30 August 2018 Outline for Today Threaded programming
More informationMultithreaded Algorithms Part 1. Dept. of Computer Science & Eng University of Moratuwa
CS4460 Advanced d Algorithms Batch 08, L4S2 Lecture 11 Multithreaded Algorithms Part 1 N. H. N. D. de Silva Dept. of Computer Science & Eng University of Moratuwa Announcements Last topic discussed is
More informationCilk Plus: Multicore extensions for C and C++
Cilk Plus: Multicore extensions for C and C++ Matteo Frigo 1 June 6, 2011 1 Some slides courtesy of Prof. Charles E. Leiserson of MIT. Intel R Cilk TM Plus What is it? C/C++ language extensions supporting
More informationCilk Plus GETTING STARTED
Cilk Plus GETTING STARTED Overview Fundamentals of Cilk Plus Hyperobjects Compiler Support Case Study 3/17/2015 CHRIS SZALWINSKI 2 Fundamentals of Cilk Plus Terminology Execution Model Language Extensions
More informationShared-memory Parallel Programming with Cilk Plus
Shared-memory Parallel Programming with Cilk Plus John Mellor-Crummey Department of Computer Science Rice University johnmc@rice.edu COMP 422/534 Lecture 4 19 January 2017 Outline for Today Threaded programming
More informationConcepts in. Programming. The Multicore- Software Challenge. MIT Professional Education 6.02s Lecture 1 June 8 9, 2009
Concepts in Multicore Programming The Multicore- Software Challenge MIT Professional Education 6.02s Lecture 1 June 8 9, 2009 2009 Charles E. Leiserson 1 Cilk, Cilk++, and Cilkscreen, are trademarks of
More informationMultithreaded Parallelism on Multicore Architectures
Multithreaded Parallelism on Multicore Architectures Marc Moreno Maza University of Western Ontario, Canada CS2101 November 2012 Plan 1 Multicore programming Multicore architectures 2 Cilk / Cilk++ / Cilk
More informationIntroduction to Multithreaded Algorithms
Introduction to Multithreaded Algorithms CCOM5050: Design and Analysis of Algorithms Chapter VII Selected Topics T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to algorithms, 3 rd
More informationCILK/CILK++ AND REDUCERS YUNMING ZHANG RICE UNIVERSITY
CILK/CILK++ AND REDUCERS YUNMING ZHANG RICE UNIVERSITY 1 OUTLINE CILK and CILK++ Language Features and Usages Work stealing runtime CILK++ Reducers Conclusions 2 IDEALIZED SHARED MEMORY ARCHITECTURE Hardware
More informationToday: Amortized Analysis (examples) Multithreaded Algs.
Today: Amortized Analysis (examples) Multithreaded Algs. COSC 581, Algorithms March 11, 2014 Many of these slides are adapted from several online sources Reading Assignments Today s class: Chapter 17 (Amortized
More informationCS 140 : Feb 19, 2015 Cilk Scheduling & Applications
CS 140 : Feb 19, 2015 Cilk Scheduling & Applications Analyzing quicksort Optional: Master method for solving divide-and-conquer recurrences Tips on parallelism and overheads Greedy scheduling and parallel
More informationCS 140 : Numerical Examples on Shared Memory with Cilk++
CS 140 : Numerical Examples on Shared Memory with Cilk++ Matrix-matrix multiplication Matrix-vector multiplication Hyperobjects Thanks to Charles E. Leiserson for some of these slides 1 Work and Span (Recap)
More informationCS 140 : Non-numerical Examples with Cilk++
CS 140 : Non-numerical Examples with Cilk++ Divide and conquer paradigm for Cilk++ Quicksort Mergesort Thanks to Charles E. Leiserson for some of these slides 1 Work and Span (Recap) T P = execution time
More informationPlan. Introduction to Multicore Programming. Plan. University of Western Ontario, London, Ontario (Canada) Marc Moreno Maza CS CS 9624
Plan Introduction to Multicore Programming Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 4435 - CS 9624 1 Multi-core Architecture Multi-core processor CPU Cache CPU Coherence
More informationCost Model: Work, Span and Parallelism
CSE 539 01/15/2015 Cost Model: Work, Span and Parallelism Lecture 2 Scribe: Angelina Lee Outline of this lecture: 1. Overview of Cilk 2. The dag computation model 3. Performance measures 4. A simple greedy
More informationCompsci 590.3: Introduction to Parallel Computing
Compsci 590.3: Introduction to Parallel Computing Alvin R. Lebeck Slides based on this from the University of Oregon Admin Logistics Homework #3 Use script Project Proposals Document: see web site» Due
More informationCilk, Matrix Multiplication, and Sorting
6.895 Theory of Parallel Systems Lecture 2 Lecturer: Charles Leiserson Cilk, Matrix Multiplication, and Sorting Lecture Summary 1. Parallel Processing With Cilk This section provides a brief introduction
More informationMultithreaded Programming in Cilk. Matteo Frigo
Multithreaded Programming in Cilk Matteo Frigo Multicore challanges Development time: Will you get your product out in time? Where will you find enough parallel-programming talent? Will you be forced to
More informationMetaFork: A Compilation Framework for Concurrency Platforms Targeting Multicores
MetaFork: A Compilation Framework for Concurrency Platforms Targeting Multicores Presented by Xiaohui Chen Joint work with Marc Moreno Maza, Sushek Shekar & Priya Unnikrishnan University of Western Ontario,
More informationReducers and other Cilk++ hyperobjects
Reducers and other Cilk++ hyperobjects Matteo Frigo (Intel) ablo Halpern (Intel) Charles E. Leiserson (MIT) Stephen Lewin-Berlin (Intel) August 11, 2009 Collision detection Assembly: Represented as a tree
More informationPablo Halpern Parallel Programming Languages Architect Intel Corporation
Pablo Halpern Parallel Programming Languages Architect Intel Corporation CppCon, 8 September 2014 This work by Pablo Halpern is licensed under a Creative Commons Attribution
More informationIntroduction to Algorithms
Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Introduction to Algorithms Third Edition The MIT Press Cambridge, Massachusetts London, England 27 Multithreaded Algorithms The vast
More informationCOMP Parallel Computing. SMM (4) Nested Parallelism
COMP 633 - Parallel Computing Lecture 9 September 19, 2017 Nested Parallelism Reading: The Implementation of the Cilk-5 Multithreaded Language sections 1 3 1 Topics Nested parallelism in OpenMP and other
More informationParallel Algorithms. 6/12/2012 6:42 PM gdeepak.com 1
Parallel Algorithms 1 Deliverables Parallel Programming Paradigm Matrix Multiplication Merge Sort 2 Introduction It involves using the power of multiple processors in parallel to increase the performance
More informationLesson 1 1 Introduction
Lesson 1 1 Introduction The Multithreaded DAG Model DAG = Directed Acyclic Graph : a collection of vertices and directed edges (lines with arrows). Each edge connects two vertices. The final result of
More informationA Primer on Scheduling Fork-Join Parallelism with Work Stealing
Doc. No.: N3872 Date: 2014-01-15 Reply to: Arch Robison A Primer on Scheduling Fork-Join Parallelism with Work Stealing This paper is a primer, not a proposal, on some issues related to implementing fork-join
More informationBeyond Threads: Scalable, Composable, Parallelism with Intel Cilk Plus and TBB
Beyond Threads: Scalable, Composable, Parallelism with Intel Cilk Plus and TBB Jim Cownie Intel SSG/DPD/TCAR 1 Optimization Notice Optimization Notice Intel s compilers may or
More informationParallel Programming with Cilk
Project 4-1 Parallel Programming with Cilk Out: Friday, 23 Oct 2009 Due: 10AM on Wednesday, 4 Nov 2009 In this project you will learn how to parallel program with Cilk. In the first part of the project,
More informationA Minicourse on Dynamic Multithreaded Algorithms
Introduction to Algorithms December 5, 005 Massachusetts Institute of Technology 6.046J/18.410J Professors Erik D. Demaine and Charles E. Leiserson Handout 9 A Minicourse on Dynamic Multithreaded Algorithms
More informationA Quick Introduction To The Intel Cilk Plus Runtime
A Quick Introduction To The Intel Cilk Plus Runtime 6.S898: Advanced Performance Engineering for Multicore Applications March 8, 2017 Adapted from slides by Charles E. Leiserson, Saman P. Amarasinghe,
More informationMetaFork: A Metalanguage for Concurrency Platforms Targeting Multicores
MetaFork: A Metalanguage for Concurrency Platforms Targeting Multicores Xiaohui Chen, Marc Moreno Maza & Sushek Shekar University of Western Ontario September 1, 2013 Document number: N1746 Date: 2013-09-01
More informationOn the cost of managing data flow dependencies
On the cost of managing data flow dependencies - program scheduled by work stealing - Thierry Gautier, INRIA, EPI MOAIS, Grenoble France Workshop INRIA/UIUC/NCSA Outline Context - introduction of work
More informationEfficiently Detecting Races in Cilk Programs That Use Reducer Hyperobjects
Efficiently Detecting Races in Cilk Programs That Use Reducer Hyperobjects ABSTRACT I-Ting Angelina Lee Washington University in St. Louis One Brookings Drive St. Louis, MO 63130 A multithreaded Cilk program
More informationProject 3. Building a parallelism profiler for Cilk computations CSE 539. Assigned: 03/17/2015 Due Date: 03/27/2015
CSE 539 Project 3 Assigned: 03/17/2015 Due Date: 03/27/2015 Building a parallelism profiler for Cilk computations In this project, you will implement a simple serial tool for Cilk programs a parallelism
More informationBeyond Nested Parallelism: Tight Bounds on Work-Stealing Overheads for Parallel Futures
Beyond Nested Parallelism: Tight Bounds on Work-Stealing Overheads for Parallel Futures Daniel Spoonhower Guy E. Blelloch Phillip B. Gibbons Robert Harper Carnegie Mellon University {spoons,blelloch,rwh}@cs.cmu.edu
More informationA Static Cut-off for Task Parallel Programs
A Static Cut-off for Task Parallel Programs Shintaro Iwasaki, Kenjiro Taura Graduate School of Information Science and Technology The University of Tokyo September 12, 2016 @ PACT '16 1 Short Summary We
More information15-210: Parallelism in the Real World
: Parallelism in the Real World Types of paralellism Parallel Thinking Nested Parallelism Examples (Cilk, OpenMP, Java Fork/Join) Concurrency Page1 Cray-1 (1976): the world s most expensive love seat 2
More informationThe Cilkview Scalability Analyzer
The Cilkview Scalability Analyzer Yuxiong He Charles E. Leiserson William M. Leiserson Intel Corporation Nashua, New Hampshire ABSTRACT The Cilkview scalability analyzer is a software tool for profiling,
More informationC Language Constructs for Parallel Programming
C Language Constructs for Parallel Programming Robert Geva 5/17/13 1 Cilk Plus Parallel tasks Easy to learn: 3 keywords Tasks, not threads Load balancing Hyper Objects Array notations Elemental Functions
More informationMultithreaded Algorithms Part 2. Dept. of Computer Science & Eng University of Moratuwa
CS4460 Advanced d Algorithms Batch 08, L4S2 Lecture 12 Multithreaded Algorithms Part 2 N. H. N. D. de Silva Dept. of Computer Science & Eng University of Moratuwa Outline: Multithreaded Algorithms Part
More information15-853:Algorithms in the Real World. Outline. Parallelism: Lecture 1 Nested parallelism Cost model Parallel techniques and algorithms
:Algorithms in the Real World Parallelism: Lecture 1 Nested parallelism Cost model Parallel techniques and algorithms Page1 Andrew Chien, 2008 2 Outline Concurrency vs. Parallelism Quicksort example Nested
More informationCilk programs as a DAG
Cilk programs as a DAG The pattern of spawn and sync commands defines a graph The graph contains dependencies between different functions spawn command creates a new task with an out-bound link sync command
More informationPerformance Optimization Part 1: Work Distribution and Scheduling
Lecture 5: Performance Optimization Part 1: Work Distribution and Scheduling Parallel Computer Architecture and Programming CMU 15-418/15-618, Fall 2017 Programming for high performance Optimizing the
More informationOn the Interoperability of Programming Languages based on the Fork-Join Parallelism Model. (Thesis format: Monograph) Sushek Shekar
On the Interoperability of Programming Languages based on the Fork-Join Parallelism Model (Spine title: On the Interoperability of Programming Languages based on the Fork-Join Parallelism Model) (Thesis
More informationNondeterministic Programming
6.172 Performance Engineering of Software Systems LECTURE 15 Nondeterministic Programming Charles E. Leiserson November 2, 2010 2010 Charles E. Leiserson 1 Determinism Definition. A program is deterministic
More informationThe Data Locality of Work Stealing
The Data Locality of Work Stealing Umut A. Acar School of Computer Science Carnegie Mellon University umut@cs.cmu.edu Guy E. Blelloch School of Computer Science Carnegie Mellon University guyb@cs.cmu.edu
More informationThe Implementation of Cilk-5 Multithreaded Language
The Implementation of Cilk-5 Multithreaded Language By Matteo Frigo, Charles E. Leiserson, and Keith H Randall Presented by Martin Skou 1/14 The authors Matteo Frigo Chief Scientist and founder of Cilk
More informationTable of Contents. Cilk
Table of Contents 212 Introduction to Parallelism Introduction to Programming Models Shared Memory Programming Message Passing Programming Shared Memory Models Cilk TBB HPF Chapel Fortress Stapl PGAS Languages
More informationEffective Performance Measurement and Analysis of Multithreaded Applications
Effective Performance Measurement and Analysis of Multithreaded Applications Nathan Tallent John Mellor-Crummey Rice University CSCaDS hpctoolkit.org Wanted: Multicore Programming Models Simple well-defined
More informationThe DAG Model; Analysis of For-Loops; Reduction
CSE341T 09/06/2017 Lecture 3 The DAG Model; Analysis of For-Loops; Reduction We will now formalize the DAG model. We will also see how parallel for loops are implemented and what are reductions. 1 The
More informationPrinciples of Tapir. Tao B. Schardl William S. Moses Charles E. Leiserson. LLVM Performance Workshop February 4, 2017
Principles of Tapir Tao B. Schardl William S. Moses Charles E. Leiserson LLVM Performance Workshop February 4, 2017 1 Outline What is Tapir? Tapir s debugging methodology Tapir s optimization strategy
More informationWriting Parallel Programs; Cost Model.
CSE341T 08/30/2017 Lecture 2 Writing Parallel Programs; Cost Model. Due to physical and economical constraints, a typical machine we can buy now has 4 to 8 computing cores, and soon this number will be
More informationMetaFork: A Compilation Framework for Concurrency Platforms Targeting Multicores
MetaFork: A Compilation Framework for Concurrency Platforms Targeting Multicores Xiaohui Chen, Marc Moreno Maza & Sushek Shekar University of Western Ontario, Canada IBM Toronto Lab February 11, 2015 Plan
More informationMulticore Programming Handout 1: Installing GCC Cilk Plus
Multicore Programming Handout 1: Installing GCC Cilk Plus Leo Ferres Department of Computer Science Universidad de Concepción Email: lferres@inf.udec.cl February 19, 2013 1 Introduction For our lab work,
More informationA Framework for Space and Time Efficient Scheduling of Parallelism
A Framework for Space and Time Efficient Scheduling of Parallelism Girija J. Narlikar Guy E. Blelloch December 996 CMU-CS-96-97 School of Computer Science Carnegie Mellon University Pittsburgh, PA 523
More informationAn Architectural Framework for Accelerating Dynamic Parallel Algorithms on Reconfigurable Hardware
An Architectural Framework for Accelerating Dynamic Parallel Algorithms on Reconfigurable Hardware Tao Chen, Shreesha Srinath Christopher Batten, G. Edward Suh Computer Systems Laboratory School of Electrical
More information27. Parallel Programming I
771 27. Parallel Programming I Moore s Law and the Free Lunch, Hardware Architectures, Parallel Execution, Flynn s Taxonomy, Scalability: Amdahl and Gustafson, Data-parallelism, Task-parallelism, Scheduling
More informationPerformance Optimization Part 1: Work Distribution and Scheduling
( how to be l33t ) Lecture 6: Performance Optimization Part 1: Work Distribution and Scheduling Parallel Computer Architecture and Programming CMU 15-418/15-618, Spring 2017 Tunes Kaleo Way Down We Go
More informationShared-Memory Programming Models
Shared-Memory Programming Models Parallel Programming Concepts Winter Term 2013 / 2014 Dr. Peter Tröger, M.Sc. Frank Feinbube Cilk C language combined with several new keywords Different approach to OpenMP
More information27. Parallel Programming I
760 27. Parallel Programming I Moore s Law and the Free Lunch, Hardware Architectures, Parallel Execution, Flynn s Taxonomy, Scalability: Amdahl and Gustafson, Data-parallelism, Task-parallelism, Scheduling
More informationTheory of Computing Systems 2002 Springer-Verlag New York Inc.
Theory Comput. Systems 35, 321 347 (2002) DOI: 10.1007/s00224-002-1057-3 Theory of Computing Systems 2002 Springer-Verlag New York Inc. The Data Locality of Work Stealing Umut A. Acar, 1 Guy E. Blelloch,
More information6.886: Algorithm Engineering
6.886: Algorithm Engineering LECTURE 2 PARALLEL ALGORITHMS Julian Shun February 7, 2019 Lecture material taken from Parallel Algorithms by Guy E. Blelloch and Bruce M. Maggs and 6.172 by Charles Leiserson
More information27. Parallel Programming I
The Free Lunch 27. Parallel Programming I Moore s Law and the Free Lunch, Hardware Architectures, Parallel Execution, Flynn s Taxonomy, Scalability: Amdahl and Gustafson, Data-parallelism, Task-parallelism,
More informationCSE613: Parallel Programming, Spring 2012 Date: March 31. Homework #2. ( Due: April 14 )
CSE613: Parallel Programming, Spring 2012 Date: March 31 Homework #2 ( Due: April 14 ) Serial-BFS( G, s, d ) (Inputs are an unweighted directed graph G with vertex set G[V ], and a source vertex s G[V
More informationThe Cilk++ Concurrency Platform
The Cilk++ Concurrency Platform The MIT Faculty has made this article openly available. Please share how this access benefits you. Your story matters. Citation As Published Publisher Leiserson, Charles
More informationProvably Efficient Non-Preemptive Task Scheduling with Cilk
Provably Efficient Non-Preemptive Task Scheduling with Cilk V. -Y. Vee and W.-J. Hsu School of Applied Science, Nanyang Technological University Nanyang Avenue, Singapore 639798. Abstract We consider the
More informationPerformance Issues in Parallelization. Saman Amarasinghe Fall 2010
Performance Issues in Parallelization Saman Amarasinghe Fall 2010 Today s Lecture Performance Issues of Parallelism Cilk provides a robust environment for parallelization It hides many issues and tries
More informationCilk User s Guide. Document Number: US
Document Number: 322581-001US Legal Information INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL
More informationAnalysis of Multithreaded Algorithms
Analysis of Multithreaded Algorithms Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS4402-9535 (Moreno Maza) Analysis of Multithreaded Algorithms CS4402-9535 1 / 27 Plan 1 Matrix
More informationCase Study: Matrix Multiplication. 6.S898: Advanced Performance Engineering for Multicore Applications February 22, 2017
Case Study: Matrix Multiplication 6.S898: Advanced Performance Engineering for Multicore Applications February 22, 2017 1 4k-by-4k Matrix Multiplication Version Implementation Running time (s) GFLOPS Absolute
More informationDesign and Analysis of Parallel Programs. Parallel Cost Models. Outline. Foster s Method for Design of Parallel Programs ( PCAM )
Outline Design and Analysis of Parallel Programs TDDD93 Lecture 3-4 Christoph Kessler PELAB / IDA Linköping university Sweden 2017 Design and analysis of parallel algorithms Foster s PCAM method for the
More informationEfficient Detection of Determinacy Race in Transactional Cilk Programs
Efficient Detection of Determinacy Race in Transactional Cilk Programs Xie Yong Singapore-MIT Alliance Outline Definition determinacy race in transactional Cilk Algorithm T. E. R. D. Implementation Cilk
More informationPerformance Issues in Parallelization Saman Amarasinghe Fall 2009
Performance Issues in Parallelization Saman Amarasinghe Fall 2009 Today s Lecture Performance Issues of Parallelism Cilk provides a robust environment for parallelization It hides many issues and tries
More informationParallel Algorithms CSE /22/2015. Outline of this lecture: 1 Implementation of cilk for. 2. Parallel Matrix Multiplication
CSE 539 01/22/2015 Parallel Algorithms Lecture 3 Scribe: Angelina Lee Outline of this lecture: 1. Implementation of cilk for 2. Parallel Matrix Multiplication 1 Implementation of cilk for We mentioned
More informationUnderstanding Task Scheduling Algorithms. Kenjiro Taura
Understanding Task Scheduling Algorithms Kenjiro Taura 1 / 48 Contents 1 Introduction 2 Work stealing scheduler 3 Analyzing execution time of work stealing 4 Analyzing cache misses of work stealing 5 Summary
More informationLocality-Aware Dynamic Task Graph Scheduling
Locality-Aware Dynamic Task Graph Scheduling Jordyn Maglalang, Sriram Krishnamoorthy, Kunal Agrawal Washington University in St. Louis Pacific Northwest National Laboratory jordyn.maglalang@wustl.edu,
More informationCS 62 Midterm 2 Practice
CS 62 Midterm 2 Practice 2017-4-7 Please put your name on the back of the last page of the test. Problem 1: Multiple Choice [8 points] [2 points each] For each question, circle the correct answer. If you
More information1 Optimizing parallel iterative graph computation
May 15, 2012 1 Optimizing parallel iterative graph computation I propose to develop a deterministic parallel framework for performing iterative computation on a graph which schedules work on vertices based
More informationCMPSCI 250: Introduction to Computation. Lecture #14: Induction and Recursion (Still More Induction) David Mix Barrington 14 March 2013
CMPSCI 250: Introduction to Computation Lecture #14: Induction and Recursion (Still More Induction) David Mix Barrington 14 March 2013 Induction and Recursion Three Rules for Recursive Algorithms Proving
More informationCilk: An Efficient Multithreaded Runtime System
Cilk: An Efficient Multithreaded Runtime System ROBERT D. BLUMOFE, CHRISTOPHER F. JOERG, BRADLEY C. KUSZMAUL, CHARLES E. LEISERSON, KEITH H. RANDALL, AND YULI ZHOU MIT Laboratory for Computer Science,
More informationCS140 Final Project. Nathan Crandall, Dane Pitkin, Introduction:
Nathan Crandall, 3970001 Dane Pitkin, 4085726 CS140 Final Project Introduction: Our goal was to parallelize the Breadth-first search algorithm using Cilk++. This algorithm works by starting at an initial
More informationNote: Please use the actual date you accessed this material in your citation.
MIT OpenCourseWare http://ocw.mit.edu 6.046J Introduction to Algorithms, Fall 2005 Please use the following citation format: Erik Demaine and Charles Leiserson, 6.046J Introduction to Algorithms, Fall
More informationShared-memory Parallel Programming with Cilk Plus (Parts 2-3)
Shared-memory Parallel Programming with Cilk Plus (Parts 2-3) John Mellor-Crummey Department of Computer Science Rice University johnmc@rice.edu COMP 422/534 Lecture 5-6 24,26 January 2017 Last Thursday
More informationCOMP 322: Fundamentals of Parallel Programming Module 1: Parallelism
c 2016 by Vivek Sarkar January 10, 2018 Contents 0 Course Organization 2 1 Task-level Parallelism 2 1.1 Task Creation and Termination (Async, Finish).......................... 2 1.2 Computation Graphs.........................................
More information