3.2 Результаты и обсуждение.


Рисунки 1-4 и таблица 2 подводят итог теста производительности триады векторов на шести поколениях систем NEC SX. Для сравнения были также включены две новейших, двухсокетных, базирующихся на кеш-памяти системы. Данные NEC SX-4 и SX-5A/5e были взяты из [8]. Все остальные результаты были получены в 2007 и 2009 годах непосредственно авторами на NEC системах, находящихся в High Performance Computing Center Stuttgart (HLRS, компьютерный центр высокопроизводительных вычислений, Штутгарт) и на локальных системах.

В частности, примечательно большое увеличение устойчивой пропускной способности памяти одиночного CPU на NEC-SX9 (рис. 1). На всех поколениях NEC SX устойчивая пропускная способность для триад векторов очень близка к теоретическим пределам (таблица 2). С другой стороны, длина вектора, необходимая для достижения половины устойчивой производительности памяти увеличилась с приблизительно 30 на NEC SX-4 до 4096 на NEC SX-9 (рис. 3). На NEC SX-6/8/8R подсистема памяти уже близка к насыщению, когда используются 6 из 8 CPU (рис. 4), тогда как на NEC SX-9 устойчивая пропускная способность памяти непрерывно увеличивается, хотя значения на каждом CPU падают до 65% от значения одиночного CPU на 16 активных ядрах.

Пока данные поступают в L1/L2/L3 кеш современных CPU, доступная пропускная способность занимается векторами. Тем не менее, даже самая последняя двухсокетная система проигрывает производительности одиночного CPU десятилетней NEC SX-5(A), если работать с реальными длинами векторов (рис. 2).

Таблица 2. Сравнение теоретически ожидаемых и актуальных производительностей для больших длин векторов на векторных системах NEC SX. Теоретические значения NEC SX-5A/5e предполагают разворачивание цикла. Числа для одноядерных и двухсокетных четырёхядерных систем Intel включены для сравнения. Все измерения на одиночных процессорах были произведены на системах в состоянии простоя.

Система

Одно ядро, GFlops/s

SMP узел, GFlops/s

Ожидаемое

Измеренное

Ожидаемое

Измеренное

NEC SX-4

1.0

1.0

x32=32.0

-

NEC SX-5e

1.6

1.6

x8=12.8

-

NEC SX-5A

3.2

3.19

x16=51.2

-

NEC SX-6+

2.26

2.26

x8=18.1

14.1

NEC SX-8

4.0

3.9

x8=32.0

20.1

NEC SX-8R

4.4

4.3

x8=35.2

21.4

NEC SX-9

16.0

15.1

x16=256

157.5

Intel QC-Xeon X5482 (“Harpertown, 3.2 GHz)

0.8

0.27

1.6

0.53

EA Intel QC Xeon (“Nehalem-EP”, 2.67 GHz)

1.6

0.74

3.2

1.74


4. Ядро решателя решётчатого потока Больцмана.


Решётчатый метод Больцмана (LBM) [9] – новый метод из вычислительной динамики жидкостей (CFD), который имеет корни в очень упрощённом кинетическом описании газа, т.е. скоростно-дискретное уравнение Больцмана с периодом соответственных столкновений. При правильном применении результаты LBM симуляций удовлетворяют уравнениям Навье-Стокса в макроскопических пределах, с точностью порядка секунды [9]. Свойства производительности LBM получили значительное внимание в последние года [6, 11].


4.1 Основы применённого метода LBM.


В текущей работе мы применяем двухрелаксационную временную (TRT) модель столкновений [9] на решётке D3Q19. Развитие функции распределения одиночной частицы при i=1..19 приведено ниже:

Дискретное равновесие - это расширенная Тейлором версия равновесия Максвела-Больцмана функции распределения [4, 9], специфически адаптированная для несжимаемых потоков и сдвинутая на константу среднего давления для упрощения вычислений без ограничения общности, и для уменьшения погрешностей численного округления. Макроскопические количества, изменения давления и скорость получаются как 0-й или 1-й порядковые моменты , с учётом дискретных скоростей решётки , т. е. и . - константа, зависящая от направления [9], при промежутках в решётке и шаге по времени . Плотность соединена с давлением через уравнение состояния идеального газа, , с использованием скорости звука . Кинетическая вязкость жидкости определяется безразмерной частотой столкновений в соответствии с с исходя из причин стабильности [4, 9]. - параметр свободной релаксации, он может быть выбран исходя из [3].


4.2 Аспекты реализации


Многие реализации решётки Больцмана используют полные массивы и поле флага для представления данных и геометрии. Если только немного ячеек помечено, это кажется оптимальным подходом, т. к. три вложенных пространственных цикла могут быть свёрнуты в один, уменьшая таким образом расход ресурсов на циклы и гарантируя большое число повторений, и, более того, индексы соседних ячеек могут быть получены непосредственно через простую арифметику сдвигов. Кроме того, полные массивы несут дополнительный потенциал оптимизации.

Тем не менее, если очень сложная пористая среда с, по крайней мере, в некоторых случаях, низкой пористостью (например, упакованные тракт реактора, ­позвоночная кость или сосудистая система) является главной целью, иные стратегии реализации становятся предпочтительнее, например только исправления полных массивов, или истинного разреженного представления, которое включает только ячейки жидкости. Подход исправления напоминает ­декомпозицию домена, включая только поля, которые содержат по крайней мере некоторые жидкие ячейки, и требует умной "коммуникации­" между исправлениями, например через ячейки ореола, но это сохраняет местный порядок ячеек. Разреженное представление, с другой стороны, сохраняет только индивидуальные ячейки Декартовой жидкости и позволяет сохранять их в любом порядке, сопровождая их информацией о соединениях, поскольку смежные ячейки более не могут быть получены простой арифметикой сдвигов [12]. В рамках интернационального консорциума разработки решётки Больцмана (ILBDC) был выбран последний подход. В данной работе мы используем специальное ядро теста производительности, полученное из этой реализации. Структура результирующих данных – одномерный список, содержащий значения распределения плотности f из M ячеек жидкости (для текущего и следующего/предыдущего шага времени), а также ещё один одномерный список с информацией о смежности ячеек, использованных в течение распространения.

Шаг столкновения и распространения были скомбинированы в один цикл для минимизации передачи данных [10]. Чётные и нечётные шаги по времени переключаются между двумя массивами (последний индекс массива f) для лёгкой работы с зависимостями данных. Для данной работы было протестировано разнообразие альтернативных реализаций: