14
MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools Jeffrey S. Vetter M. C. Smith, P. C. Roth O. O. Storaasli, S. R. Alam www.csm.ornl.gov /ft

MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

  • Upload
    ina

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools. Jeffrey S. Vetter M. C. Smith, P. C. Roth O. O. Storaasli, S. R. Alam www.csm.ornl.gov/ft. In addition to general purpose processors, they include specialized devices in a tightly-coupled system FPGAs - PowerPoint PPT Presentation

Citation preview

Page 1: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

MAPLD Reconfigurable Computing Birds-of-a-Feather

Programming Tools

Jeffrey S. Vetter

M. C. Smith, P. C. Roth

O. O. Storaasli, S. R. Alam

www.csm.ornl.gov/ft

Page 2: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

2Vetter, Smith, Roth, Alam, Storaasli

Multi-Paradigm Computing Systems are Quickly Becoming a Reality In addition to general purpose

processors, they include specialized devices in a tightly-coupled system

– FPGAs– Multithreaded accelerators– Graphics processors– Game chips– Digital signal processors

New designs coming– DARPA HPCS– DARPA PCA – TRIPS, MONARCH,

etc.

Multiple vendors are designing, building, selling multi-paradigm systems & components

– IBM– SGI– Cray– SRC Computers– ClearSpeed– Linux Networx– Others…

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P V

P PFPGA

GPU

GPU

GPU

GPU P PFPGA

P PFPGA

P PFPGA

VV V

P V VV V

P V VV V

P V VV V

LegendP: commodity processorV: vector processorGPU: graphics processing unitFPGA: field programmable gate array

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P PP P

P V

P PFPGA

GPU

GPU

GPU

GPU P PFPGA

P PFPGA

P PFPGA

VV V

P V VV V

P V VV V

P V VV V

LegendP: commodity processorV: vector processorGPU: graphics processing unitFPGA: field programmable gate array

For computational scientists to realize the benefit offered by MPC systems, we must develop a consistent, user-friendly infrastructure that provides both portability and performance across devices and platforms.

For computational scientists to realize the benefit offered by MPC systems, we must develop a consistent, user-friendly infrastructure that provides both portability and performance across devices and platforms.

Page 3: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

3Vetter, Smith, Roth, Alam, Storaasli

We Propose the Multi-Paradigm Procedure Call as a Solution to Improve Productivity Multi-paradigm Procedure Call (MPPC), for exploiting diverse

devices within a MPC system– Software development kit for MPPC provides ease of programming– Open protocol for infrastructure communication that can be shared

by vendors, developers, and application users MPC runtime system (MPCRS), including

– a runtime management system and – directory service, to discover and bind applications to specific devices

within a single MPC system Policies for scheduling applications onto the devices of MPC system

– Blocking, non-blocking, work queue Transparency/Portability across a diverse set of existing and future

devices– “Write once, run on any MPC system”– Vendor and application neutral protocol

Optimizations for different architectures exploit their benefits– E.g., memory model

Page 4: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

4Vetter, Smith, Roth, Alam, Storaasli

Design of Multi-Paradigm Procedure CallGOAL: allow application nodes to discover, request,

and schedule services from registered MPPC devicesStubs in the compiled code represent the generic

MPPC devices – Handle the interface with the MPC runtime system

(MPCRS) to send requests and receive results– Generated with Interface Definition Language (IDL)

•automates the creation of the interface software between the application, device, and resource manager

Synchronous operation like normal procedure call; however, threads may be used to perform multiple MPPCs concurrently….

call funcX()….

call funcY()

funcX ( )

funcY ( )

funcX()

MPPC interface specified in IDL

Host processor

funcY()

Device A / FPGA

Device B / IBM CELL

Page 5: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

Bonus Slides

Page 6: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

6Vetter, Smith, Roth, Alam, Storaasli

Broad Consensus on Programming these Devices

From 2005 DSB Report on Microchips…

From Federal Plan on High End Computing, 2004“…high-level programming tools should eventually include support for non-traditional HEC systems, for example, based on reconfigurable FPGA processors or PIMs.”

From DARPA HPCS program…

Page 7: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

7Vetter, Smith, Roth, Alam, Storaasli

MPC present programming hurdles…

Use different programming systems

Assume at most two types of devices in the system

Explicit management of data movement and parallelism

Use simplistic scheduling algorithms

Link statically to available resources

Etc.For computational scientists to realize the benefit offered by MPC systems, we must develop a consistent, user-friendly infrastructure that provides both portability and performance.

