Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи




Скачать 86.31 Kb.
НазваниеЗадание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи
Дата03.10.2012
Размер86.31 Kb.
ТипИсследование
Задание 3. Метод последовательной верхней релаксации(SOR).

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


Постановка задачи.

Дана последовательная программа, реализующая алгоритм последовательной верхней релаксации.

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

Цель.

Получить навыки распараллеливания существующих программ на языке Си с использованием технологии OpenMP.


Распараллеливание осуществляется с помощью анализа последовательной программы, аналогично анализу распараллеливающего компилятора. Поэтому не предполагается знания указанного алгоритма.


Требуется.

  1. Разработать параллельную версию программы с использованием технологии OpenMP

  2. Исследовать время выполнения разработанной программы в зависимости от размера сетки и количества используемых потоков на суперкомпьютере “Ломоносов”.

  3. Построить таблицу:

  • Для комплятора GCC:

    Размер сетки

    Последовательный алгоритм

    Параллельный алгоритм







    1 процессор

    2 процессора

    4 процессора

    8 процессоров







    Время

    Ускорение

    Время

    Ускорение

    Время

    Ускорение

    Время

    Ускорение

    256x256x256




























    512x512x512




























  • Для комплятора Intel:

    Размер сетки

    Последовательный алгоритм

    Параллельный алгоритм







    1 процессор

    2 процессора

    4 процессора

    8 процессоров







    Время

    Ускорение

    Время

    Ускорение

    Время

    Ускорение

    Время

    Ускорение

    256x256x256




























    512x512x512




























    1024x1024x1024




























  • [Для комплятора Portland Group:

Размер сетки

Последовательный алгоритм

Параллельный алгоритм







1 процессор

2 процессора

4 процессора

8 процессоров







Время

Ускорение

Время

Ускорение

Время

Ускорение

Время

Ускорение

256x256x256




























512x512x512




























1024x1024x1024




























]

Ускорение (speedup), получаемое при использовании параллельного алгоритма для p процессоров, определяется величиной:

Speedup(n) = T1(n)/Tp(n),

где T1(n)- время последовательного выполнения задачи,

Tp(n)- время параллельного выполнения задачи при использовании p процессоров.


  1. Построить графики - зависимость ускорения от количества процессоров для разных размеров систем линейных уравнений.

  2. Сделать выводы по полученным результатам (объяснить убывание или возрастание производительности параллельной программы при увеличении числа используемых процессоров, сравнить поведение параллельной программы в зависимости от размера сетки, в зависимости от используемого компилятора).

  3. Отчет о выполнении задания, включающий таблицу c временами, графики, текст программы и выводы отправить на omplab@gmail.com

[7. В качестве дополнительного задания. Сравнить 2 алгоритма распараллеливания циклов с зависимостью по данным, рассматривавшихся на лекции, с точки зрения эффективности].

Методические указания.

  1. Трансляция OpenMP программ.

  2. Запуск программы на счет.

  3. Последовательная программа.

  4. Литература.




  1. Трансляция OpenMP-программ.

    1. Для входа в среду компиляции на суперкомпьютере «Ломоносов» введите команду

ssh compiler

    1. Для компиляции OpenMP-программы c использованием компилятора GCС:

/usr/bin/gcc -fopenmp [-mcmodel=medium] -o <имя_программы> <имя_программы>.с

    1. Для компиляции OpenMP-программы c использованием компилятора Intel:

/opt/intel/composerxe-2011.3.174/bin/intel64/icc [-mcmodel=medium] -openmp -o <имя_программы> <имя_программы>.с

    1. Для компиляции OpenMP-программы c использованием компилятора Portland Group:

/opt/pgi/linux86-64/2010/bin/pgcc -mp -o <имя_программы> <имя_программы>.с

Для компиляции


  1. Запуск OpenMP-программы на счет.

    1. Для запуска OpenMP-программы на счет на суперкомпьютере “Ломоносов”:

установите количество нитей, которые требуются для выполнения программы:

export OMP_NUM_THREADS=<количество нитей>

и используйте команду:

sbatchp <раздел системы очередей> run ./<имя_программы>


Например,

export OMP_NUM_THREADS=4


Текущая конфигурация суперкомпьютера "Ломоносов" доступна:

http://parallel.ru/cluster/actual-T500.html

  1. Последовательная программа.

#include

#include

#include

#define Max(a,b) ((a)>(b)?(a):(b))


#define N (2*2*2*2*2*2+2)

double maxeps = 0.1e-7;

int itmax = 100;

int i,j,k;

