Эффективность параллельных вычислений Abaqus, Ansys и Simmakers

В настоящее время всё большую популярность в области высокопроизводительных вычислений приобретают аппаратные средства, основанные на архитектурах для параллельных вычислений.

Эффективность использования аппаратных средств с параллельной архитектурой в решении инженерных задачах, таких, как компьютерное моделирование физических процессов, не имеет линейной зависимости от количества процессоров. Ошибочно полагать, что при решении сложных инженерных задач перенос расчета с одного ядра CPU на четыре ядра даст четырехкратный прирост скорости. Аналогично, перенос вычислений на графические ускорители с сотнями ядер не дает стократного прироста в скорости.

В первую очередь ограничение в приросте скорости при использовании параллельных расчетов налагают вычислительные алгоритмы. Алгоритмы, обладающие низкой степенью параллелизации, нерационально использовать на суперкомпьютерах и высокопроизводительных рабочих станциях. Понятие «эффективность параллелизации» поясняется законом Амдала, согласно которому если хотя бы 1/10 часть программы исполняется последовательно, то невозможно получить более 10 кратного ускорения вне зависимости от числа используемых вычислительных ядер.

Яркими примерами ограниченности эффективности распараллеливания алгоритмов для решения инженерных задач являются относительно слабые результаты мировых лидеров в области программного обеспечения для инженерного анализа (CAE) – компаний Abaqus и Ansys.

Так, в пакете SIMULIA’s от Abaqus перевод вычислений с двух ядер CPU на четыре ядра CPU дал прирост в скорости в 1,7 раза. Перевод этих же алгоритмов на архитектуру CUDA при расчете на 448 ядрах графического ускорителя Nvidia Tesla C2075 с совместным использованием 4-х ядер CPU показал прирост скорости всего в 3,5 раза [Источник].

Прирост скорости в SIMULIA’s от Abaqus при переходе с 2-х до 4-х ядер CPU Прирост скорости в SIMULIA’s от Abaqus при совместном использовании 4-х ядер CPU и 448 ядер GPU

Прирост скорости в SIMULIA’s от Abaqus при переходе с 2-х до 4-х ядер CPU

Прирост скорости в SIMULIA’s от Abaqus при совместном использовании 4-х ядер CPU и 448 ядер GPU

Соизмеримую с Abaqus эффективность распараллеливания алгоритмов достигла и компания Ansys. При увеличении количества расчетных ядер CPU с двух до восьми, пакет Ansys Mechanical 15.0 показал прирост скорости в 3 раза. Совместное использование двух ядер CPU и 2880 ядер видеоускорителя Nvidia Tesla K40 дало прирост скорости в 3,5 раза по сравнению с использованием только двух ядер CPU [Источник].

Прирост скорости в Ansys Mechanical 15.0 при использовании параллельных архитектур

Прирост скорости в Ansys Mechanical 15.0 при использовании параллельных архитектур

Более эффективное распараллеливание вычислительных алгоритмов и использование параллельных архитектур демонстрируют математические решатели, заложенные в программное обеспечение «Frost 3D Universal».

Для сравнения скоростей параллельных вычислений на CPU и GPU была использована модель добывающих скважин.

Модель добывающих скважин для тестов параллельных вычислений

В качестве расчетного аппаратного обеспечения были выбраны доступные на сегодняшний день для широкого круга пользователей такие вычислительные ресурсы, как центральный процессор Intel Core i7 и графический ускоритель Nvidia Titan.

Intel Core i7-3770 Nvidia GeForce GTX Titan
Тестовая модель процессора Intel Core i7 Тестовая модель видеоускорителя Nvidia Titan
Основные характеристики Основные характеристики
Число ядер: 4 ядра Число ядер: 2688 ядер
Базовая тактовая частота: 3.4 GHz Базовая тактовая частота: 836 MHz
Тактовая частота с ускорением: 3.9 GHz Тактовая частота с ускорением: 876 MHz
Потребление энергии: 77 W Потребление энергии: 250 W
Рекомендованная цена: 305$ Рекомендованная цена: 1080$

Трехмерная модель была дискретизирована с разным пространственным шагом. В итоге были получены расчетные сетки, количество элементов в которых составляло ~ 2млн., 4 млн., 8 млн. и 16 млн. Каждая расчетная сетка была запущена на расчет на одном ядре Inlel Core i7, четырех ядрах Inlel Core i7 и на видеоускорителе GeForce GTX Titan. Ниже представлены результаты расчетов для двухлетнего прогноза.

Количество ячеек Время расчета, с Прирост скорости
1 ядро Intel Core i7 4 ядра Intel Core i7 GeForce GTX Titan 4 ядра Intel Core i7 к 1 ядру GeForce GTX Titan к 4-м ядрам Intel Core i7 GeForce GTX Titan к 1 ядру Intel Core i7
2 000 000 9,62 ч

(34 632 с)

5,97 ч

(21 504 с)

34,11 мин

(2047 с)

1,61x 10,50x 16,91x
4 000 000 18,16 ч

(65 388 с)

10,63 ч

(38 287 с)

57, 65 мин

(3459 с)

1,70x 11,06x 18,90x
8 000 000 34,33 ч

(123 600 с)

19,22 ч

(69 221 с)

1,62 ч

(5844 с)

1,78x 11,84x 21,14x
16 000 000 61,14 ч

(220 104 с)

32,98 ч

(118 736 с)

2,62 ч

(9456 с)

1,85x 12,55x 23,27x

Диаграммы ускорений расчета

За 1x взята скорость работы одного ядра процессора Intel Core i7

Следует отметить, что при сравнении скоростей вычислений на многоядерных архитектурах значительное влияние на рост ускорения оказывают параметры самой модели. Основными такими параметрами являются:
- количество материалов;
- количество граничных условий;
- равномерность расчетной сетки;
- кратность количества элементов в сетке количеству вычислительных ядер;
- однотипность теплофизических свойств материалов.
А это означает, что максимальный прирост скорости на параллельных архитектурах получают самые простые модели с регулярной расчетной сеткой, с минимальным количеством материалов и граничных условий.
Как правило, на практике расчетные модели являются более сложными, поэтому для объективного анализа скоростей расчетов и была выбрана модель добывающих скважин.

Выводы:

  1. Вычислительные алгоритмы с низкой степенью параллелизации неэффективно использовать на многоядерных процессорах и графических ускорителях.
  2. Программное обеспечение для инженерного анализа от крупных производителей содержит в себе много последовательного кода, что налагает существенное ограничение на ускорение в параллельных вычислениях. Этот факт можно объяснить возрастом создания алгоритмов для математических решателей от этих производителей. В то время еще не было таких «молодых» технологий, как CUDA, и соответственно код не «проектировался» с учетом его дальнейшего распараллеливания под эти технологии.
  3. Математические алгоритмы в расчетном программном обеспечении последнего поколения написаны с учетом технологий параллельных вычислений, что позволяет достигать ускорения в десятки раз при переносе вычислений с одного ядра CPU на многоядерные графические ускорители.

Добавить комментарий

Ваш адрес email не будет опубликован.