Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en...

12
COMPILACIO PER A SUPERCOMPUTADORS JORDI TORRES I ED UARD AYGUADE Centre Europeu de Paral•lelisme de Barcelona Departament d'Arquitectura de Computadors . Universitat Politecnica de Catalunya . Gran Capita , s/n. Modul D6 , 08071 Barcelona 1. IN'I'RODUCCIC Estero a tocar de 1'any 2000. Al nivell muncial ens trobem immersos en una cursa per la productivitat, la qualitat i la innovacio. El software i les seves aplicacions, cada cop mes complexes, demanen una capacitat i velocitat de ca]cul cada vegada mes importants. Una ciencia que preten donar resposta a aquestes necessitate es la que es coneix per SUPERCOMPUTACIO. S'associa el terme de Supercomputador a aquells cmputadors que han estat dissenyats per a poder executar gran nombre d'operacions per segon, sobre nombres codificats normalment en coma flotant, i en cada epoca, son els que efectuen major nombre d'operacions per segon. Al principi dels anys 70, la velocitat punta d'aquestes maquines estava per sota dels 100 MFlops (108 operacions/segon). En l'actualitat, existeixen supercomputadors amb velocitats punta que ronden els GFlops (lOl l operacions/segon). Aquesta velocitat sostinguda, junt amb la gran capacitat de les memories i dels periferics d'entrada/sortida, permetra de resoldre un conjunt d'aplicacions que fins ara han estat considerades com grans reptes per les administrations d'Europa, els Estats Units d'America i el Japo [GrCh92,Zane92]. La supercomputacio no es una disciplina senzilla sing ben al contrari, el resultat de la i nterrelacio de diverses arees de recerca: Aplicacions, Llenguatges d'Alt Nivell, Compiladors, Metodes Numerics, Sistemes Operatius, Arquitectura de Computadors i Disseny del hardware basic [VaLL92]. L'avanc en el camp de la Supercomputacio es possible gracies a una estreta col•laboracio entre grups de recerca d' aquests temes. Els supercomputadors han esdevingut una eina fonamental per a la recerca cientifica. Els computadors han estat durant anys, eina de suport i analisi per a la realitzacio d'experiments cientifics, pero els supercomputadors poden fer molt mes que aixo: fan tambe un paper primordial en el mon cientific, ja que permeten construir i verificar models en la recerca de teories que per exemple puguin descriure fenomens naturals . Aquests complexos models matematics normalment requereixen [Bull. Sac Cat . Cicuc.], Vol. XIV, Num. 2, 1994

Transcript of Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en...

Page 1: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

COMPILACIO PER A SUPERCOMPUTADORS

JORDI TORRES I EDUARD AYGUADECentre Europeu de Paral•lelisme de Barcelona

Departament d'Arquitectura de Computadors . Universitat Politecnica deCatalunya . Gran Capita , s/n. Modul D6 , 08071 Barcelona

1. IN'I'RODUCCIC

Estero a tocar de 1'any 2000. Al nivell muncial ens trobem immersos en unacursa per la productivitat, la qualitat i la innovacio. El software i les seves aplicacions,cada cop mes complexes, demanen una capacitat i velocitat de ca]cul cada vegadames importants. Una ciencia que preten donar resposta a aquestes necessitate es laque es coneix per SUPERCOMPUTACIO.

S'associa el terme de Supercomputador a aquells cmputadors que han estatdissenyats per a poder executar gran nombre d'operacions per segon, sobre nombrescodificats normalment en coma flotant, i en cada epoca, son els que efectuen majornombre d'operacions per segon. Al principi dels anys 70, la velocitat puntad'aquestes maquines estava per sota dels 100 MFlops (108 operacions/segon). Enl'actualitat, existeixen supercomputadors amb velocitats punta que ronden elsGFlops (lOl l operacions/segon). Aquesta velocitat sostinguda, junt amb la grancapacitat de les memories i dels periferics d'entrada/sortida, permetra de resoldre unconjunt d'aplicacions que fins ara han estat considerades com grans reptes per lesadministrations d'Europa, els Estats Units d'America i el Japo [GrCh92,Zane92].

