ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ РЕШЕНИЯ ДВУМЕРНЫХ УПРУГО-ПЛАСТИЧЕСКИХ ЗАДАЧ.

advertisement
ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ
РЕШЕНИЯ ДВУМЕРНЫХ УПРУГО-ПЛАСТИЧЕСКИХ ЗАДАЧ.
Демешко И.П., Коновалов А.В.
Екатеринбург, Россия
Основной целью параллельных вычислений является ускорение решения задачи за счет
разбиения программы на компоненты, размещаемые на разных процессорах. Применение библиотек параллельных вычислений в настоящее время возможно как на многопроцессорных вычислительных системах (МВС), так и на персональных компьютерах. МВС предназначены для решения
сложных задач, требующих больших объемов вычислений. Одной из таких задач является задача
расчета напряженно-деформированного состояния и формоизменения при больших пластических
деформациях.
В качестве примера рассматривается задача сжатия цилиндра из упруго-пластического изотропного и изотропно-упрочняемого материала плоскими плитами, решение которой основывается на принципе виртуальной мощности в скоростной форме [1]:
(1)
 (  t )   hdV   ( P  tP )  hd  0
V

со следующими определяющими соотношениями [2]:
  2(   ) D  v      vT  JbS ,
  
S     0I ,
 0  K ,
K 2 ,
3
D  0.5(v  vT ) ,
F ( S , k )  0.5S  S  k 2  0 ,
 
  

2 
 
1 dk 
b    1    S  S  S   D  
S  I  k 2 1 
 .
3
3

d








 
Здесь  - тензор напряжений Коши; P - плотность поверхностных сил; t - промежуток времени
для шага приращения нагрузки; h - вариация кинематически допустимых полей скоростей;  набла-оператор; V ,  - объем и поверхность тела, соответственно; dV , d  - элементы объема
и площади поверхности цилиндра, соответственно;  ,  - коэффициенты Ламе; I - единичный
тензор; точкой и двумя точками обозначено соответственно скалярное и двойное скалярное произведение тензоров; точкой сверху обозначена полная производная по времени; V - градиент скорости перемещений; D - тензор скоростей деформаций;  0 - среднее нормальное напряжение, K объемный модуль упругости;  - относительное изменение индивидуального объема бесконечно
малой частицы среды; k - напряжение текучести; J  0 при F  0 или при F  0 , S  S  0 ;
J  1 при F  0 , S  S  0 ;  - параметр упрочнения, в силу малости упругих деформаций
  2 D  D .