For computational scientists to realize the benefit offered by MPC systems, we must develop a consistent, user-friendly infrastructure that provides both portability and performance.

Page 8: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

8Vetter, Smith, Roth, Alam, Storaasli

Benefits of Multi-Paradigm Procedure Call

Ease of programming increasingly complex MPC environments

– High productivity computing systems for scientific applications

Transparency/Portability across a diverse set of existing and future devices

– “Write once, run on any MPC system”– Vendor and application neutral protocol

In much the same way that the development of the Remote Procedure Call (RPC) in the 1980s enabled thousands of users to begin programming complex distributed systems, we believe that our Multi-paradigm Procedure Call will provide the same benefit for users of MPC systems.

Page 9: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

9Vetter, Smith, Roth, Alam, Storaasli

MPPC Scheduling and Resource Allocation

Allows the MPCRS to make intelligent scheduling decisions for competing services

– Selects the most effective service for the application based on available devices

– Policy selection driven by techniques including empirical measurements, historical data, and performance models

– Initial design will use a lookup table of empirical data to select the most effective device

– Later designs will incorporate more elegant methods such as analytical performance models and run-time performance monitoring

Exploit concurrency by scheduling multiple devices in parallel taking into account synchronization requirements

Page 10: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

10Vetter, Smith, Roth, Alam, Storaasli

Host processor Runtime Manager

Device A Device B Device C

Boot phase

Boot

dev

iceBo

ot d

evice

Boot

dev

ice

Regi

ster

Regi

ster

Regi

ster

Boot

man

ager

Acce

pt re

ques

ts

Application build

Com

pile

with

MPP

C Li

brar

y

Link

with

MPP

C Li

brar

y

Application Execution Phase

Load

app

licat

ion

Que

ry M

PPC

man

ager

Resp

onse

to th

e qu

ery

Load

MPP

C lib

rarie

s

Sche

dule

MPP

C re

sour

ces

Sche

dule

MPP

C de

vices

MPPC Sequence of Operations

Sche

dule

dev

ice C

Ackn

owle

dge

Rese

t, lo

ad b

inar

y

Run

MPP

C pr

otoc

ol

Notif

y m

anag

er

Notif

y ap

plica

tion

MPP

C ca

ll, tra

nsfe

r dat

a an

d sy

nchr

onize

Rece

ive d

ata

and

com

pute

Retu

rn re

spon

se

Rece

ive re

spon

se, r

etur

n M

PPC

call

Notif

y m

anag

er Rele

ase

devic

e C

TIME

Page 11: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

11Vetter, Smith, Roth, Alam, Storaasli

MPPC Runtime System (MPCRS)

Manages discovery, binding, scheduling of MPC nodes

– At boot time, devices register their capabilities with the server

– Each device will require a small kernel that boots, configures, and communicates with the server

Provides a generalized interface to all MPC resources on the system

Will use empirical or analytical performance models to select the device that maximizes the benefit to cost ratio

Application on host MPPC stubMPPC Runtime Manager

MPPC stubDevice B

Page 12: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

12Vetter, Smith, Roth, Alam, Storaasli

MPPC Work QueueMPPC Dynamic Scheduling

Scheduling and resource management dynamically service requests using a work-queue

– Devices are not statically allocated to an application for its entire lifetime

– MPC devices service requests from multiple application nodes

Advantages– Fine grained scheduling of

device improves efficiency– Transparent load-balancing

Challenges– Fairness of scheduling– Security– More complex data movement– OS, TLB management

App ARequest 3

App CRequest 3

App ARequest 2

App BRequest 4

App ARequest 1

MPC Device

Page 13: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

13Vetter, Smith, Roth, Alam, Storaasli

Optimizations for MPPC Operation

Zero-copy memory semantics on platforms that support globally addressable memory

– Cray Rainier– SGI UV, RASC

MPPC call aggregation to reduce overhead for calling MPC devices

– Use static analysis to collect and aggregate sequences of MPPC calls

Page 14: MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools

14Vetter, Smith, Roth, Alam, Storaasli

Summary

Multi-Paradigm Computing systems are quickly becoming a reality

– Demonstrated by wide vendor support and customer interest– Need high productivity programming support for

computational scientists to make use of these systemsPropose the Multi-paradigm procedure call (MPPC) as a

solution to improve productivity on MPC systems– Uses familiar programming techniques enabling high

productivity computing systems– Provides runtime system and resource management for

scheduling and resource discovery– Is a open protocol that can be supported by vendors,

developers, & users