double eps;


double A [N][N][N];


void relax();

void init();

void verify();


int main(int an, char **as)

{int it;


init();


for(it=1; it<=itmax; it++)

{

eps = 0.;

relax();

printf( "it=%4i eps=%f\n", it,eps);

if (eps < maxeps) break;

}


verify();


return 0;

}


void init()

{


for(i=0; i<=N-1; i++)

for(j=0; j<=N-1; j++)

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

{if(i==0 || i==N-1 || j==0 || j==N-1 || k==0 || k==N-1)

A[i][j][k]= 0.;

else A[i][j][k]= ( 4. + i + j + k) ;}

}


void relax()

{


for(i=1; i<=N-2; i++)

for(j=1; j<=N-2; j++)

for(k=1; k<=N-2; k++)


{ double e;

e=A[i][j][k];

A[i][j][k]=(A[i-1][j][k]+A[i+1][j][k]+A[i][j-1][k]+A[i][j+1][k]+A[i][j][k-1]+A[i][j][k+1])/6.;

eps=Max(eps, fabs(e-A[i][j][k]));

}

}


void verify()

{ double s;


s=0.;

for(i=0; i<=N-1; i++)

for(j=0; j<=N-1; j++)

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

{

s=s+A[i][j][k]*(i+1)*(j+1)*(k+1)/(N*N*N);

}

printf(" S = %f\n",s);


}




  1. Литература.

  • Антонов А.С. "Параллельное программирование с использованием технологии OpenMP: Учебное пособие".-М.: Изд-во МГУ, 2009. - 77 с. http://parallel.ru/info/parallel/openmp/

  • OpenMP Application Program Interface. Version 3.1 July 2011

http://www.openmp.org/mp-documents/OpenMP3.1.pdf

  • Презентация «Технология параллельного программирования OpenMP»:

ftp://ftp.keldysh.ru/K_student/MSU2012/Academy2012_OpenMP2.ppt

  • Инструкция по использованию вычислительного комплекса «Ломоносов»

http://parallel.ru/sites/default/files/cluster/T500_user_guide-3.pdf

Похожие:

Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconЗадание Численное решение задачи Дирихле. Параллельный алгоритм Якоби. Разработка параллельной программы и исследование ее эффективности. Постановка задачи
Требуется разработать параллельную программу с использованием технологии Openmp и провести исследование ее эффективности
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconМетоды вычислительной физики Программа курса лекций
Якоби, Зейделя и последовательной верхней релаксации; критерии и оценки скорости сходимости для модельной задачи уравнения Пуассона;...
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconМетоды оптимизации
Общая постановка задачи оптимизации. Общие методы решения задач оптимизации, метод исключения, метод неопределенных множителей Лагранжа....
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconЛабораторная работа №1 Этапы разработки программного обеспечения при структурном подходе к программированию. Стадия «Техническое задание»
Ознакомиться с лекционным материалом по теме «Модели жц по. Этапы жц в соответствии с гост 19. 102-77. Постановка задачи» учебной...
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconДата проведения
Вспомогательные алгоритмы. Метод последовательной детализации и сборочный метод
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconКалендарный план
Введение и историческая справка. Постановка задачи, метод Крамера, оценка количества операций
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconПрограмма курса лекций «исследование операций»
Типичные задачи. Графический метод. Анализ чувствительности. Симплекс-метод. Использование компьютерных программ
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи icon12. Курсовой проект. Постановка задачи. Пример выполнения Быстрый старт Требование к отчёту и порядок сдачи проекта. Постановка задачи
У корпорации 4 филиала и в каждом по два маршрутизатора: в 0-м R0 и R4, в 1-м R1 и R5, во 2-м R2 и R6, 3-м R3 и внешние маршрутизаторы...
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconМетод сопряженных градиентов для задачи наименьших квадратов и его применение для обучения весов радиальных базисных нейронных сетей при решении дифференциальных уравнений в частных производных
Целью данной работы является разработка и исследование модернизированного алгоритма обучения весов rbfnn для решения краевых задачи...
Задание Метод последовательной верхней релаксации(sor). Разработка параллельной программы и исследование ее эффективности. Постановка задачи iconЗадание 1 Задание 2 Задание 3 Задание 4 Задание 5 Задание 6 Задание 7 Задание 8 Задание 9 Задание 10 Задание 11 Задание 12 Задание 13 Задание 14
Д. Кэмпбелл описал 16 основных схем (планов) эксперимента (3 доэкспериментальных, 3 экспериментальных, 10 квазиэкспериментальных...
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница