• No results found

An Hybrid MPI/Stream Programming Model for Heterogeneous High Performance Systems

N/A
N/A
Protected

Academic year: 2021

Share "An Hybrid MPI/Stream Programming Model for Heterogeneous High Performance Systems"

Copied!
22
0
0

Loading.... (view fulltext now)

Full text

(1)

An Hybrid MPI/Stream Programming

Model for Heterogeneous High

Performance Systems

Emilio P. Mancini, Gregory Marsh, Dhabaleswar K. Panda

{mancini, marshgr, panda}@cse.ohio-state.edu

(2)

Outline

• Introduction

• The MPI , Stream and Hybrid programming models • Architecture of the hybrid framework

• Case study: a financial application • Conclusions

(3)

Motivation

• The increased number of nodes in modern computational systems introduces implicit heterogeneity:

– For example, they can use different levels of switches • It is difficult to use different computational cluster at the

same time with the same parallel program (clusters of

clusters)

• We want to study a way to exploit the locality in computational clusters, and in clusters of clusters

(4)

Motivation • Two connected clusters have different latencies and bandwidths (depending on the source and the

destination):

– Inter-core – Inter socket

– Level of the switch – Inter cluster 19 U 3 U 2 U 2 U 4 U 4 U 4 U 13 U 3 U 2 U 4 U 4 U

(5)

Motivation and problem statement

• MPI proposes a flat computational model that can well exploit the locality

• The stream models, with the light coupling between computational units: it is useful for heterogeneous networks

• This paper we study how to integrate MPI and Stream programming models in order to exploit network locality and topology

• In this paper we present a framework which integrates the two models.

(6)

Outline

• Introduction

• The MPI , Stream and Hybrid programming models

• Architecture of the hybrid framework • Case study: a financial application

(7)

MPI and Stream models concepts

• A stream can be described as an unbounded set of data • A series of “kernels” process each element of the stream • The Kernel’s inputs and outputs are streams

Kernel Kernel Kernel

Stream

Stream Stream

Stream Stream

MPI proc. MPI proc. MPI proc.

point to point

collective communication

• An MPI program is a set of autonomous processes that exchange data through message passing

(8)

Stream model

• The data model is modeled as transient data streams (not persistent relations)

• They arrive continuously in unpredictable way, and in

unbound streams

(9)

The hybrid model

• In the hybrid model a subset of kernels can be mapped on a set of MPI processes;

• Or, from another point of view, a set of MPI processes can be transformed as a stream kernel.

(10)

Outline

• Introduction

• The MPI , Stream and Hybrid programming models

• Architecture of the hybrid framework

• Case study: a financial application • Conclusions

(11)

The launching process

• The launcher requires a description of the whole system, and synchronization of MPI and sequential kernels in different nodes

• An XML file describes the task graph

• From the XML file the launcher dynamically produces MPI hostfiles and startup scripts

• At launch time, every kernel registers itself with the middleware or polls the stream autonomously

(12)

The hybrid framework sequence diagram

Stream Launcher MPI Launcher MPI Kernel Sequential kernel

Run Run Run Streams middleware Open stream Open stream Put Put Get Get Parallel End End

Close stream Close stream

Complete MPI application

(13)

The hybrid framework architecture

• The launcher starts both stream kernels and MPI applications • The core is a

modularized

communication API

• A common interface allows to interact with different underlying protocols

• The graph management module builds a view of the application tasks

(14)

A simple example

int main (...) {

osf_KernelContext_t *kctx; osf_Init(...);

osf_RegisterKernel(0, OSF_KRNTYP_POLLING,

OSF_KRN_STATELESS, SourceKernel, &kctx); osf_RegisterKernel(1, OSF_KRNTYP_POLLING,

OSF_KRN_STATELESS, FilterKernel, &kctx); osf_StartStreams();

osf_Finalize(); }

The main function registers the kernels, and starts the streams

(15)

A simple example

osf_Result_t SourceKernel(osf_KernelContext_t *ctx) { static osf_Stream_t *s = NULL;

if (s==NULL)

osf_Open(&s, OSF_STR_OUT, 1); ...

record = sin(t)+sin(4+2*t);

osf_Put(s, &record, sizeof(record) ); return OSF_ERR_SUCCESS;

}

(16)

A simple example

osf_Result_t FilterKernel(osf_KernelContext_t *ctx) { static osf_Stream_t *sIn = NULL;

if (sIn==NULL)

osf_Open(&sIn, OSF_STR_INPUT, 0); ...

res = osf_Get( sIn, &x, sizeof(double), &receiv ); return OSF_ERR_SUCCESS;

}

A filter kernel gets the data from a stream, elaborates them, and eventually, puts them in another stream

(17)

Outline

• Introduction

• The MPI , Stream and Hybrid programming models • Architecture of the hybrid framework

• Case study: a financial application

(18)

Case study: a financial simulation application

Double-ended queues with pending orders at

that price level.

min_ask: Lowest offered selling price. All orders at and above this price are ask type. max_bid: Highest offered

buying price. All orders at and below this price are bid type. 0 OrderBook Vector 999 450 451 452 547 548 549 ... 453 ... 546 ... orders in orders in orders out orders out • The application simulates a stock • It generates random orders • A matching engine compares offers, bids and quantities • When it elaborates

an order, it sends a confirmation

(19)

Case study: a financial simulation application MPI applic ation Hy brid applic ation

• The application has 4 tasks

• The hybrid version uses both MPI and Stream primitive to communicate

• The stream kernels are not synchronized with one another

(20)

Case study: a financial simulation application

• The experiment was lead on a single

cluster

• The hybrid version shows a better execution time • The improvement varies from 5% to 32% (simulating 30,000 orders/s)

(21)

Conclusions and future directions

• We proposed a way to exploit the locality using a hybrid Stream/MPI programming model

• We presented the prototype of a hybrid framework, and validated it using a financial simulation

• We plan to experiment this approach using clusters of clusters

• We plan to integrate the framework in the message queue of MPI middlewares

(22)

Thank you

An Hybrid MPI/Stream Programming Model for

Heterogeneous High Performance Systems

References

Related documents

There are two EDIFACT messages that can be used for Intra EC Trade Statistics Supplementary Declaration data:.. EDCS EDIFACT· Technical Interface Specification Version 6.0 Part

These isolates consisted of 21 Foc isolates representative of the different geographic areas, the Cavendish cultivars grown in South Africa and the 24 VCG tester isolates..

Chlorophyll a (Chl a), pigment composition, particulate organic carbon, cell numbers, and photosynthetic characteristics were studied in Arctic diatoms (Thalassiosira

This study deals with zooplankton communi- ties of Ghorajan Beel, a floodplain lake of the Brahmaputra river basin of lower Assam, with special reference to monthly variations

an additional 800 million people. The positive outcomes are endless: With a robust regional trade system powering advanced international trade, and with sustained

‘Structural investigation of hydrous phosphate glasses.’ Physics and Chemistry of Glasses: European Journal of Glass Science and Tech- nology Part B , 60 , pp..

The convergence of wealth distribution and industrialization, due to the growing role of labor income, imply a gradual decline of bequest taxation, but the asymmetry in the

™ Coordinate or consolidate the transportation services of four of the current service providers: Northern Dutchess Caregivers Coalition, Friends of Seniors, North East