Composable Parallel Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Composable Parallel Programming

Description:

Title: Multiprocessor Chip for Modular Programming Author: Jack Dennis Last modified by: dennis Created Date: 9/14/2002 7:01:33 PM Document presentation format – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 10
Provided by: JackD156
Category:

less

Transcript and Presenter's Notes

Title: Composable Parallel Programming


1
Composable Parallel Programming
Any parallel program can be used, without change,
as a component of a larger parallel program A
can be used to build B B and C to build D.
2
Composable Parallel Programming
Q
Why is it not possible today?
A
Parallel Programs make Resource Decisions!
Which Processors? How is Data Distributed?
Q
Why cant a Compiler do it?
A
Must Look at the Entire Program!
Cant Respond to Run-Time Changes!
3
What can we learn from Sequential Computing?
Q
A
Two Powerful Concepts
Procedures
Objects
Goal
Generalize for Multi-Core Computing!
4
Nested Sequential Procedure Activations
call
A waits while B executes
local variables
stack
Address Space of Program
5
Nested Parallel Procedure Activations
A continues while others execute concurrently!
Q
How to Allocate Locals? A Stack no longer works!
Use a Tree Structure Allocate in Heap The Cactus
Stack
A
A
D
C
B
6
General Object Implementation
Sequential Computing
Multi-Core Computing
stack
O2
O1
address space
heap
To avoid complex address translation all objects
must reside in a common global address space.
O2
O1
Distributed memory
7
Composable Parallel Programming
What it requires
Efficient Heap Management
Fine-Grain Scheduling of Threads
Q
Can efficient Heap Management be Implemented in a
Multi-Core Computer?
A
Yes! With the right hardware - Global
Addressing - Built-in Garbage Collection
8
Composability
  • Current multiprocessor computers do not support
    composition of parallel programs
  • Using a parallel program as a component of a
    larger parallel program generally requires
    understanding and modifying the internal
    mechanisms of the component.
  • This is true because programmers are given the
    responsibility for planning the management of
    processors and distribution of data.

9
Requirements for Composability
  • Means for flexible and fast run-time management
    of processor and memory allocation.
  • Hardware-supported memory allocation and garbage
    collection.
  • Fine-grain scheduling of threads.
  • Architectural support for a memory model that
    satisfies principles of modularity
  • Context Independence
  • Data Generality
  • Hierarchy
Write a Comment
User Comments (0)
About PowerShow.com