scieee Open visual document viewer

A New High-Level Parallel Portable Language for Hierarchical Systems in Trasgo

Moreton Fernández, Ana,González Escribano, Arturo,Llanos Ferraris, Diego Rafael

Abstract

Producción Científica

Full text

P oceedings o he 15 h In e na ional Con e ence on Compu a ional and Ma hema ical Me hods in Science and Enginee ing, CMMSE 2015 6–10 July, 2015. A New High Le el Pa allel Po able Language o hie a chical sys ems in T asgo Ana Mo e on-Fe nandez1, A u o Gonzalez-Esc ibano1and Diego R. Llanos1 1Depa amen o de In o m´a ica, Uni e si y o Valladolid emails: [email p o ec ed],[email p o ec ed],[email p o ec ed] Abs ac Cu en ly, he gene a ion o pa allel codes which a e po able o di e en kinds o pa allel compu e s is a challenge. Many app oaches ha e been p oposed du ing he las yea s ollowing wo di e en pa hs. P og amming om sc a ch using new p og amming languages and models ha deal wi h pa allelism explici ly, o au oma ically gene a ing pa allel codes om al eady exis ing sequen ial p og ams. Using he cu en main- end pa allel languages, he p og amme deals wi h mapping and op imiza ion de ails ha o ces o ake in o accoun de ails o he execu ion pla o m o ob ain a good pe - o mance. In code gene a o s om sequen ial p og ams, p og amme s canno con ol basic mapping decisions, and many imes he p og amme needs o ans o m he code o expose o he compile in o ma ion needed o le e age impo an op imiza ions. This pape p esen s a new high-le el pa allel p og amming language named CMAPS, designed o be used wi h he T asgo pa allel p og amming amewo k. This language p o ides a simple and explici way o exp ess pa allelism in a highly abs ac le el. The p og amme does no ace decisions abou g anula i y, h ead managemen , o in e p o- cess communica ion. Thus, he p og amme can exp ess di e en pa allel pa adigms in a easy, uni ied, abs ac , and po able o m. The language suppo s he necessa y ea u es imposed by ans o ma ion models such as T asgo, o gene a e pa allel codes ha adap hei communica ion and synch oniza ion s uc u es o a ge machines composed by mixed dis ibu ed- and sha ed-memo y pa allel mul icompu e s. Key wo ds: pa allel languages, pa allel p og amming models 1 In oduc ion I is inc easingly in e es ing o gene a e applica ion p og ams wi h he abili y o au oma i- cally adap hei s uc u e and load o any gi en a ge sys em. Using cu en main- end c CMMSE ISBN: xxx-xx-xxx-xxxx-x High Le el Pa allel Po able Language pa allel p og amming echnology o his pu pose is challenging. One o he mos p omising echniques o amewo ks which au oma ically gene a e op imized lowe -le el pa allel code om exis ing sequen ial p og ams is he polyhed al model. I p o ides a o mal ame- wo k o de elop au oma ic ans o ma ion echniques a he sou ce code le el [3]. The polyhed al model is applicable o codes based on sequen ial s a ic loops wi h a ine exp es- sions. Howe e , i does no suppo dynamic loops dependen on in o ma ion no known o pa ame izable a compile- ime. On he o he hand, many success ul pa allel p og amming models and ools ha explici ly deal wi h pa allelism ha e been p oposed. en i onmen s. Message-passing pa adigms (e.g. MPI lib a ies) ha e been shown o be e y e icien o dis ibu ed-memo y sys ems. Global sha ed memo y models, such as OpenMP, In el TBBs, o Cilk, a e commonly used in sha ed-memo y en i onmen s o simpli y h ead and memo y managemen . Many pa allel p og amming models like PGAS (Pa i ioned Global Add ess Space) languages (Chapel, X10, o UPC), p esen a middle poin app oach by explici ly managing local and global memo y spaces. The PGAS language mo e ela ed o ou wo k is Chapel [1]. I p oposes a sepa a ion o domain and mapping modules o gene a e dis- ibu ed a ays. Bu , he bes communica ion agg ega ion me hods p esen ed so a o Chapel abs ac ions a e es ic ed o speci ic ope a ions, o domain mapping p ope ies. Thus, he applica ion p og amme s ill aces many impo an decisions no ela ed wi h he pa allel algo i hms, bu wi h implemen a ion issues ha a e key o ob aining e icien p og ams. Fo example, decisions abou pa i ion and locali y s. synch oniza ion/commu- nica ion cos s; g ain selec ion and iling; p ope pa alleliza ion s a egies o each g ain le el; o mapping, layou , and scheduling de ails. Mo eo e , many o hese decisions may change o di e en machine de ails o s uc u e, o e en wi h da a sizes. P oduc i e pa allel- so wa e de elopmen needs a common app oach a he p og amming le el, o simpli y he asks o implemen ing, es ing, and debugging, independen ly o he machine de ails. In his pape we p esen CMAPS, a new high-le el pa allel p og amming language o he T asgo amewo k [2]. This language suppo s a wide ange o pa allel s uc u es and applica ions. The p og ams exp ess coo dina ion a an abs ac le el. The p og amme easons in e ms o logical p ocesses using a global memo y space, no acing decisions abou g anula i y, h ead managemen , o in e p ocess communica ion. CMAPS app oach p esen s se e al ad an ages wi h ega d o: (1) polyhed al amewo ks which wo k om sequen ial codes [4, 5, 6], as i suppo s dynamic loops wi h condi ions dependen on ex- p essions in ol ing da a- alues o un ime pa ame e s and, (2) explici pa allel languages, because i makes anspa en o he p og amme he de ails ela ed o he lowe -le el p o- g amming model, o in eg a e mapping echniques o o adap he code o he a chi ec u e and de ails o he execu ion pla o m, managing only a global memo y space and, educing he code complexi y. We p esen he design guidelines o CMAPS in e ms o he equi emen s and capabili- ies o he T asgo amewo k o gene a e lowe -le el code ha adap s hei communica ion c CMMSE ISBN: xxx-xx-xxx-xxxx-x Mo e on-Fe nandez, Ana Figu e 1: S uc u e o he T asgo ans o ma ion amewo k. and synch oniza ion s uc u es o he a ge machine. In pa icula , hese guidelines impose he inclusion o in o ma ion needed o au oma ically gene a e code ha compu es exac ag- g ega ed communica ions o a ge machines including dis ibu ed-memo y a chi ec u es. The es o he pape is o ganized as ollows: Sec ion 2 p esen s he T asgo model and hei ools. Sec ion 3 desc ibes he new p og amming pa allel language. Sec ion 4 p esen s he conclusions and u u e wo k. 2 T asgo amewo k The T asgo model [2] p oposes he use o a high-le el s uc u ed and abs ac ep esen a ion o he pa allel algo i hms. I uses a es ic ed synch oniza ion model (nes ed-pa allelism) a he highe le el, le ing he ans o ma ion sys em o gene a e mo e e icien and less synch onized pa allel s uc u es a he lowe le el. The o iginal model is based on he SP (Se ies-Pa allel) p ocess model [7], and da a-dis ibu ion algeb as, p o iding clea and well-de ined seman ics [8], and allowing hie a chical composi ions. The model is ee o ace condi ions, and unexpec ed s ochas ic beha io s o dead-locks. The high-le el code uses a global iew app oach in hie a chical decomposi ions. The seman ics p o ide clea synch oniza ion poin s and hie a chical global s a es ha simpli y es ing and debugging. Figu e 1 shows he s uc u e o he T asgo ans o ma ion amewo k. The le column shows he p og am ep esen a ions, and he igh columns he ans o ma ion laye s. A on -end ansla es he inpu language o an in e nal ep esen a ion in XML. An XML ep esen a ion has been chosen due o he s anda d and powe ul ools ha exis o iden i y and loca e documen ea u es (XPa h), and o apply documen ans o ma ions (XSLT). c CMMSE ISBN: xxx-xx-xxx-xxxx-x High Le el Pa allel Po able Language These echnologies can be used o w i e in a compac o m code ans o ma ion modules. The main pa o he ans o ma ion laye is o ien ed o con e he global add ess space in o a pa i ioned add ess space. I analyses da a dependencies and builds exp essions o compu e a un- ime he communica ions needed ac oss i ual p ocesses, in e ms o he esul s o mapping and layou unc ions. The ans o med code is ew i en by a back-end ha gene a es C code wi h calls o he Hi map un- ime lib a y [9]. The esul ing sequen ial code gene a ed o he local dis ibu ed p ocess is inally il e ed h ough polyhed al ools (Plu o compile [10]) o gene a e iled and op imized pa allel code o sha ed-memo y using OpenMP ( he me hodology used o in eg a e hese echniques a he Hi map le el was desc ibed in [11]). Finally, he code is compiled wi h a na i e C compile . 3 The new pa allel p og amming language CMAPS In his sec ion we desc ibe he p oposed pa allel language ha will be used as inpu in he T asgo amewo k. This language will allow he p og amme o exp ess pa allel algo i hms in e ms o abs ac decomposi ion and mapping echniques. 3.1 Design p inciples We p esen bellow guidelines o he design o an inpu language o he T asgo amewo k. 1. The inpu language will be a coo dina ion language. Sequen ial code will be exp essed wi h a adi ional p og amming language and using un ime lib a y calls (Hi map [9]) o manage he access o he da a s uc u es. Ex ensions o a adi ional sequen ial language (new p imi i es, s uc u es and modi ie s) should be used o exp ess he coo dina ion be ween sequen ial asks. Func ions con aining coo dina ion p imi i es will be anno a ed using a new modi ie . Inside hem, i will be only possible o execu e da a modi ica ions h ough calls o sequen ial unc ions. 2. The inpu language will use a p imi i e (wi h clauses) o anno a e each sec ion ha we will be execu ed in pa allel. The p imi i e should allow o indica e an a bi a y numbe o logical p ocesses, in e ms o cons an s o exp essions, including hose exp essed in e ms o he numbe o elemen s in da a s uc u es. This p imi i e could be nes ed as many imes as needed, e en in a ecu si e way. Inside he scope o he p imi i e, a mechanism o associa e calls o o he coo dina ion o sequen ial unc ions o logical p ocesses should be p o ided. This p imi i e will imply a logical synch oniza ion poin o he p ocesses a e he compu a ion pe o med in pa allel. 3. The sequen ial unc ions will be designed o deal wi h elemen s o a bi a y g ain. Thus, i a oids he p og amme o ake decisions abou he p oblem g anula i y ac- co ding o he machine capabili ies. c CMMSE ISBN: xxx-xx-xxx-xxxx-x Mo e on-Fe nandez, Ana 4. The language should p o ide a mechanism o in oke modules ha implemen s pa i- ion policies. The inpu s will be index spaces. The ou pu will be a map o indexes o i ual p ocesses. This map can be used o: (1) pe o m a pa i ion, dis ibu ion and alloca ion o da a s uc u es o , (2) g oup and schedule logical p ocesses in o i ual p ocesses. The code should be independen o he mapping (pa i ion, dis ibu ion, alloca ion) policies. Wi h his echnique i will be possible o change he pa i ion o alloca ion policy wi hou modi y any o he pa o he code. 5. The compu a ion will ha e a single global s a e and a unique logical p ocess be o e he pa allel p imi i e. When he pa allel asks a e launched, each one has a local copy o he global s a e. In he logical synch oniza ion poin a he end o he pa allel compu a ion he global s a e is consolida ed again. To gene a e his global s a e he pa allel p imi i e mus p o ided a way o educing co ec ly di e en alues, ound in he eplica ed a iables o each logical p ocess, in o he global s a e. 6. The language should p o ide a mechanism o analyse he da a dependences be ween he unc ion calls which a e in o he scope o di e en pa allel pa s. To ind da a dependencies can be a complex ask a compile ime. The language should use anno a- ions in he unc ion de ini ion o indica e he inpu /ou pu ole o each pa ame e in he unc ion in e ace. This in o ma ion will be used o ob ain he da a dependencies. 3.2 S udy cases To show he ea u es o CMAPS in eal p og ams we will use ou cases o s udy. The Jacobi sol e is a PDE sol e using a Jacobi i e a i e me hod o compu e he hea ans e equa ion in a disc e ized wo-dimensional space. I is implemen ed as a cellula au oma a. On each i e a ion, each ma ix posi ion o cell is upda ed wi h he p e ious alues o he ou neighbo s. See CMAPS code in Fig.2 The Gauss-Seidel p og am compu es he same hea ans e equa ion desc ibed abo e, bu using a Gauss-Seidel i e a i e me hod. In his me hod, he con e gence is accele a ed using alues al eady compu ed du ing he cu en ime-s ep i e a ion ollowing sequen ial seman ics. The me hod simply uses one ma ix, wi h no copy o he old alues. Thus, when using he neighbo alues o he uppe and le ma ix posi ions, alues al eady upda ed a e used. See CMAPS code in Fig.2 The Classical Ma ix Mul iplica ion is he ypical sequen ial implemen a ion o he ma ix mul iplica ion wi h h ee nes ed loops. See CMAPS code in Fig.3 Cannon’s Algo i hm o ma ix mul iplica ion wo ks wi h a pa i ion o he ma ices in k×kpieces, equi ing no mo e han one local piece o he same ma ix a he same ime, and using a simple ci cula block shi pa e n o mo e da a ac oss p ocesses. Each ma ix-block p oduc is compu ed using he classical sequen ial algo i hm. See CMAPS code in Fig.3 c CMMSE ISBN: xxx-xx-xxx-xxxx-x High Le el Pa allel Po able Language 1/* Jacobi Sol e (Poisson equa ion): Func ion o upda e one cell elemen */ 2 oid upda eCell( in double up, in double down, in double le , in double igh , 3inou double esul , ou double di ) { 4double old = * esul ; 5* esul = ( up + down + le + igh ) / 4 ; 6*di = abs( * esul - old ); 7} 8 9/* Jacobi Sol e (Poisson equa ion): Pa allel sol e */ 10 coo dina ion oid jacobiSol e ( inou ile double M[][], 11 in in limi , in double h eshold) { 12 double inside[][] = M[1:$-1][1:$-1]; 13 Map dis ibu ion = Map( inside.shape, blocks, ec angula 2D ) ); 14 A ayMap( inside, dis ibu ion ); 15 16 double di , maxDi ; 17 loop( i in [1:limi ] and maxDi > h eshold ) { 18 ese Di ( maxDi ); 19 pa allel ( dis ibu ion ) { 20 do: upda eCell( M[ pidx(0)-1 ][ pidx(1) ], 21 M[ pidx(0)+1 ][ pidx(1) ], M[ pidx(0) ][ pidx(1)-1 ], 22 M[ pidx(0) ][ pidx(1)+1 ], M[ pidx(0) ][ pidx(1) ], 23 di ); 24 educe: MAX( di , maxDi ); 25 } } } 1/* Poisson equa ion: Func ion o upda e one cell elemen */ 2 oid upda eCell( in double up, in double down, in double le , in double igh , 3ou double esul ) { 4* esul = ( up + down + le + igh ) / 4 ; 5} 6 7/* Gauss-Seidel Pa allel Sol e */ 8coo dina ion oid gaussSol e ( inou ile double M[][], in in limi ) { 9double inside[][] = M[1:$-1][1:$-1]; 10 Map dis ibu ion = Map( inside.shape, blocks, opRec angula 2D ) ); 11 A ayMap( inside, dis ibu ion ); 12 13 loop( i in [1:limi ] ) { 14 pa allel ( dis ibu ion ) { 15 do : wai low( M[ pidx(0)-1 ][ pidx(1) ], M[ pidx(0) ][ pidx(1)-1 ] ) 16 upda eCell( M[ pidx(0)-1 ][ pidx(1) ], M[ pidx(0)+1 ][ pidx(1) ], 17 M[ pidx(0) ][ pidx(1)-1 ], M[ pidx(0) ][ pidx(1)+1 ], 18 M[ pidx(0) ][ pidx(1) ] ); 19 20 21 } } } Figu e 2: CMAPS code o wo S encils algo i hms: Jacobi sol e and Gauss-Seidel c CMMSE ISBN: xxx-xx-xxx-xxxx-x Mo e on-Fe nandez, Ana 1/* Pa allel Block Ma ix Mul iplica ion: Classical algo i hm */ 2coo dina ion oid mmP oduc Classical( in ile double A[][], in ile double B[][], 3ou ile double C[][] ) { 4Map mC = Map( C.shape, blocks, opRec angula 2D ) ); 5A ayMap( C, mC ); 6A ayMap( A, Map( A.shape, blocks, opRec angula 2D ) ) ); 7A ayMap( B, Map( B.shape, blocks, opRec angula 2D ) ) ); 8 9pa allel ( mC ) { 10 do: mmP oduc Seq( A[:][@0:@$], B[@0:@$][:], C[:][:] ); 11 } } 12 13 /* Pa allel Block Ma ix Mul iplica ion: Cannon’s algo i hm */ 14 coo dina ion oid mmP oduc Cannons( in ile double A[][], in ile double B[][], 15 ou ile double C[][] ) { 16 Map mC = Map( C.shape, blocks, opSqua e ) ); 17 A ayMap( C, mC ); 18 A ayMap( A, Map( A.shape, blocks, opSqua e ) ) ); 19 A ayMap( B, Map( B.shape, blocks, opSqua e ) ) ); 20 21 loop( i, [ 0 : max( mC.size(0), mC.size(1) ) ] ) { 22 pa allel ( mC ) { 23 do: mmP oduc Seq( dmap(A, mapidx(0),cyc(( mapidx(1) - mapidx(0) - i)) ), 24 dmap(B, cyc(( mapidx(0) - mapidx(1) - i )),mapidx(1) ), 25 dmap(C, mapidx(0), mapidx(1)) ); 26 } } } 27 28 /* Pa allel Block Ma ix Mul iplica ion: Hie a chical composi ion */ 29 coo dina ion oid mmP oduc Cannons( in ile double A[][], in ile double B[][], 30 ou ile double C[][] ) { 31 Map mC = Map( C.shape, blocks, opSqua e ) ); 32 A ayMap( C, mC ); 33 A ayMap( A, Map( A.shape, blocks, opSqua e ) ) ); 34 A ayMap( B, Map( B.shape, blocks, opSqua e ) ) ); 35 36 loop( i, [ 0 : max( mC.size(0), mC.size(1) ) ] ) { 37 pa allel ( mC ) { 38 do: mmP oduc Classical( dmap(A, mapidx(0),cyc(( mapidx(1) - mapidx(0) - i)) ), 39 dmap(B, cyc(( mapidx(0) - mapidx(1) - i )),mapidx(1) ), 40 dmap(C, mapidx(0), mapidx(1)) ); 41 } } } Figu e 3: CMAPS code o a mul ile el Ma ix Mul iplica ion. c CMMSE ISBN: xxx-xx-xxx-xxxx-x High Le el Pa allel Po able Language 3.3 No a ions and de ini ions A T asgo inpu p og amming language can be designed in se e al ways, as a as i complies wi h he T asgo model seman ic (which de i es in he guidelines o he sec ion 3.1). We ha e designed a coo dina ion language ex ension o classical C language named CMAPS. CMAPS has been c ea ed o exp ess pa allel algo i hms in a simple, explici and in ui i e way o C p og amme s. 3.3.1 Domains, mapping policies and da a s uc u es The CMAPS language p o ides he na i e da a ypes o he o iginal sequen ial language (C), and ile ypes o mo e complex da a s uc u es, such as a ays. Manipula ion o na i e da a ypes is di ec . Da a in iles will be managed a un- ime using he Hi map lib a y [9]. Domain decla a ions and subselec ion o ile domains, a e exp essed wi h an ex ended C a ay no a ion simila o he Fo an90 colon no a ion inside squa e b acke s [begin:end:s ide]. The language p o ides a Map cons uc o . I ecei es h ee pa ame e s: An index domain o be mapped, he name o a pa i ion and layou echnique, and he name o a i ual opology building policy. Layou and opology echniques a e plug-in modules in he un- ime sys em [9]. Map objec s anspa en ly map an index domain o he de ices o a a ge sys em (guideline 4). The A ayMap unc ion is used o map a ile o i ual p ocesses acco ding o he esul s in he Map objec . A mapped a ay can only be used in o a pa allel sec ion. Selec ions o a mapped a ay uses indexes ela i e o he local index space o he pa assigned by he map o he i ual p ocess in he pa allel sec ion. The language suppo s a symbol o ep esen he las index o he local index space in a dimensional domain ($). In he Jacobi and Gauss example in Fig. 2, he inne pa o a ma ix (wi hou he bo de ows and columns) is selec ed. The language also suppo s a symbol o exp ess da a accesses using he index space o he o iginal ile (@). See an example in line 10 o he Classical ma ix mul iplica ion in Fig. 3. To pe o m he classical do p oduc mul iplica ion, we need he da a o he whole ow a A and o a whole column o B. We can exp ess da a accessed ela ed wi h he global a ay using he symbol @. 3.3.2 CMAPS Func ions CMAPS suppo s wo di e en kinds o unc ions, sequen ial and coo dina ed. Bo h will use a compulso y modi ie o he o mal pa ame e s ha makes explici hei inpu /ou - pu beha iou . These modi ie s will be used o de i e he dependencies be ween pa allel asks (guideline 6). All da a modi ica ion s a emen s should be encapsula ed in o classical sequen ial C unc ions, ha a e called om he coo dina ion code. Each call o a sequen- ial unc ion is done in a logical p ocess. The sys em could g oup se e al logical p ocesses oge he o build a single p ocess ha execu es he code in he co esponding unc ion calls c CMMSE ISBN: xxx-xx-xxx-xxxx-x Mo e on-Fe nandez, Ana e icien ly. Coo dina ion unc ions a e he unc ions whe e pa allelism and synch oniza ion can be exp essed. They a e speci ied adding he coo dina ion modi ie in i s de ini ion. Nes ed pa allelism is exploi ed by encapsula ing each pa allelism le el in a coo dina ion unc ion (guideline 1). T asgo allows o gene a e codes wi h se e al le els o pa allelism. Figu e 3 shows he implemen a ion o he wo ma ix-mul iplica ion algo i hms. Cannon’s algo i hm [12] can be used a he uppe le el o educe he memo y usage, and he classical one a he sha ed memo y le el o educing synch oniza ions ime. Making a hie a chical composi ion o he wo algo i hms in CMAPS is i ial. Simply subs i u ing he name o he sequen ial unc ion in he Cannon’s algo i hm (see Fig.3 line 38) by he name o he Classical’s algo i hm. 3.3.3 Coo dina ion p imi i es CMAPS suppo s in o he coo dina ion unc ions se e al kind o p imi i es. An uni ied pa allel p imi i e and i e a i e (loop,while) and condi ional p imi i es (i ,else). S a emen s such as assignmen s a e no allowed in he p edica es o he coo dina ion p imi i es. The loop p imi i e subs i u es he unc ionali y o classical o p imi i e wi h a es ic ed syn ax o ypical coun e -con olled loops (see line 17 o Jacobi sol e in Fig 2). The pa allel p imi i e pe o ms compu a ions in pa allel (guideline 2). The pa allel p imi i e ecei es a Map objec as pa ame e . I spawns as many logical p ocesses as indica ed in he domain used o build he Map objec and hey a e assigned o i ual p ocesses acco ding o he in o ma ion con ained in he Map objec . Vi ual p ocesses a e au oma ically scheduled o eal p ocesso s ollowing he policies used o build he Map objec . The p imi i e con ains do clauses. In hei scope we can w i e coo dina ion code wi h unc ion calls o be execu ed by he logical p ocesses (see line 20 o Jacobi sol e in Fig.2). They can be ollowed by op ional educe clauses. Each logical p ocess wo ks in a i ual copy o he iles. The ans o ma ion sys em is esponsible o gene a ing copies o da a pa s, and empo al bu e s, i needed o p ese e he pa allel seman ics; e en when se e al logical p ocesses a e mapped o he same eal p ocess, and consequen ly should be execu ed sequen ially in he same eal p ocess scope (guideline 5). The do clauses may be ollowed by wai low(...) clause o exp ess da a- low es ic ions. Fo example, in he Gauss-Seidel s udy case each logical p ocess needs o wai o he da a p oduced by i s uppe and le logical p ocesses (see line 15 o Fig. 2). The calls in he do clauses o a pa allel p imi i e can use wo ypes o indexes o build subdomains exp essions and selec he sub iles used as eal pa ame e s in he unc ion calls, ha lead o locali y. Fi s , pidx(<dim>), which is he dimensional index o he logical p o- cess. Logical p ocesses a e g ouped au oma ically in i ual p ocesses by T asgo amewo k, a oiding he p og amme o ake decisions abou he p oblem g anula i y (guideline 3). The second is midx(<dim>). The exp ession midx(<dim>) ep esen s he index o he i ual p ocess in he ac i e p ocesses opology in a chosen dimension. I is possible use he unc ion c CMMSE ISBN: xxx-xx-xxx-xxxx-x