AMD und PathScale treten OpenACC Standards Group bei

Im Rah­men der gera­de in New Orleans statt­fin­den­den Super­com­pu­ting Con­fe­rence 2014 (SC14) haben AMD und der Com­pi­ler-Spe­zia­list PathSca­le ihren Bei­tritt zur Open­ACC Stan­dards Group bekannt­ge­ge­ben. Open­ACC ist eine im HPC-Umfeld sehr belieb­te API zur Pro­gram­mie­rung von Clus­tern und Super­com­pu­tern, die ähn­lich wie OpenMP auf Direk­ti­ven basiert und ursprüng­lich 2011 von CAPS, Cray, NVIDIA und PGI spe­zi­ell für den Ein­satz von Beschleu­ni­ger­kar­ten erschaf­fen wur­de. Seit­her mau­ser­te sich die Open­ACC-API auch durch den Bei­tritt von immer mehr For­schungs­ein­rich­tun­gen und Uni­ver­si­tä­ten zu einem wich­ti­gen Stan­dard für die Pro­gram­mie­rung von Höchst­leis­tungs­rech­nern. Ent­wick­ler kön­nen mit Hil­fe der Direk­ti­ven par­al­le­li­sier­ba­re Tei­le des Quell­codes für den Com­pi­ler mar­kie­ren, die für die Aus­la­ge­rung auf die Beschleu­ni­ger geeig­net sind. Hier­zu gehö­ren vor allem Schlei­fen, bei deren Mar­kie­rung auch wei­te­re Details defi­niert wer­den kön­nen, damit die Aus­füh­rung auf spe­zi­fi­schen Beschleu­ni­gern wirk­lich effek­tiv erfolgt. Ent­wick­ler kön­nen sich somit auf die Algo­rith­men und deren Imple­men­tie­rung in die im HPC-Umfeld gebräuch­li­chen Pro­gram­mier­spra­chen For­tran, C und C++ kon­zen­trie­ren, wäh­rend der Com­pi­ler die eigent­li­che Par­al­le­li­sie­rung ent­spre­chend der Ziel­hard­ware vornimmt.

AMD hat­te bereits 2012 die Bedeu­tung von Open­ACC erkannt und gab Ende Okto­ber 2012 eine Zusam­men­ar­beit mit The Port­land Group (PGI) bekannt, damit deren Open­ACC-Com­pi­ler auch Code für AMDs APUs und dedi­zier­te Gra­fik­kar­ten erzeu­gen kann. Aller­dings wur­de die­se Initia­ti­ve durch den Auf­kauf von PGI durch NVIDIA kon­ter­ka­riert. Den­noch ran­gen sich die Unter­neh­men dazu durch, das begon­ne­ne Pro­jekt zu einem erfolg­rei­chen Ende zu füh­ren. Im Febru­ar 2014 erschien dann die ers­te sta­bi­le Ver­si­on des Open­ACC-Com­pi­lers von PGI, die Unter­stüt­zung für AMD-GPUs bie­tet. Hier­zu erzeugt der Open­ACC-Com­pi­ler basie­rend auf den Direk­ti­ven Open­CL-Code, der dann über AMDs Open­CL-Lauf­zeit­um­ge­bung aus­ge­führt wird. Zwi­schen­zeit­lich trieb AMD in Koope­ra­ti­on mit SUSE und der Open-Source-Gemein­de die Inte­gra­ti­on eines HSA-Back-Ends in die GNU Com­pi­ler Coll­ec­tion (GCC) vor­an, wel­ches mit Hil­fe von OpenMP-Direk­ti­ven in der Ver­si­on 4.0, die bereits seit vie­len Jah­ren zur Par­al­le­li­sie­rung auf Mehr­kern- und Mul­ti-Pro­zes­sor­sys­te­men zum Ein­satz kom­men, eben­falls die Aus­la­ge­rung von Berech­nun­gen von der CPU auf Beschleu­ni­ger unter­stüt­zen soll. AMD und SUSE ori­en­tie­ren sich hier­bei an den von Open­ACC genutz­ten Direktiven.

Greg Stoner, Sr. Direc­tor of Deve­lo­per Tech­no­lo­gy, Pro­fes­sio­nal Gra­phics bei AMD betont in sei­nem State­ment die Vor­tei­le von Open­ACC bei der Pro­gram­mie­rung von hete­ro­ge­nen Rechen­sys­te­men. Das ver­ein­fach­te, auf Direk­ti­ven basie­ren­de Pro­gram­mier­mo­dell mit nur einem ein­zi­gen Source-Code lege eine soli­de Grund­la­ge, um die Vor­tei­le hete­ro­ge­ner Rechen­sys­te­me nutz­bar zu machen. Zudem ist Stoner neu­es Mit­glied des Open­ACC Board of Direc­tors gewor­den und will in die­ser Funk­ti­on bei der Wei­ter­ent­wick­lung des Stan­dards behilf­lich sein.

The HPC com­mu­ni­ty is dri­ving the need for rich hete­ro­ge­neous com­pu­ting solu­ti­ons to bet­ter meet cus­to­mer per­for­mance and power needs. With this tran­si­ti­on the­re is a strong need for a rich, sim­pli­fied pro­g­ra­ming model to sup­port new hete­ro­ge­neous appli­ca­ti­on deve­lo­p­ment and pull in lega­cy C/C++/Fortran appli­ca­ti­ons. Open­ACC 2.0 via its sin­gle source direc­ti­ves-based pro­gramming model puts in place a solid foun­da­ti­on to dri­ve key bene­fits of a hete­ro­ge­neous hard­ware plat­form. AMD is loo­king for­ward to working with the Open­ACC orga­niza­ti­on to help it to con­ti­nue to evol­ve this important pro­gramming standard.”

Oscar Her­nan­dez, Prin­ci­ple Inves­ti­ga­tor am Oak Ridge Natio­nal Labo­ra­to­ry (ORNL), sieht durch den Bei­tritt von PathSca­le zur Open­ACC Stan­dards Group einen gro­ßen Vor­teil in der Diver­si­fi­zie­rung der ver­füg­ba­ren Com­pi­ler, wel­che Unter­stüt­zung für Open­ACC bie­ten. Zudem beab­sich­ti­ge das ORNL den PathSca­le-Com­pi­ler für die Nut­zer des eige­nen Cray-XK7-Sys­tem (Titan) ver­füg­bar zu machen.

It is important in any HPC deve­lo­p­ment envi­ron­ment to have access to a varie­ty of com­pi­lers. Some­ti­mes one com­pi­ler will exhi­bit bet­ter per­for­mance on a par­ti­cu­lar code than ano­ther, or behave in a more desi­ra­ble way. We ful­ly intend to make PathSca­le available to deve­lo­pers crea­ting appli­ca­ti­ons for ORNL’s Titan Cray XK7 supercomputer.”

Quel­le: Pres­se­mit­tei­lung