La supercomputacio no es una disciplina senzilla sing ben al contrari, elresultat de la i nterrelacio de diverses arees de recerca: Aplicacions, Llenguatges d'AltNivell, Compiladors, Metodes Numerics, Sistemes Operatius, Arquitectura deComputadors i Disseny del hardware basic [VaLL92]. L'avanc en el camp de laSupercomputacio es possible gracies a una estreta col•laboracio entre grups derecerca d'aquests temes.

Els supercomputadors han esdevingut una eina fonamental per a la recercacientifica. Els computadors han estat durant anys, eina de suport i analisi per a larealitzacio d'experiments cientifics, pero els supercomputadors poden fer molt mesque aixo: fan tambe un paper primordial en el mon cientific, ja que permetenconstruir i verificar models en la recerca de teories que per exemple puguin descriurefenomens naturals . Aquests complexos models matematics normalment requereixen

[Bull. Sac Cat . Cicuc.], Vol. XIV, Num. 2, 1994

Page 2: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

.'k, (0111'1L.1010/'FG'.I o(77R((.IIPf' l.

trilions d'operacions per a esser resolts, i era impossible resoldre'ls en un tempsraonable amb els computadors tradicionals.

D'entre I'ampli ventall d'arees en que es pot aplicar la potencia dels super-computadors hi podem trobar: la hiologia, la recerca energetica, l'astrofisica, laenginyeria aeroespacial, la prospecc16 petrolifera, el processat d'imatge, la industriad'automoci6,1'enginyeria genetica... En contret cal destacar les aplicaclons que sonconsiderades corn els grans reptes per diferents administracions [GrCh92] quetenen programes especifics orientats a situar-les en la posic16 de capdavanteres enel desenvolup<unent d'aquestes tecnologies. Les que mes destaquen son: nurdelatdel clima, turbulencies de fluids, models globals, ocea-atmosfera, cromodinamicaquantica, disseny de nous components qufmics, disseny de nous materials, dissenyintegrat d 'avions i coaxes.

2. AI{ QurrF:crulu DEL S SUPE:RCOMPUT ADORS

Dos dels factors principals que hall contribuit d'una manera fonamental enI'i ncrementde la potencia dels supercomputadors son: la tecnologiai la coneurrencia.

Els avencos de la tecnologia , rant en materials utilitzats en la construccio dedispositius de commutac16 , capacitat d'integracio , aixi corn en la capacitatd'encapsular els dispositius en circuits integrats , estan permetent de reduir el tempsde calcul de funcions extraordinariament complexes. El dissenvador es qui, enfuncio de I'estat de la tecnologia , decideix que utilitzar per a obtenir la velocitat decalcul desitjada junt amb altres parametres de disseny com son mida , consum, ...

Per concurrencia s'enten la possibilitat d'efectuar diverses operacionssimultanianicnt en un mateix instant. Les tecniques basiques s'anomenen segnlentacioi paral lelisrne [ HoJe8l ].

La tecnici de segmentac16 consisteix a descompondre una determinadaoperacio en N suboperacions a realitzar en fases o etapes diferents . D'aquestamanera , una operacio es realitza a mesura que la informacio involucrada en aquestaoperacio travessa les N etapes . En un mateix instant de temps tenirn N operacionsdiferents en progres (cadascuna d'elles en una fase diferent). Aquesta tecnica potaplicar-se (a) a] nivell d ' execuci6 d ' instruecions (aixo dona lloc ids anomenatsprocessadors escalars segmentats i supersegmentats ) o (b) al nivell de operacionssobre dades (aixo dona Iloc als anornenats computadors vectorials segmentats).

D'altra Banda , per paral•Ielisme s'enten la realltzac16 concurrent de ctlculs,i;uals o diferents , sobre diferents conjunts de dades per part de diverses unitatsfuncionals. La tecnica de paral.lelisme tambe pot esser aplicada (a) al nivelld'execuc16 d'instruccions (donant Iloc als processadors superescalars o amb diversosfluxos d'execuci6 , computadors Very Long Instruction Word i sistemesmultiprocessadors ) o (b) al nivell d'operacions sobre dades (els anomenatsprocessadors en array).

En l'actual1tat , els supercomputadors mes utilitzats es basen en una arquictecturade multiprocessador en que cada element de proces es un processador vectorial

[B, tll. Soc. Cat . Cicnc], Vol. XIV , Num. 2, 1994

Page 3: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

/OR[)l1 O RR/, - 11XARUAI '0,(!;IhE 23-

segmentat. Aixo s'ha esdevingut en part pel bon us de la tecnologia que permetenaquests sistemes i en part per la facilitat de detectar, explotar i expressar elparal•lelisme vectorial que ofereixen la major part de les aplicacions en enginyeriai ciencia. Algun d'aquests sistemes son els supercomputadors CrayY-MP o ConvexC3. El nombre de processadors va de 2 a 8 i tots ells comparteixen una memoriadividida en moduls per a augmentar 1'amplada de banda del subsistema dememoria. En aquest tipus d'arquitectura la xarxa d'interconnexio es un factor quelimita molt I'escalabilitat. Aquest es el motiu principal que dona forca als sistemesamb memoria distribuida, on cada element de proces disposa de la seva propiamemoria, cosa que permet una escalabilitat mes elevada del sistema. La topologiade la xarxa d'interconnexio defineix coin estan connectats entre si els elements deproces (lineal, malla, hipercub, ...). Alguns dels mes coneguts son el Supernode de16 processadors escalabre fins a 256 0 l'Hipercub d'mtel amb 1024 processadors.

De tota manera els reptes fins a 1'any 2000 necessiten una potencia de calculdificilment aconseguible ambles implementations actuals. Tots els fabricants estanabocats al disseny de sistemes anomenats Massive Parallel Processors MPP. En ells,la combinacio jerarquica de les fiolosofies de memoria compartida i distribuida,juntament amb l'us de processadors superescalars i un gran nombre d'elements deproces es preveu que donara pas a la potencia de calcul que es necessita.

3. INTERS DIES SUPERCOMPII ADORS

En general hi ha diverses alternatives per a programar un supercomputador pertal d'explotar-ne la seva potencia. Totes esten en funcio del grau de coneixementque el prograrnador d'aplicacions to de I'arquitectura del seu supercomputador.

Una primera opcio es la de programar l'aplicacio usant un Ilenguatge ambconstructions que permetin especificar la concurrencia que existeix en 1'aplicac16.La tasca de detectar i saber explotar eficientment aquesta concurrencia per no essergens Pacil i requerir un coneixement profund de I'arquitectura del supercomputador.

Una segona opcio es lade programarl'aplicacio usant un llenguatge sequencialconventional i deixar al compilador la feina de generar el programa concurrentequivalent. L'us de Ilibreries amb un nucli basic de funcions ja programades (i pertaut adaptades a 1'arquitectura en questio) complementa aquesta opcio.

Un dels principals problemes amb que ens trobem en disposar d'unsupercomputador es el de convertir els codis de les aplicacions existents (milions delinies de programes ja escrites, els anomenats "dustydeckprograms") per tal de poder-les executar de forma eficient sobre el nou supercomputador. A primera vista aixosignificaria transformar manualment tots els programes amb la consequent perduade temps i el risc d'errors.

Els SUPERCOMPILADORS, que fan una reestructurac16 automatica delcodi sequencial, han estatdesenvolupats, entre d'altres motius, perapodersolucionaraquest problema. Aquests compiladors analitzen programes sequencials per tal dedetectar i explotar de forma eficientla concurrencia inherent al programa sequencial.

[Ruth . Soc. (At. Cicnc], VOI. XIV, Num. 2, 1994

Page 4: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

' s ,,, ( () IP/I 1(7U /'/1,' I ^(/'I/,( OMP( I.II)OR,

La utilitzaci6 dels reestructuradors automatics va mes enlla del simple fetde podertransformarels "dustydeckprograms". Toti I'existenciade llenguatgesconcurrents sembla avanratj6s continuar programant amb un llenguatgesequencial 1 transformar-lo despres d'una forma automatica en una vcrs16concurrent. Dues de les raons mes icceptades son les seguents: d'una Banda,la programacio de les aplicacions en un llenguatge sequencial independent deI'arqultectura permet la facil portabilitat entre diferents arquitectures, mentreque les versions concurrents normalmentson forca dependents de I'arquitecturadel anell supercomputador. D'altra Banda, es mes dificil desenvolupar,depurar i mantenir aplicacions concurrents que Ies sever versions equivalentssequencials a causa de la forta dependencia amb I'arquitectura.

4. ENTORNS 1)F. PROCRAti1ACI0 PARA1 I I I.A

En general, la complexitat de la rclaci6 entre I'estructura dels algorismes,l'arquitectura del supercomputador i les estrategies de transformacioimpossibilita unasoluci6 optima global 1 ens obliga a utilitzarcertes heuristiques.En aquest sentit son molts els factors que indiquen que una bona mancra detractar la reestructuraci6 es mitjancant sistemes interactius, on I'usuari pot fercertes decisions i donar informaci6 al sistema que no pot esser obtinguda demanera automatica a partir del programa sequencial.

EIs elements principals en tin entorn de programacio paral•lela (figura 1)acostumen a esser: (a) llenguatges amb constructions especifiques que permetinexpressar el paral•lelisme de les aplicacions i els compiladors associats, (b)Ilibreries amb operations basiques eficientment implementades, (c) eines

LAN para/ lpl'vectorial LAN sequencial

I

y

Compilador

Reestructurador Llibreries

Mesurar

Muntador

Depurar Visualitzar

Fig. 1. Eines mes comunes dins tin entorn de programacio paral•lela.

IButll. Soc. Cat . Cicnc.l, VOL XIV, Num. 2, 1994

Page 5: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

/OR!)l /0/?!?! -l7)1;1/??):IIY(('.1l)] 1s9

d'analisi i reestructuracio de programes i (d) eines que permetin la depuracio

d'aplicacions paral•leles, la mesura de i'eficiencia en una determinada arqui-

tectura i eines de visualitzacio. A continuacio es realitza una breu descripcio

de cadascuna d'aquestes eines.

4.1. Llenguatges de programacio

Es d'esperar que en un entorn de programacio paral•lela s'ofereixin al

programador d'aplicacions diferents tipus de Llenguatges, incloent-hi tant

Llenguatges sequencials com parallels.L'alternativa mes utilitzada en el desenvolupament de Llenguatges parallels

ha estat la d'estendre els Llenguatges seqfiencials convencionals existents

incorporant-hi constructions i primitives orientades a especificar 1'execuci6

concurrent (vectorial i/o paral•lela) d'operacions. Aquestes extensions pretenen

obtenir el maxim profit de les caracteristiques d'aquestes arquitectures per als

calculs a que estan orientades.Per exemple, per a programar un sistema multiprocessador amb memoria

compartida (SMM) es necessari descompondre els calculs a realitzar en un

conjunt de tasques que puguin executar-se en parallel i de forma asincrona.

En aquests sistemes, les lades es troben en una memoria comuna i son

accessibles per qualsevol dels processadors del sistema. Cada processador es

cuida d'executar una o mes d'aquestes tasques en funcio d'una estrategia de

planificacio. A la figura 2 es veu el proces de programacio d'aquest tipus de

sistemes.

-----------------------------Dades

------------------

Dades

tascal tasca2 tasca n

Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema

multiprocessador amb memoria compartida.

jI3udl. Soc. Cat. Cicnc.1, Vol. XIV, Num. 2, 1994

Page 6: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

Vol ( M 111/1, 1 ^^ /I//,,( W/N / lo)/"^

Les construccions introduides als llenguatges segiiencials permeten alprogramador daplicacions: (a) caracteritzar les variables utilitzades, (b) lacreacio i moniun-itzacio de tasques, (c) especificar bucles parallels i (d)sincronitzar de forma explicita I'exccucio de les tasques generides. Cal dir queel paral^lelisme porencial en les aplicacions cientifiques i denginveria es trobaen calculs que es fan de forma repetida un gran Hombre de vegides sobre unaesu-urntra de dadcs regular opus matriu. Per aixo, les consn-uccions dellllenguatges concurrents orientades a expresser la concurrencia dell buclesopus UC) son les mes importants. Les mes utilitzades son I)OALL iI)OACROSS. En un hucle DOALI, totes les ireraccions del bucle poden esterexecutades en parallel i en qualsevol ordre. No obstant aix^^, en un bucleDC)ACROSS no pot iniciar-se una determinida iteracio del bucle fins quetotes les interiors hagin ester iniciades. Aquest ultim s'utilitza gain existeixendependencies enrre ireracions del bucle, cosy que ficilita la insereio deprimitives de sincronirzacio.

Ln el cis dun sisrema mulriprocessador amb membria disrribuida(DMM) no es suficient descompondre els calculs a realitzar, rambe cs necessaridistribuir les dadcs enrre les memories locals dell elements de proces. La figure3 mostri el proces de programacio dayuests opus de sistemes.

^.3dt^^,

dadcs ndadesl dadcs 2

calculsM1 M2 n

1 ^ Xarxa Interconnex^6

P1 P^ Pn

T \

rascal tasca2 tasca n

Fig. 3. [^escomposicio d'un problema en tasques i distrihucio de les dadcs per a la seva

execucid en un sistema mulriprocessador amh membria discribuida.

Fls llenguatges de programacio segiiencial son esresos amb primitives quepermeten, a mes, I'cspecificacio de la distribucio de dadcs a realitzar. Aixi perexemple el Fortran I) [FHKK92], el High Performance Fortran [Digi92] i elVienna Fortran [ZBCM92], enrre d'altres, inclouen primitives que permeten.

^&ull. So:. (^a^ . ('icnc'I. A'ol. SIB', ti'iim. _', 199^i

Page 7: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

/URUI I oRRl 0 I UI . URI) . I }Y, l IN .111

- definir la topologia d'interconnexio del sistema,- descompondre una matriu en blocs rectangulars,- definir quin processador emmagatzema en la seva memoria local un

determinat bloc.Tambe permeten especificar la comunicacio entre elements de proces,

tant al nivell de comunicacio global ( tipus BROADCAST) com entre parellesd'elernent de proces ( tipus SEND i RECEIVE).

La majoria de les vegades la programacio d'aplicacions paral•leles requereixun coneixement del hardware sobre Cl qual s'executara l'aplicacio. Per aixo, laportabilitat es una de les caracteristiques que es fan dificils en la fase demantenimient d'una aplicacio quan el programador explicita el paral • lelisme.

En conclusio , si es tenen en consideracio aquests aspectes , la programacioen un llenguatge sequential continua tenint vige'ncia i es una bona alternativaper a programadors no experimentats en la supercomputacio.

4.2. Llibreries basiques

El programador ha de disposar d'un nucli basic de rutines programades de

forma eficient pet supercomputador que executara les aplicacions. Normalment

son una bona ajuda de claredat, portabilitat, modularitat i mantenimentdels codis,

ja que amb el temps han esdevingut forca estandarditzades. Existeixen nombroses

Llibreries especialitzades en diferents ambits. Moltes d'elles, com poden esser per

exemple un conjunt de rutines basiques d'algebra lineal (UNPACK [DBMS79],

BLAS [LHKK79]. ...), estan en l'actualitat programades per a un atnpli venta11 decomputadors. Aquestes rutines alhora han esdevingut elements de comparacio de1'eficiencia dc diferents arquitectures.

4.3. Eines d anhlisi i reestructuracio

Com ja s ' ha vist , una de les alternatives actuals a la programacio paral.lelaconsisteix en la codificacio d'aplicacions en un llenguatge sequential conventional,deixant at compilador la tasca de detectar i explotar la concurrencia inherent delprograma. En la figura 4 es mostra en 1 inies generals aquest proces de reestructuracio.

En general son tres las fases en que pot considerar-se dividit aquest proces

de reestructuracio:- detecci6 i normalitzacio de bucles: en aquesta fase s'apliquen diferents

tecniques convencionals dins el camp de la compilacio i altres de mesespecifiques orientades a facilitar el posterior proces d ' analisi dedependencies i optimitzacions de codi. Dins aquesta fase tambe espoden fer mesures estatiques de caracteristiques dels bucles ( corn perexemple el paral • lelisme i la longitud vectorial maxima [ALTL90]).

[Butll. Sot Cat . Cicnc.], Vol. XIV, Num. 2, 1991

Page 8: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

Programa Especificat

en LAN segiiencial

(I) Deteccio / Normalit2acio de bucles

(iQ An2lisi de dependencies / optimitzacions preliminary

(iii) Optimitzacions:

- independents de I'arquitectura

-dependents de I'arquitectura

-dependents de la maquina real

Programa Especificat

en LAN parallel

o vectorial

l^ig. /+. F;ue^ rn el protrs do rrestrucniracio de hucles.

- ^znalisi de deperlderaciPS entre sefrtencies del brtcle.• en aquesta fuse esdeterminer ley relations d'ordre entre operations que es realitzen enel bucle i que hen de preserver-se si es desitja mantenir la semantics delprograms segiicncial original.

- optirrrrtz^rcioru: aplicacici de tecniques especifiques amb la finalistd'exn-cure el paral•lelisme inherent de 1'aplitacio i la seva expressio enfornui d•un programs especificat en un llengttatge parallel o vectorial[KKPL81,PaWo86]. Aquestes transformations pollen esserindependentes de 1'arquitectura, dependents de I'arquirectura oesptcifiques del supercomputador sobre el que s'ha d'execur^r 1'aplicacio.

I':I proces de reesu-ucnrracid per a sistemes amb membria distribuidacomports, a mss de generar rasques paral•Ieles, l'optimitzaciG de la uhicacio deley dales en Ies mem<^ries locals dell elements de proces. I,a penalitzacio ques'ha de pagan pel fet d'accedir a informacic^ no local es molt gran, i es moltimportant la bona ubicacio de Its lades.

En aquests darters ant's hen aparegut .^lgunes eines d'aquestes, rant per a1'ambit universitari (Parafrase II en la Umverisn^ of Illinois [KKLW80,PGHL89]o PFC i ParaScope en la University of Rice [AIKe87,BKKM89]) tom per aPambit comercial (supercompiladors dell supera>mputadors actualstom perexemple KAP de Kuck and Associates [Kuek88] o VAS'I^ de Pacific Sierra).

La interatcio d'aquestes eines amb 1'usuari adquireix una elevadaimportancia ja que pot guiar i loner informacio additional a I'eina dereesrructuraci6. Aixi, per exemple, I'usuari pot for^ar la vectoritzacio o la

^Rutll. tioc. Gat. Cicnc.J, Vol. AID'. Num. ?. 1994

Page 9: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

nL'l)lIY)RNI•^ ll)I IRI).I)Y,l IN 'it

paral•lelitzaci6 en situations en que CI compilador no disposa de Iota lainformaci6 que necessita per a assegurar la validessa seinantica de lareestructuraci6.

En el CEPBA s'esta treballant en un entorn anomenat GTS per a laparal•lelitzaci6 automatica de bodes Cant per multiprocessadors amb memoriacompartida [Aygu89,ATLL91 ] corn per multiprocessadors amb memoriadistribuida [TALL91 ].

4.4. Eines de depuracio, mesura i visualitzacio

La depuracio d'una aplicaci6 paral-lela es una fase important en tot elproces de programaci6. Una aplicacio semanticament pot esser correcta peroaixo no vol dir que sigui eficient en esser executada per un supercomputadord'unes determinades caracteristIqLies. Les eines de mesura proporcioneninformacio sobre 1'aplicaci6, ja sigui monitoritzant la seva exeCLIC16 C11 Lillsimulador o en la maquina real.

Les mesures sobre un programa sequential permeten al programadoridentificar aquelles parts del prograrna que s'executen amb mes frequencia oconsumeixen la major part del temps d'execuci6 (per sentencia, bucle oprocediment) o la frequencia amb que son agafades certes branques ensentencies conditionals. Amb mesures similars sobre la versi6 paral-lcla, espossible identificar aquelles parts que requereixen un major esforc en les Easesanteriors del title de realitzaci6 de I'aplicaci6.

Els entorns de programacio paral-lela estan suportats normalment pereines grafiques que permeten visualitzar rota la informacio clue FLISLiarinecessita per a portar a terme el seu treball (visualitzaci6 del codi segiiencial,dependencies, el resultat de I'aplicaci6 d'una determinada tecnica dereestructuracio...) [ BKKM89]. D 'altra banda, es requereixen sofisticades einesde visualitzacio i grafics si es desitja obtenir el maxim profit del volumd'informaci6 que pot obtenir-se nionitoritzant I'execuci6 d'una aplicacioparal•lela.

5. EE FUI'UR USES SUPERCOMI'II.AI)ORS

Tot i 1'elevat nombre d'estudis al voltant d'aquest tema, els resultatsactuals no son els desitjats. Els supercompiladors actuals no son capacos detransformer tots els prograrnes de forma eficient. La qualitat del resultat depentotalment de I'estructura de 1'algorisme i de l'arquitectura de la maquina.Mentre que en arquitectures vectorials multiprocesadores (amb memoriacompartida) o arquitectures en array ja s'ha aconseguit dissenyar compiladorsque generin un codi acceptablement eficient en forca casos, en eis Massive

IBurll. Soc. Cat . Cicnc.], Vol. XIV, Num. 2, 1 `)94

Page 10: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

'r( ( 0,11/111, 1( /()1,/ R.I 71'17 R( 0,11/11 '1' 11)()h'I

Parallel Processors no passa el mateix. I precisament 1'estat inicial dell compi-

ladors per a aquestes rnaquines es una de les restriccions mes fortes enI'actualitat per a facilitar el desenvolupament I Nis d'aquestes potentsarquitectures.

En [EHL91 ] es presentee els resulrtts obtinguts pel supercompilador deI'Alliant FX/HO en una serie de programes representatius de les necessitatscientifiques del moment. En general el codi parallel es poc mes rapid que la

seva versio sequencial, en algun cas fins 1 tot es pltjor. El problemanormalment radica en el fet que les diverses tccniques de reestructuracio

automatica que coneixem actualment nomes son eficients per a un conjunt

reduit de problemes. Ara be, hi ha estudis [EHLP91, EIBI91 ] que demostren

que es poden obtenir mes bons resultats en Cl futur, aprofundint en I'analisidels codis. De tet, amb molt poques modificacions, les tecniques actuals espoden estendre a mes casos.

Ri '\1

Vist I'auge que esta prevent la computacib com a cilia hasica de trehall en tenies de

recerca cientifica, un dels principals reptes tccnics que ens trobem avui es el d'aprendre a

aprofitar la gran capacitat de calcul que ens ofereixen els actuals supercomputadors.

En aquesta lima van el que es concix per cities de suport al desenvolupamentde software

per it supercomputadors. L'objectiu principal d'aquestes eincs es tans el de donar assistencia

en el proces de formulacio d'algorismes parallels, com cl de mecanitzar cl proces de traducciri

dell algorismes concebuts pels cientifica en una efficient implementacio sobre I'arquitectura

especifica del supercomputador utilitzat.

En aquest article es presenten breument les arquitectures que donee cos als

supercomputadors, i es fa on repas de I'estat actual de les cities de suport al desenvolupament

de software per a supercomputadors.

Illuill. Soc. Cat. (,icnc.j, Vol. XIV, Mon. 2, 1994

Page 11: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

to l,'l )! 1012/,'I l1)I ' I/a) I1(,( I1)1 _'ii

REFERENCIES

[AIKe87] J.R. AI LIN and K. KI:NM:DY, "Automatic Translation ofFORTRAN Programs to Vector Form", ACM Trans. onProgramming Languages and Systems, Vol. 9, num. 4, octubre,1987.

[ALTL90] E. AYC;uAUI", J. LAio,uzr,v, J. Tolzlu:s, J.M. LI.,vlilrl;v and M.VALERO, "Parallelism Evaluation and Partitioning of NestedLoops for Shared Memory Multiprocessors", 3rd Workshop onProgramming Languages and Compilers for Parallel Computing,Irvine California USA, agost, 1990.

[A"FLL91 ] E. AY(;UAl) , J. ToRRI:s, J. LAI3AIrr;^, J.M. LLABERIA and M.VALERO, "Balanced Loop Partitioning using GTS", Languagesand Compilers for Parallel Computing, Springer-Verlag, 1991.

[Aygu89] E. AYGUAI)F., "Paralelizacion Automdtica de Recurrencias enProgramas Secuenciales Numericos', 'I'esis Doctoral, Dep.d'Arquitectura de Computadors, Univ. Politecnica de Catalunya,octubre, 1989.

[BKKM89] V. BAI.ASUNDARAM, K. KENNEDY, U. KRHMi i , K. McKENIty andJ. SUBHLOK, "The ParaScope Editor: An Interactive ParallelProgramming Tool", Proc. of the Supercomputing'89, Reno-Nevada, novembre, 1989.

[DBMS79] J.J. DONGARRA, J.R. BUNCH, C.B. MOI.i R and G.W. S rl:lwART,"LINPACK Users'Gride" SIAM, Philadelphia, Pa., 1979.

[Digi92] Digital Equipment Corporation, Massively Parallel SystemsGroup, "High Performance Fortran: Proposal", gener, 1992.

[EiBl91 ] R. EI(;I:.NMANN and E. BLUME, "An Effectiveness Study ofParallelizi rig Compiler Techniques", Center for Supercom poringResearch and Development, Univ. of Illinois at Urbana-Champaign, CSRD report no. 1090, maig, 1991.

[EH 1-1191 ] R. EI(;I.NMANN, J. Hoil i IN(;GR, Z. Li and I). PADUA, "Experiencein the Automatic Parallelization of Four Perfect-BenchmarkPrograms", Center for Supercomputing Research andDevelopment, Univ. of Illiniois at Urbana-Champaign, CSRDreport no. 1193, agost, 1991.

[FHKK92] G. Fox, S. HIRANANDANI, K. KENNEDY, C. KoIJ.E.REI., U. Kiisiii,C.W. Tst:NC, and M.Y. Wu, "Fortran D Language Specification",

JButll. Soc. Cat . Cicnc.], Vol. XIV, Num. 2, 1994

Page 12: Compilació per a supercomputadors · tascal tasca2 tasca n Fig. 2 Descomposicib d'un problema en tasques per a la seva execuclo en un sistema multiprocessador ambmemoria compartida.

'16 tIt7u/YG'.11 NA( .ll/'(

Rice University, Department of Computer Science, ReportCOM P TR90-141, gener, 1992.

[GrCh92] "Grand Challenges: High Performance Computing andCommunications, The FY 1992 U.S. Research and DevelopmentProgram", Committee on physical, Mathematical andEngineering Science U.S. 1992.

[I loJe81 ] R.W. Ho( KNeti and C.R. JISSHOPi "Parallel ComputersArchitecture, Programming and Algorithms", Adam 11ilgerLtd,Bristol, 1981.

[ KKPL81 ] D.J. KuCK, R.H. Kui IN, D.A. PADUA, B. LFASt I:P and M. WOI ire.,"Dependence Graphs and Compiler Optimizations", Proc. ofthe 8th ACM Symposium on Principles of ProgrammingLanguages, gener, 1981.

[^uck88] KuCK & Associates Inc., "KAP User's Guide", Champaign-Illinois, 1988.

[LHKK79] C.L. I.AWSON, R.J. HANSON, D.R. KINCAID and F.T. KIiouo,"Basic linear algebra subprograms for Fortran usage". ACMTrans. Math. Softw. 3, 3, pp. 308-323, 1979.

[PaWo86] D.A. PAI)uA i M. WOLIIT, "Advanced Compiler Optimizationsfor Supercomputers", Communications of the ACM, vol. 29, n.12, desembre, 1986.

[PGHL891 C.D. Poiy( IIRONOPOULOS, M. GIRKAR, M.R. H,u;HI(mm, C.L.Li:i:, B. I.I:uNC;, D.S(:uOU-I-FN, "Parafrase-2: An Environment forParallelizing, Partitioning, Synchronizing and SchedulingPrograms on Multiprocessors", Proc of 1989 Int'l Conf. onParallel Processing, Vol II. agost, 1989.

[-1-ALL91 ] [. Tomas, E. A),(;t :vnl, J. I..vB vR i ;v, J.M. LI AI3I:I:Lv and M.Vu.I:izo, "On Automatic Loop Data-Mapping for Distributed-Memory Multiprocessors", Proceedings ofThe Second EuropeanDistributed Memory Computing Conference, Miinchen-Alemanya, abril, 1991.

[VaI.L92] M. VALL?RO, J.M. Li ;vi3l:rl;v, J. LABARI A, " SupCrcomputaci6n:Una ciencia interdisciplinar", Jornades de Supercomputacid aCatalunya, 27 i 28 maig, 1992.

[7,BCM92] H.l.I:titA, P. Blze:/.ANV, B. CIIAPMIAN, P. Mi:Hlzoriz;v and A.S(iiIvyyII), "Vienna Fortran- A Language Specification: Version1.1 ", ICASE Internal Report 21, ICASE, Hampton, VA, 1992.

[Gane92] P. LvNI:, "HPCC IN EUROPE", Highly Parallel ComputingSystems seminar, 1992IBM EUROPEINSI-ITU'LEOberlech,Austria, juliol, 1992.

[Botll. Soc. Cat. Cic-.J, Vol. XIV, Mini. 2, 1994