task5 (1185997)
Текст из файла
Асирян Александр, 428 группаПостановка задачиРазработать параллельную программу с использованием MPI и OpenMP и исследовать ееэффективность для решения задачи Дирихле методом SOR.Описание алгоритмаCначала область решения разбивается равномерной сеткой на некоторое количествоточек. Далее разбиваем сетку на n горизонтальных полос, где n – количество процессов,на которых запускается программа. В каждом процессе хранится матрица, сдополнительными строкой и столбцом. Дополнительные столбцы используются длялевого и правого краевых условий. Верхняя строка в 0 процессе — для верхнего краевогоусловия, нижняя строка в n-ном процессе — для нижнего краевого условия.
Так жеиспользуются дополнительные строки для синхронизации решений после очереднойитерации. Алгоритм представляет собой некоторое количество итераций. Сначаларассчитываются значения во всей полосе, кроме дополнительных строк и столбцов, пометоду SOR с использованием текущего, соседних по горизонтали и вертикали значений.При расчете внутри одного процесса выполняется распараллеливание циклов потокамиДалее проводится обмен значениями первой и последними строками с верхним (I - 1) инижним (I + 1) процессами с помощью функций MPI_Isend и MPI_Irecv. При этомполученные значения записываются в дополнительные строки.
Таким образом,достигается синхронизация решения во всей области. Точность определяется как кореньиз суммы квадратов разностей текущего и предыдущего значений.Запуск на выполнение:<…> ./task5 <size> <precision>, где size -- число точек для разбиения, precision -контрольная точностьРезультатыBlue Gene/PРазмер сетки ТочностьКоличество ВремяпроцессоровУскорениеКоличествоитераций512x5120.01325.36361310.22258230 1000512x5120.016410.2335819.365033222 1000512x5120.0112813.051225.121252036 1000512x5120.0125615.3623233.321335855 1000512x5120.0151230.1323331.363361515 1000512x5120.001328.5131319.01312361512x5120.0016415.1252534.236131212 2000512x5120.00112820.3312222.312131582 20002000512x5120.00125638.3621311.533312361 2000512x5120.00151277.1503611.012131215 20001024x10240.013225.3613036.321315221 30001024x10240.016435.3613325.125133312 30001024x10240.0112844.1221524.362363336 30001024x10240.0125689.1236152.236361036 30001024x10240.01512149.1336151.101221201 30001024x10240.0013242.2121236.322121232 50001024x10240.0016453.2120136.363532312 50001024x10240.00112871.3622353.351036361 50001024x10240.001256120.5321532.133615201 50001024x10240.001512262.331311.230312125 5000Коэффициент эффективностиЭффективность0,380,250,130,0032 узла64 узла128 узло256 узлов512 узловsize = 512, prec = 0.010,3194556970,1463286440,0400097820,0129739680,002662815size = 512, prec = 0.0010,2816601130,066189550,0180635280,0059895010,001976819size = 1024, prec = 0.010,1975411010,0800802080,0340809640,0087357850,002150823size = 1024, prec = 0.0010,1975662890,0994301920,0261799720,0083344340,002402953size = 512, prec = 0.01size = 512, prec = 0.001size = 1024, prec = 0.01size = 1024, prec = 0.001ВыводыИспользование нескольких процессоров значительно ускоряет работу алгоритма.
Но приувеличении количества процессоров больше 32, ускорение не так заметно. Параметрыпрограммы почти не влияют на ускорение. Такая же ситуация и с эффективностью. Запускпрограммы с маппингом существенно ускоряет работу. Таким образом, предложенныйалгоритм позволяет эффективно решить задачу Дирихле..
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.