The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet...

48
The Manticore Approach to Parallelism John Reppy University of Chicago October 14, 2009

Transcript of The Manticore Approach to Parallelism · Lars Bergstrom University of Chicago Matthew Fluet...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Conclusion

Questions?

http://manticore.cs.uchicago.edu

LACSS 2009 The Manticore Approach to Parallelism 19