На контакте с плитами принят закон трения Кулона. Рассматривается случай, когда боковая
поверхность цилиндра свободна от нагрузок. Высоту относительного сжатия принимаем равной
0,5.
На каждом шаге нагрузки задача (1) с помощью конечно-элементной аппроксимации сводится к системе линейных алгебраических уравнений (СЛАУ)
(2)
Az  b ,
где A , z , b - соответственно матрица, вектор решения и вектор правой части системы. Матрица
A имеет ленточный вид.
ускорение
ускорение
Решение задачи сжатия цилиндра плоскими плитами на шаге нагрузки состоит из трех основных этапов:
1. Подготовка матрицы A ;
2. Решение СЛАУ;
3. Вычисление напряженно-деформированного состояния в конце шага нагрузки.
Параллельные алгоритмы разработали для каждого из перечисленных этапов решения задачи. Их реализацию осуществили на МВС с общей памятью PrimePower-850, установленной в
Институте математики и механики УрО РАН. Использовали язык Cи, библиотеку MPI и технологию параллельного программирования OpenMP.
Результаты распараллеливания этапов формирования матрицы A и вычисления напряженно-деформированного состояния в конце шага нагрузки показали увеличение значения ускорения
времени вычисления с увеличением числа процессоров (рис.1, рис 2). За ускорение принято отношение времени решения задачи на одном процессоре ко времени решения на нескольких процессорах. Результаты представлены для случая разбиения цилиндра сеткой 20х20.
4,00
Алгоритм распараллеливания этих этапов
состоит в разделении вычислений на равэтап 1
3,00
ные части по количеству обрабатываеэтап 3
мых переменных сетки.
этап 2
2,00
На рис. 1 представлена зависимость ускорения решения отдельных этапов задачи от числа процессоров. Из
1,00
1
2
3
4
5
6
7
рис.1 видно, что ускорение решения перчисло процессоров
вого и третьего этапов задачи при числе
процессоров меньше 4 растет линейно.
Это означает, что разработанные алго- Рис.1 Зависимость ускорения параллельных алгоритмы являются эффективными. С уве- ритмов для отдельных этапов решения задачи от
личением числа процессоров больше 4 числа процессоров
линейность исчезает в связи с возрастающими издержками на передачу информации между процессорами.
На рис.2 приведены результаты ускорения решения всей задачи при применении параллельных алгоритмов решения отдельных
1,4
ее частей. Наибольшее значение ускорения равно 40% при применении параллельного алгоритма решения первого этапа и 7% при применении параллельного
1,2
алгоритма решения третьего этапа задачи.
Это связано с тем, что процентное соотношение времени решения отдельных
этапов ко времени решения всей задачи
1
для матрицы представленной размерности
1
2
3
4
5
6
7
составляет 47% и 10% для первого и третьего этапов соответственно.
число процессоров
Проведено сравнение времени выРис. 2. Зависимость ускорения времени решечисления параллельных алгоритмов перния от числа процессоров для параллельных
вого и третьего этапов решения задачи
алгоритмов решения этапов 1 и 3 при разбиепри использовании библиотеки праралнии цилиндра сеткой 20х20:
лельного программирования MPI и техноMPI,
OpenMP,
- этап 1,
- этап 3.
логии OpenMP (рис. 2). Сравнение показало,
что
использование технологии
OpenMP на МВС с общей памятью более
эффективно, чем использование библиотеки MPI. Это объясняется тем, что время на передачу
ускорение
ускорение
данных между процессорами на архитектуре с общей памятью у библиотеки MPI больше, чем у
технологии OpenMP. К аналогичному результату пришли авторы статьи [4].
Для решения СЛАУ(2) методом Гаусса реализовали два параллельных алгоритма. Первый
алгоритм[3] использует библиотеку MPI и основан на разбиении матрицы A , векторов b и z на
части, кратные числу процессоров так, что каждый процессор вычисляет свою часть вектора решения. Второй алгоритм распараллеливает этап обнуления столбца матрицы A с помощью технологии параллельного программирования OpenMP. Распараллеливание обоих алгоритмов основано
на преобразовании ленточной матрицы A в вертикальную полосу и разбиении ее, векторов b и z
на m блоков по числу процессоров так, что n  m  l , где n – размерность системы уравнений, l число уравнений на одном процессоре. Каждый процессор вычисляет свою часть вектора решения
и передает результаты остальным процессорам.
Исследование эффективности решения СЛАУ первым параллельным алгоритмом провели
как на квадратной так и на ленточной матрицах. В случае заполненной квадратной матрицы размерностью больше 100х100 с увеличением роста числа процессоров
ускорение возрастает практически
1
линейно. Установлено, что затраты
Размерность
на передачу информации между просетки 10х10
0,8
20х20
цессорами при матрицах меньшей
30х30
размерности превышают время ре0,6
шения отдельных частей, расположенных на каждом процессоре и
0,4
ускорение
принимает
значение
меньше единицы.
0,2
Численные результаты, полу1
2
3
4
5
6
7
число процессоров
ченные при использовании первого
алгоритма для решения СЛАУ(2) с
Рис.3. Зависимость ускорения от числа процессоров
ленточной матрицей, показывают
Рис.2.
Зависимость
ускорения
от числа
процессоров
для
первого
параллельного
алгоритма
решения
уменьшение ускорения решения задля первого
параллельного
алгоритма решения
СЛАУ
методом
Гаусса.
дачи (увеличение времени решения)
СЛАУ методом Гаусса.
с ростом числа процессоров. Это
объясняется тем, что время на пересылку информации между процессорами для рассмотренных
алгоритмов превышает время решения частей задачи, расположенных на каждом процессоре. На
рис. 3 представлены результаты для матриц разной размерности. В рассматриваемой задаче отношение количества переменных к ширине матрицы растет с увеличением размерности матрицы.
Вследствие этого, при увеличении размерности матрицы, объем передаваемой информаРазмерность
2,80
ции увеличивается гораздо быстрее, чем тру10х10
доемкость вычислений на каждом процессоре
20х20
30х30
и ускорение вычислений так же снижается с
2,20
увеличением числа процессоров. Поэтому
для матриц разной размерности графики за1,60
висимости ускорения времени вычислений от
числа процессоров расположены близко друг
к другу.
1,00
Численные результаты применения
1
2
3
4
5
6
7
второго
алгоритма решения СЛАУ(2) на
число процессоров
МВС с общей памятью показали увеличение
Рис.4. Зависимость ускорения от числа процесускорения вычисления задачи при увеличесоров для второго параллельного алгоритма
нии числа процессоров (рис. 4). Причем с
решения СЛАУ методом Гаусса.
увеличением размерности матрицы при одинаковом числе процессоров ускорение растет
в связи с увеличением вычислительной трудоемкости на каждом процессоре, в то время как объем
передаваемой информации изменяется не значительно. Характер графиков не линейный в связи со
значительными издержками на обмен информацией между процессорами.
Анализ результатов показал, что для решения рассматриваемого класса задач на МВС с
общей памятью:
 применение технологии параллельного программирования OpenMP более эффективно, чем
применение библиотеки MPI,
 первый алгоритм распараллеливания решения СЛАУ методом Гаусса является неэффективным, второй алгоритм показывает эффективные результаты распараллеливания (с увеличением числа процессоров сокращается время решения задачи)
1.
2.
3.
4.
Литература
A. A.Поздеев, П.В. Трусов. Большие упруго-пластические деформации. М: Наука, 1986, 232с.
А. В. Коновалов. Определяющие соотношения для упругопластической среды при больших пластических деформациях. Известия РАН. Механика твердого тела. 1997. № 5. С. 139-149.
В.Д. Корнеев. Параллельное программирование в MPI. – Новосибирск: Издательство СО РАН, 2000. 213с.
Yun He, Chris H.Q. Ding. An Evaluation of MPI and OpenMP Paradigms for Multi-Dimentional Data Remapping.
WOMPAT 2003, pp, 195-210.
Related documents
Download