Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Средства автоматизации распараллеливания программ (курсовая).pdf
Скачиваний:
40
Добавлен:
28.06.2014
Размер:
319.91 Кб
Скачать

Средства автоматического

распараллеливания

Несмотря на препятствия, стоящие на пути исследователей проблем автоматического распараллеливания программ, активно ведутся работы в этом направлении какзарубежными учеными, так и отечественными. Среди существующих средств автоматического и полуавтоматического распараллеливания программ наиболее известны следующие комплексы.

BERT–77

BERT 77 (или BERT) программный инструмент, автоматически конвертирующий последовательные FORTRAN программы в параллельные для вычислительных систем с распределенной памятью. BERT производит программный код, совместимый со стандартной моделью передачи сообщений, и поддерживает PVM и MPI. BERT предполагает использование анализа для оказания помощи в общей буферизации памяти, поддерживаемой производителями оборудования. Как и большинство других инструментов преобразования, BERT предоставляет две важные функции:

1) обнаружение независимых фрагментов программы, способных выполняться параллельно;

2) повторное кодирование обнаруженных фрагментов, но в параллельной версии. В отличие от многих других инструментов преобразования последовательных программ в параллельную форму, BERT анализирует независимыефрагменты программ, чтобы убедиться, что они действительно могут выполниться параллельно. BERT также учитывает, что общая производительность выполнения программы зависит от того, насколько эффективно независимые фрагменты программы могут выполняться на разных процессорах параллельно. Без учета времени вычисления нет никакой гарантии, что полученная параллельная форма программы будет эффективна. [8]

Для определения эффективности параллельных программ BERT включает в себя планировщик, обнаруживающий параллелизм и генерирующий участки программы. На рис. 1 показано, на каком этапе действует планировщик. BERT-планировщик требует, чтобы любаяраспараллеливаемаячасть выполнялась эффективно. В случае, если какой-либо последовательный фрагмент не удается преобразовать к параллельной форме, выполняющейся эффективно, BERT-планировщик преобразованияпо умолчанию не производит.

7

 

 

 

 

 

FORTRAN-77

распараллеливания

 

программ

 

программа

 

 

 

допускающих распараллеливание

допускающих распараллеливание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

распараллеливания

 

 

 

 

 

 

 

участка (планировщик)

 

 

параллельной форме

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

параллельной форме

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

программа (эффективность

 

 

 

 

 

 

 

 

 

 

программа (эффективность

 

 

 

распараллеливания

 

 

распараллеливания

 

 

 

не гарантируется)

 

 

гарантируется)

 

 

Рис. 1. ПреимуществоBERT переданалогичными средствами распараллеливания

 

 

 

 

программнал чиепланировщика.

Также BERT учитывает особенности архитектуры вычислительного комплекса,

регулируя зернистость распараллеливания.

 

 

 

 

Основываясь на своем опыте, разработчики учли, что последовательные программы

зачастую пишутся не в самой удачной форме для дальнейшего распараллеливания.

Часто в них присутствуют рекурсивные и циклические зависимости,

препятствующие распараллеливанию программы. BERT обеспечивает решение этой

проблемы посредством быстрого и эффективного метода анализа и преобразования

последовательных FORTRAN-77 программ к параллельному представлению.

Ниже

приведены особенности и преимущества BERT:

 

 

 

 

 

 

распараллеливание циклов с процедурой вызовов с помощью мощного

 

межпроцедурного анализа;

 

 

 

 

 

анализ эффективности распараллеливаниявсех циклов;

 

поддержка параллельных задач;

 

 

 

 

 

 

предварительная оценка производительности.

 

 

8

 

 

 

 

 

Эффект, который можно ожидать после применения BERT в течение нескольких

часов:

можно узнать, работает ли параллельная программа эффективно и что нужно

сделать для увеличения эффективности;

можно определить, какие циклы можно распараллелить, а какие нельзя;

можно выяснить, какой вклад вносит каждый цикл в общее время расчета;

 

ликвидация проигрышных стратегий распараллеливания;

