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
Рекомендованная цена: 250$ Рекомендованная цена: 1300$

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

Количество ячеек Время расчета Прирост скорости
1 ядро Intel Core i7

Одноядерная CPU версия

4 ядра Intel Core i7

Многоядерная CPU версия

GeForce GTX Titan

GPU Версия

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 на многоядерные графические ускорители.