the manticore approach to parallelism · lars bergstrom university of chicago matthew fluet...
TRANSCRIPT
![Page 1: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/1.jpg)
The Manticore Approach to Parallelism
John Reppy
University of Chicago
October 14, 2009
![Page 2: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/2.jpg)
Introduction
Hardware (r)evolution
The hardware environment is heterogeneous and in flux:I Microprocessors have become multiprocessors.I Quad-core is standard on the desktop; 8-core by year’s end.I Larrabee is rumored to have 32 coresI Heterogeneous processors (Cell and GPU)
Writing parallel programs in this environment is more challenging thanever!
And it is a problem for everyone!
LACSS 2009 The Manticore Approach to Parallelism 2
![Page 3: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/3.jpg)
Introduction
Hardware (r)evolution
The hardware environment is heterogeneous and in flux:I Microprocessors have become multiprocessors.I Quad-core is standard on the desktop; 8-core by year’s end.I Larrabee is rumored to have 32 coresI Heterogeneous processors (Cell and GPU)
Writing parallel programs in this environment is more challenging thanever!
And it is a problem for everyone!
LACSS 2009 The Manticore Approach to Parallelism 2
![Page 4: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/4.jpg)
Introduction
Hardware (r)evolution
The hardware environment is heterogeneous and in flux:I Microprocessors have become multiprocessors.I Quad-core is standard on the desktop; 8-core by year’s end.I Larrabee is rumored to have 32 coresI Heterogeneous processors (Cell and GPU)
Writing parallel programs in this environment is more challenging thanever!
And it is a problem for everyone!
LACSS 2009 The Manticore Approach to Parallelism 2
![Page 5: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/5.jpg)
Introduction
Hardware (r)evolution
The hardware environment is heterogeneous and in flux:I Microprocessors have become multiprocessors.I Quad-core is standard on the desktop; 8-core by year’s end.I Larrabee is rumored to have 32 coresI Heterogeneous processors (Cell and GPU)
Writing parallel programs in this environment is more challenging thanever!
And it is a problem for everyone!
LACSS 2009 The Manticore Approach to Parallelism 2
![Page 6: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/6.jpg)
Introduction
Hardware (r)evolution
The hardware environment is heterogeneous and in flux:I Microprocessors have become multiprocessors.I Quad-core is standard on the desktop; 8-core by year’s end.I Larrabee is rumored to have 32 coresI Heterogeneous processors (Cell and GPU)
Writing parallel programs in this environment is more challenging thanever!
And it is a problem for everyone!
LACSS 2009 The Manticore Approach to Parallelism 2
![Page 7: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/7.jpg)
Introduction
Hardware (r)evolution
The hardware environment is heterogeneous and in flux:I Microprocessors have become multiprocessors.I Quad-core is standard on the desktop; 8-core by year’s end.I Larrabee is rumored to have 32 coresI Heterogeneous processors (Cell and GPU)
Writing parallel programs in this environment is more challenging thanever!
And it is a problem for everyone!
LACSS 2009 The Manticore Approach to Parallelism 2
![Page 8: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/8.jpg)
Introduction
The Manticore project
The Manticore project is motivated by the need for parallelism incommodity applications.
I Need high-level constructs to hide hardware detailsI Support for heterogeneous applicationsI Opportunity for functional programming (again)I Challenge: efficient implementation on a range of hardware
platforms.NOTE: we have purposefully avoided HPC as an application area!
LACSS 2009 The Manticore Approach to Parallelism 3
![Page 9: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/9.jpg)
Introduction
The Manticore project
The Manticore project is motivated by the need for parallelism incommodity applications.
I Need high-level constructs to hide hardware detailsI Support for heterogeneous applicationsI Opportunity for functional programming (again)I Challenge: efficient implementation on a range of hardware
platforms.NOTE: we have purposefully avoided HPC as an application area!
LACSS 2009 The Manticore Approach to Parallelism 3
![Page 10: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/10.jpg)
Introduction
The Manticore project
The Manticore project is motivated by the need for parallelism incommodity applications.
I Need high-level constructs to hide hardware detailsI Support for heterogeneous applicationsI Opportunity for functional programming (again)I Challenge: efficient implementation on a range of hardware
platforms.NOTE: we have purposefully avoided HPC as an application area!
LACSS 2009 The Manticore Approach to Parallelism 3
![Page 11: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/11.jpg)
Introduction
The Manticore project
The Manticore project is motivated by the need for parallelism incommodity applications.
I Need high-level constructs to hide hardware detailsI Support for heterogeneous applicationsI Opportunity for functional programming (again)I Challenge: efficient implementation on a range of hardware
platforms.NOTE: we have purposefully avoided HPC as an application area!
LACSS 2009 The Manticore Approach to Parallelism 3
![Page 12: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/12.jpg)
Introduction
The Manticore project
The Manticore project is motivated by the need for parallelism incommodity applications.
I Need high-level constructs to hide hardware detailsI Support for heterogeneous applicationsI Opportunity for functional programming (again)I Challenge: efficient implementation on a range of hardware
platforms.NOTE: we have purposefully avoided HPC as an application area!
LACSS 2009 The Manticore Approach to Parallelism 3
![Page 13: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/13.jpg)
Introduction
The Manticore project
The Manticore project is motivated by the need for parallelism incommodity applications.
I Need high-level constructs to hide hardware detailsI Support for heterogeneous applicationsI Opportunity for functional programming (again)I Challenge: efficient implementation on a range of hardware
platforms.NOTE: we have purposefully avoided HPC as an application area!
LACSS 2009 The Manticore Approach to Parallelism 3
![Page 14: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/14.jpg)
Introduction
People
The Manticore project is a joint project between the University ofChicago and the Rochester Institute of Technology.
Lars Bergstrom University of ChicagoMatthew Fluet Rochester Institute of TechnologyMike Rainey University of ChicagoAdam Shaw University of ChicagoYingqi Xiao University of Chicago
with help from
Nic Ford, Korei Klein, Joshua Knox, Jon Riehl, Ridge Scott atthe University of Chicago
Also, thanks to the NSF for funding this research.
LACSS 2009 The Manticore Approach to Parallelism 4
![Page 15: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/15.jpg)
Introduction Design overview
Language design
Our initial design is purposefully conservative. It can be summarizedas the combination of three distinct sub-languages:
I A mutation-free subset of SML (no refs or arrays, but includesexceptions).
I Language mechanisms for implicitly-threaded parallelprogramming.
I Language mechanisms for explicitly-threaded parallelprogramming (a.k.a. concurrent programming) based on messagepassing (not MPI).
The focus of this talk will be on the implicitly-threaded mechanisms.
LACSS 2009 The Manticore Approach to Parallelism 5
![Page 16: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/16.jpg)
Introduction Design overview
Language design
Our initial design is purposefully conservative. It can be summarizedas the combination of three distinct sub-languages:
I A mutation-free subset of SML (no refs or arrays, but includesexceptions).
I Language mechanisms for implicitly-threaded parallelprogramming.
I Language mechanisms for explicitly-threaded parallelprogramming (a.k.a. concurrent programming) based on messagepassing (not MPI).
The focus of this talk will be on the implicitly-threaded mechanisms.
LACSS 2009 The Manticore Approach to Parallelism 5
![Page 17: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/17.jpg)
Introduction Design overview
Language design
Our initial design is purposefully conservative. It can be summarizedas the combination of three distinct sub-languages:
I A mutation-free subset of SML (no refs or arrays, but includesexceptions).
I Language mechanisms for implicitly-threaded parallelprogramming.
I Language mechanisms for explicitly-threaded parallelprogramming (a.k.a. concurrent programming) based on messagepassing (not MPI).
The focus of this talk will be on the implicitly-threaded mechanisms.
LACSS 2009 The Manticore Approach to Parallelism 5
![Page 18: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/18.jpg)
Introduction Design overview
Language design
Our initial design is purposefully conservative. It can be summarizedas the combination of three distinct sub-languages:
I A mutation-free subset of SML (no refs or arrays, but includesexceptions).
I Language mechanisms for implicitly-threaded parallelprogramming.
I Language mechanisms for explicitly-threaded parallelprogramming (a.k.a. concurrent programming) based on messagepassing (not MPI).
The focus of this talk will be on the implicitly-threaded mechanisms.
LACSS 2009 The Manticore Approach to Parallelism 5
![Page 19: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/19.jpg)
Introduction Design overview
Language design
Our initial design is purposefully conservative. It can be summarizedas the combination of three distinct sub-languages:
I A mutation-free subset of SML (no refs or arrays, but includesexceptions).
I Language mechanisms for implicitly-threaded parallelprogramming.
I Language mechanisms for explicitly-threaded parallelprogramming (a.k.a. concurrent programming) based on messagepassing (not MPI).
The focus of this talk will be on the implicitly-threaded mechanisms.
LACSS 2009 The Manticore Approach to Parallelism 5
![Page 20: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/20.jpg)
Introduction Implicit threading
Language design (continued ...)
Manticore provides several light-weight syntactic forms for introducingparallel computation.
These forms are declarative and are treated as hints by the system.
I Parallel arrays provide fine-grain data-parallel computations oversequences.
I Parallel tuples provide a basic fork-join parallel computation.I Parallel bindings provide data-flow parallelism with cancelation of
unused subcomputations.I Parallel case provides non-deterministic speculative parallelism.
LACSS 2009 The Manticore Approach to Parallelism 6
![Page 21: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/21.jpg)
Introduction Implicit threading
Language design (continued ...)
Manticore provides several light-weight syntactic forms for introducingparallel computation.
These forms are declarative and are treated as hints by the system.
I Parallel arrays provide fine-grain data-parallel computations oversequences.
I Parallel tuples provide a basic fork-join parallel computation.I Parallel bindings provide data-flow parallelism with cancelation of
unused subcomputations.I Parallel case provides non-deterministic speculative parallelism.
LACSS 2009 The Manticore Approach to Parallelism 6
![Page 22: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/22.jpg)
Introduction Implicit threading
Language design (continued ...)
Manticore provides several light-weight syntactic forms for introducingparallel computation.
These forms are declarative and are treated as hints by the system.
I Parallel arrays provide fine-grain data-parallel computations oversequences.
I Parallel tuples provide a basic fork-join parallel computation.I Parallel bindings provide data-flow parallelism with cancelation of
unused subcomputations.I Parallel case provides non-deterministic speculative parallelism.
LACSS 2009 The Manticore Approach to Parallelism 6
![Page 23: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/23.jpg)
Introduction Implicit threading
Language design (continued ...)
Manticore provides several light-weight syntactic forms for introducingparallel computation.
These forms are declarative and are treated as hints by the system.
I Parallel arrays provide fine-grain data-parallel computations oversequences.
I Parallel tuples provide a basic fork-join parallel computation.I Parallel bindings provide data-flow parallelism with cancelation of
unused subcomputations.I Parallel case provides non-deterministic speculative parallelism.
LACSS 2009 The Manticore Approach to Parallelism 6
![Page 24: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/24.jpg)
Introduction Implicit threading
Language design (continued ...)
Manticore provides several light-weight syntactic forms for introducingparallel computation.
These forms are declarative and are treated as hints by the system.
I Parallel arrays provide fine-grain data-parallel computations oversequences.
I Parallel tuples provide a basic fork-join parallel computation.I Parallel bindings provide data-flow parallelism with cancelation of
unused subcomputations.I Parallel case provides non-deterministic speculative parallelism.
LACSS 2009 The Manticore Approach to Parallelism 6
![Page 25: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/25.jpg)
Introduction Implicit threading
Parallel arrays
We support fine-grained nested-data-parallel (NDP) computation usinga parallel array comprehension form (NESL/Nepal/DPH):
[| exp | pat i in expi where pred |]
For example, the parallel point-wise summing of two arrays:
[| x+y | x in xs, y in ys |]
NOTE: zip semantics, not Cartesian-product semantics.
This construct can be mapped onto SIMD type hardware (GPUs).
LACSS 2009 The Manticore Approach to Parallelism 7
![Page 26: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/26.jpg)
Introduction Implicit threading
Nested data parallelism (continued ...)
Mandelbrot set computation:
fun x i = x0 + dx * Float.fromInt i;fun y j = y0 - dy * Float.fromInt j;fun loop (cnt, re, im) =
if (cnt < 255) andalso (re*re + im*im > 4.0)then loop(cnt+1, re*re - re*im + re, 2.0*re*im + im)else cnt;
[|[| loop(0, x i, y j) | i in [| 0..N |] |]| j in [| 0..N |]
|]
LACSS 2009 The Manticore Approach to Parallelism 8
![Page 27: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/27.jpg)
Introduction Implicit threading
Irregular parallelism
type sparse_matrix = (int * float) parray parray
fun sparseDotP (sv, v) = sumP [| x * v!i | (i, x) in sv |]
fun smxv (sm, v) = [| sparseDotP(row, v) | row in sm |]
LACSS 2009 The Manticore Approach to Parallelism 9
![Page 28: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/28.jpg)
Introduction Implicit threading
Parallel tuplesParallel tuples provide fork-join parallelism. For example, considersumming the leaves of a binary tree.
datatype tree = LF of long | ND of tree * tree
fun treeAdd (LF n) = n| treeAdd (ND(t1, t2)) =
(op +) (| treeAdd t1, treeAdd t2 |)
10 2 3
LACSS 2009 The Manticore Approach to Parallelism 10
![Page 29: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/29.jpg)
Introduction Implicit threading
Parallel bindings
Parallel bindings provide more flexibility than parallel tuples. Forexample, consider computing the product of the leaves of a binary tree.
fun treeMul (LF n) = n| treeMul (ND(t1, t2)) = let
pval b = treeMul t2val a = treeMul t1inif (a = 0) then 0 else a*b
end
NOTE: the computation of b is speculative.
LACSS 2009 The Manticore Approach to Parallelism 11
![Page 30: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/30.jpg)
Introduction Implicit threading
Parallel bindings (continued ...)
10 2 30
0
LACSS 2009 The Manticore Approach to Parallelism 12
![Page 31: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/31.jpg)
Introduction Implicit threading
Parallel case
Parallel case supports speculative parallelism when we want thequickest answer (e.g., search problems). For example, considerpicking a leaf of the tree:
fun treePick (LF n) = n| treePick (ND(t1, t2)) = (
pcase treePick t1 & treePick t2of ? & n => n| n & ? => n)
There is some similarity with join patterns.
LACSS 2009 The Manticore Approach to Parallelism 13
![Page 32: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/32.jpg)
Introduction Implicit threading
Parallel case (continued ...)
10 2 31
1
LACSS 2009 The Manticore Approach to Parallelism 14
![Page 33: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/33.jpg)
Introduction Implicit threading
Parallel case (continued ...)
Symmetric version of treeMul.
fun treeMul (LF n) = n| treeMul (ND(t1, t2)) = (
pcase treeMul t1 & treeMul t2of ? & 0 => 0| 0 & ? => 0| a & b => a*b)
LACSS 2009 The Manticore Approach to Parallelism 15
![Page 34: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/34.jpg)
Introduction Implicit threading
Discussion
I These mechanisms compose.I Value-oriented computation modelI Use tree-structure (ropes) for parray type.I Futures with Cilk-style work stealing plus cancelationI Working on size analysis to manage granularity
LACSS 2009 The Manticore Approach to Parallelism 16
![Page 35: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/35.jpg)
Introduction Implicit threading
Discussion
I These mechanisms compose.I Value-oriented computation modelI Use tree-structure (ropes) for parray type.I Futures with Cilk-style work stealing plus cancelationI Working on size analysis to manage granularity
LACSS 2009 The Manticore Approach to Parallelism 16
![Page 36: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/36.jpg)
Introduction Implicit threading
Discussion
I These mechanisms compose.I Value-oriented computation modelI Use tree-structure (ropes) for parray type.I Futures with Cilk-style work stealing plus cancelationI Working on size analysis to manage granularity
LACSS 2009 The Manticore Approach to Parallelism 16
![Page 37: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/37.jpg)
Introduction Implicit threading
Discussion
I These mechanisms compose.I Value-oriented computation modelI Use tree-structure (ropes) for parray type.I Futures with Cilk-style work stealing plus cancelationI Working on size analysis to manage granularity
LACSS 2009 The Manticore Approach to Parallelism 16
![Page 38: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/38.jpg)
Introduction Implicit threading
Discussion
I These mechanisms compose.I Value-oriented computation modelI Use tree-structure (ropes) for parray type.I Futures with Cilk-style work stealing plus cancelationI Working on size analysis to manage granularity
LACSS 2009 The Manticore Approach to Parallelism 16
![Page 39: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/39.jpg)
Conclusion
Status
I The project is about three years old.I We have a prototype implementation for the x86-64 processor
(Linux and Mac OS X).I Demonstrated scalable performance on 16-core system (4
quad-core AMD 8380 processors) vs. good sequentialimplementations.
I Sequential performance is okay, but needs improvement.
LACSS 2009 The Manticore Approach to Parallelism 17
![Page 40: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/40.jpg)
Conclusion
Status
I The project is about three years old.I We have a prototype implementation for the x86-64 processor
(Linux and Mac OS X).I Demonstrated scalable performance on 16-core system (4
quad-core AMD 8380 processors) vs. good sequentialimplementations.
I Sequential performance is okay, but needs improvement.
LACSS 2009 The Manticore Approach to Parallelism 17
![Page 41: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/41.jpg)
Conclusion
Status
I The project is about three years old.I We have a prototype implementation for the x86-64 processor
(Linux and Mac OS X).I Demonstrated scalable performance on 16-core system (4
quad-core AMD 8380 processors) vs. good sequentialimplementations.
I Sequential performance is okay, but needs improvement.
LACSS 2009 The Manticore Approach to Parallelism 17
![Page 42: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/42.jpg)
Conclusion
Status
I The project is about three years old.I We have a prototype implementation for the x86-64 processor
(Linux and Mac OS X).I Demonstrated scalable performance on 16-core system (4
quad-core AMD 8380 processors) vs. good sequentialimplementations.
I Sequential performance is okay, but needs improvement.
LACSS 2009 The Manticore Approach to Parallelism 17
![Page 43: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/43.jpg)
Conclusion
Future work
I Applications: interactive graphics, computer vision, and medicalimaging.
I Mapping NDP constructs onto GPUs.I Better support for speculative parallelism.I Support for controlled use of mutation for shared data structures.I Ongoing work to improve sequential performance.
LACSS 2009 The Manticore Approach to Parallelism 18
![Page 44: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/44.jpg)
Conclusion
Future work
I Applications: interactive graphics, computer vision, and medicalimaging.
I Mapping NDP constructs onto GPUs.I Better support for speculative parallelism.I Support for controlled use of mutation for shared data structures.I Ongoing work to improve sequential performance.
LACSS 2009 The Manticore Approach to Parallelism 18
![Page 45: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/45.jpg)
Conclusion
Future work
I Applications: interactive graphics, computer vision, and medicalimaging.
I Mapping NDP constructs onto GPUs.I Better support for speculative parallelism.I Support for controlled use of mutation for shared data structures.I Ongoing work to improve sequential performance.
LACSS 2009 The Manticore Approach to Parallelism 18
![Page 46: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/46.jpg)
Conclusion
Future work
I Applications: interactive graphics, computer vision, and medicalimaging.
I Mapping NDP constructs onto GPUs.I Better support for speculative parallelism.I Support for controlled use of mutation for shared data structures.I Ongoing work to improve sequential performance.
LACSS 2009 The Manticore Approach to Parallelism 18
![Page 47: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/47.jpg)
Conclusion
Future work
I Applications: interactive graphics, computer vision, and medicalimaging.
I Mapping NDP constructs onto GPUs.I Better support for speculative parallelism.I Support for controlled use of mutation for shared data structures.I Ongoing work to improve sequential performance.
LACSS 2009 The Manticore Approach to Parallelism 18
![Page 48: The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet Rochester Institute of Technology Mike Rainey University of Chicago Adam Shaw University](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f40cfa4ec44381351042f21/html5/thumbnails/48.jpg)
Conclusion
Questions?
http://manticore.cs.uchicago.edu
LACSS 2009 The Manticore Approach to Parallelism 19