Анализа на комутативност; EWSTпреведи

Резиме

Паралелните машини ветуваат значително зголемување на перформансите, дозволувајќи им на повеќе процесори да извршуваат истовремено различни делови од пресметката. Програмерите традиционално развиваат апликации за паралелни машини кои користат експлицитно паралелни јазици. За разлика од сериските програмски јазици, експлицитно паралелните јазици имаат комплексен програмски модел кој се карактеризира со појави како блокирање, недетерминистичко извршување и, во случај на машини за пораки, потреба за директно управување со протокот на податоци со пресметка. Очигледните програмабилни предности на парадигмата на секвенцијалниот императив за програмирање го инспирираа развојот на техники за анализа и компајлери дизајнирани за автоматско паралелизирање на сериските програми.

комутативност

Анализата на комутативност е рамка за статичка анализа за откривање на операциите на шатлот. Две операции се движат кога генерираат ист резултат, без оглед на редоследот по кој се извршуваат. Анализата на комутативност отстранува многу ограничувања на постојните пристапи засновани на зависност од податоци Наместо да го задржува релативниот редослед на индивидуалните читања и да пишува во индивидуални мемориски зборови, анализата на комутативност ги агрегира и податоците и пресметките во единиците за големи зрна. Потоа, статички анализирајте ја пресметката при оваа грануларност за да откриете кога деловите во пресметката на излезот го генерираат истиот резултат, без оглед на редоследот по кој тие изведуваат. Ако се потребни сите операции за извршување на одреден компјутерски шатл, компајлерот може автоматски да генерира паралелен код.

Овој пристап има неколку интересни својства. Бидејќи анализата на префрлување не се заснова на информации за топологијата на манипулираните структури на податоци, компајлерот што користи анализа на преклопување не треба да ги анализира деловите на кодот што ја градат структурата на податоците. Анализата на преклопноста е соодветна за нецелосни пресметки, како што се апликации што ракуваат со постојани податоци (на пр., Објектно-ориентирани апликации на бази на податоци) или апликации што манипулираат со географски дисперзирани податоци (на пр., Мобилни пресметки на светската мрежа). ) Во овие случаи, кодот што првично ја создал структурата на податоците можеби не е достапен или повеќе не постои. Анализата на комутативност е исто така особено погодна за пресметки кои манипулираат со графикони.

Овие експериментални резултати се многу охрабрувачки. Овие апликации се многу динамични по природа - или манипулираат со софистицирани структури на податоци засновани на покажувачот или презентираат високо достапни модели за пристап до податоци. Искористувањето на паралелизам со груби зрна во апликации со овие карактеристики е препознаено како многу тежок проблем. Не сме свесни за која било друга техника за составување или составување што може да извлече значителни количини на истовременост за овие пресметки. Покрај тоа, позитивните експериментални резултати обезбедуваат конкретни докази за практичното значење на анализата на комутативност како техника за автоматско составување на паралелизацијата.