Использование программы в течение нескольких дней, по заверению разработчиков,

способно

:

 

дать твердое понимание «параллельного характера»программы;

 

определить, возможно ли преобразование циклов с зависимостями к

параллельной форме;

 

запустить эффективные преобразования программы в параллельную форму.

К очевидным

недостаткам BERT-77 можно отнести:

 

поддержка одного языка (FORTRAN-77) в то время как чаще используют

C/C++;

коммерческий продукт (компания Paralogic), бесплатно доступна Lite-

 

BERT –

 

версия.

 

FORGExplorer

FORGExplorer – графический браузер Fortran-программ.

FORGExplorer SMP и FORGExplorer DMP средства распараллеливания Fortran-

программ для SMP иMPP-платформ, работающие на основе базы данных FORGExplorer. Является коммерческой разработкой компании Applied Parallel Research. [7]

Kuck Accelerator Package

KAP (Kuck Accelerator Package) оптимизирующий препроцессор Fortran/C-программ с обнаружением параллелизма. Коммерческий продукт, разработка компании Kuck & Associates.

Visual KAP, Visual KAP for OpenMP - визуальные средства автоматического распараллеливания Fortran-программ. [8]

ДВОР

ДВОР это диалоговый оптимизирующий распараллеливатель программ, разработанный на мехмате Южного федерального университета. Эта распараллеливающаясистема вобрала в себя опыт исследовательской Открытой распараллеливающейсистемы [4] и предназначена для распараллеливания

9

программ с процедурных языков (C, Forttan). В основе ДВОР лежит высокоуровневое представление, позволяющее генерировать код на различные вычислительные архитектуры. Высокий уровень внутреннего представления также удобен для диалоговых преобразований программ. Одновременно с с распараллеливателем разрабатываются «приложения»: библиотеки программ пофинансовой математике, криптографии и ACELAN (по механике и пьезокерамике).

ДВОР находится в открытом доступе, любой желающий может посетить сайт, загрузить файл с последовательной программой и получить сгенерированную параллельную модификацию программы.

В качестве эксперимента была загружена элементарная программа на C – перемножение двух матриц.

#define N 1000

int main()

{

int A[N][N], B[N][N], C[N][N]; int i, j, k;

for (i=0; i<N; i++) for (j=0; j<N; j++)

{

A[i][j] = i+j; B[i][j] = i*j; C[i][j] = 0;

}

for (i=0; i<N; i++) for(j=0; j<N; j++)

for (k=0; k<N; k++)

C[i][j] += A[i][k] * B[k][j];

return 0;

Системе} было указано сгенерировать параллельную OpenMP-модификацию этой программы. Результат генерации:

int main()

{

int A[1000][1000]; int B[1000][1000]; int C[1000][1000]; int i;

int j; int k;

#pragma omp parallel for

for (i = 0; i < 1000; i = i + 1)

{

#pragma omp parallel for

for (j = 0; j

< 1000; j = j + 1)

{

 

A[i][j] = i

+ j;

B[i][j] = i

* j;

}

C[i][j] = 0;

10

 

 

 

}

#pragma omp parallel for

for (i = 0; i < 1000; i = i + 1)

{

#pragma omp parallel for

for (j = 0; j < 1000; j = j + 1)

{

for (k = 0; k < 1000; k = k + 1)

{

C[i][j] = C[i][j] + A[i][k] * B[k][j];

}

}

}

return 0;

}

 

 

 

С распараллеливанием простой программы на OpenMP ДВОР справился (см. табл. 1).

Однако при встрече сболее трудной последовательной программой система выдает

трудночитаемый параллельный алгоритм большого объема (особенно, если

требуется MPI-модификация).

 

 

Таблица 1. Сравнения временных характеристик исходной и сгенерированной программ

матриц,

Время

Время решения

получаемое при

участвующих в

OpenMP

перемножении

последовательного

алгоритмом (2

использовании

(матрицы

решения

потока)

технологии

квадратные)

 

 

OpenMP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11