Реализация метода решеточных уравнений Больцмана и метода подвижных клеточных автоматов для параллельных расчетов на графических процессорах




Сторінка1/3
Дата конвертації21.04.2016
Розмір0.61 Mb.
  1   2   3


Реализация метода решеточных уравнений Больцмана и метода подвижных клеточных автоматов для параллельных расчетов на графических процессорах
Для реализации задач проекта был разработан пакет программ и библиотек программирования, реализующих параллельную обработку данных на нескольких GPU на одном компьютере. Для распараллеливания использовались только технологии CUDA, это позволило снять специальные требования на предустановленное программное обеспечение и запускать программу на обычном персональном компьютере.

Разработанный пакет состоит из нескольких уровней. Самый верхний – это набор готовых программ с графическим интерфейсом, позволяющий проводить расчеты не программируя. Программы позволяют пользователю описывать необходимую геометрию расчетной области, задавать начальные условия, проводить расчеты c визуализацией текущего состояния и сохранять полученные результаты в файлы ряда форматов для последующего анализа.

При запуске программа самостоятельно определяет имеющиеся на компьютере GPU, и исполнение всех тяжелых вычислительных алгоритмов происходит параллельно на всех найденных или специально указанных GPU.

Вторым уровнем является библиотека на языке программирования C++ содержащая средства для разработки программ численного моделирования методами LBE и подвижных клеточных автоматов. В библиотеке реализован ряд алгоритмов с автоматическим параллельным исполнением на нескольких GPU. Ее удобно использовать для проведения специализированных расчетов не реализуемых средствами готовых программ.

Третий уровень состоит из препроцессора (CUP) генерирующего функции исполняющиеся параллельно. Только на этом уровне используются появляются средства CUDA и особенности разработки алгоритмов параллельного исполнения.

Самым последним уровнем являются 3d массивы данных с автоматическим распределением и обработкой данных на нескольких GPU. Они являются основным средством используемым сопроцессором для генерации параллельно исполняющихся функций, но могут и использоваться и отдельно при написании параллельного алгоритма программистом.


Массивы с автоматическим распределением данных на нескольких GPU

Библиотека позволяет создавать 3d массивы с автоматическим распределением данных на нескольких графических устройствах (device) одного узла (host). Для этого используются два специализированных класса: d_Array3d_base – часть данных (слой по оси ) общего массива хранящаяся в памяти одного устройства; d_Array3d – набор слоев по оси формирующих весь набор данных (рис. 2.1).

Обычно количество GPU даже на специализированном компьютере не превышает трех. Поэтому, такое простое по реализации решение является достаточно разумным.

Рис. 2.1. Схема распределения массива данных (3d, 2d) на нескольких GPU.


Класс d_Array3d_base непосредственно содержит блок данных в форме параллелепипеда с полным количеством узлов по осям , и часть данных по оси . Это самый низкий уровень иерархии представления данных, создается автоматически, предназначен для непосредственного производства действия над данными при работе параллельных алгоритмов.

Класс d_Array3d предоставляет пользователю удобный интерфейс, отвечающий за весь набор данных распределяемых на нескольких GPU. Создается пользователем с необходимыми размерами реальной полной расчетной области. При работе алгоритмов автоматически параллельно запускает одинаковые функции обработки для всех частей находящихся на разных устройствах.


Приведем небольшой пример параллельного алгоритма работающего на нескольких GPU.
int gpu_array[2]={0,1}; // массив с номерами устройств GPU (device)

MP_Parallel MP_parallel(gpu_array, 2);
__global__ void f_parallel(d_Array3d_base a){

const size_t i=blockIdx.x*blockDim.x+threadIdx.x;

const size_t j=blockIdx.y*blockDim.y+threadIdx.y;

const size_t k=blockIdx.z*blockDim.z+threadIdx.z;

const size_t ind=k*a.Nx*a.Ny+j*a.Nx+i;

a[ind]=1.0;

}
int main(){

//Массив вещественных с распределением памяти на нескольких GPU

d_Array3d a(256, 256, 256); // Nx, Ny, Nz
dim3 threads(MP_parallel.Nx, MP_parallel.Ny, MP_parallel.Nz);

dim3 grid(a.Nx/threads.x, a.Ny/threads.y, ((a.Nz-2)/MP_parallel.GPU_pool.size() +2) /threads.z);

cudaStream_t s[4]; // больше GPU/host не бывает :)

for(size_t i=0; i

cudaSetDevice(MP_parallel.GPU_pool[i]);

cudaStreamCreate(&s[i]);

f_parallel<<>>(split(i, a));

}

for(size_t i=0; i

cudaSetDevice(MP_parallel.GPU_pool[i]);

cudaStreamDestroy(s[i]);

}

sync(a); // синхронизовать границы блоков

}
CUP препроцессор

CUP (CUDA parallel) -- препроцессор генерирует код объявление функции и код параллельного вызова.



  • CUP INSERT prefix – место вставки объявлений функций. prefix – префикс в именах создаваемых функций.

  • CUP FORALL_3D var1 expr1 var2 expr2 ... # code # – параллельный цикл по всем элементам массива expr1.

  • CUP FORALL_3D_IN var1 expr1 var2 expr2 ... # code # – параллельный цикл по всем внутренним элементам массива expr1.

  • CUP FORALL_3D_IJK var1 expr1 var2 expr2 ... # code # – параллельный цикл по всем элементам массива expr1. Дополнительные доступные переменные: i, j, k -- индексы ячейки по осям , , соответственно.

  • CUP FORALL_3DYZ var1 expr1 var2 expr2 ... # code # – параллельный цикл по ячейкам плоскости i=0 ().

  • CUP FORALL_3DXZ var1 expr1 var2 expr2 ... # code # – параллельный цикл по ячейкам плоскости j=0 ().

  • CUP FORALL_3DXY var1 expr1 var2 expr2 ... # code # – параллельный цикл по ячейкам плоскости k=0 ().

Все функции исполняют код code, внутри генерируемых функций доступны локальные переменные: var1, var2, ... , ind – индекс, ячейки массива, gpuIdx – номер обрабатываемого слоя по оси .

Небольшой пример параллельного алгоритма работающего на нескольких GPU с использованием препроцессора CUP.



// массив с номерами устройств GPU (device)

int gpu_array[2]={0,1};

MP_Parallel MP_parallel(gpu_array, 2);
// Обрабатывается препроцессором.

// В этом месте появятся определения функций

CUP INSERT cup_test
int main(){

//Массив вещественных с распределением памяти на нескольких GPU

d_Array3d a(256, 256, 256); // Nx, Ny, Nz



CUP FORALL_3D a a #

a[ind]=1.0;

#

sync(a);

}
Библиотека моделирования мультифизических процессов

Простое LBE


Приложение

4.1 Решение уравнения Лапласа с ручным распараллеливанием 6

4.2 Решения уравнения Лапласа с автоматическим распараллеливанием
Пакет программ LaBSimFlow

Приложение


Проведение экспериментальных исследований экспериментального образца программных реализаций метода решеточных уравнений Больцмана и метода подвижных клеточных автоматов, результаты расчетов, сопоставление результатов моделирования с известными аналитическими и численными результатами

Рис. 3.1 Сравнение результатов численного расчета одномерного распада разрыва с аналитическим решением без учета влияния вязкости.

Российская академия наук (РАН)

УЧРЕЖДЕНИЕ РОССИЙСКОЙ АКАДЕМИИ НАУК ИНСТИТУТ ГИДРОДИНАМИКИ ИМ. М. А. ЛАВРЕНТЬЕВА СИБИРСКОГО ОТДЕЛЕНИЯ РАН (ИГиЛ СО РАН)



УТВЕРЖДАЮ:

Директор ИГиЛ СО РАН

д-р физ.-мат. наук, проф.

__________________ А.А. Васильев
«___» ____ 2012 г.

УДК 532.7+532.516.5+532.593+531.43+539.3

№ госрегистрации: 01201178125

Инв. №

ОТЧЕТ


О НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ
Разработка и развитие инновационных методов и алгоритмов моделирования, основанных на применении решеточных методов и методов клеточных автоматов, предназначенных для численного исследования мультифизических систем
по теме:

ЭКСПЕРИМЕНТАЛЬНЫЕ И ТЕОРЕТИЧЕСКИЕ ИССЛЕДОВАНИЯ ПОСТАВЛЕННЫХ ПЕРЕД НИР ЗАДАЧ

(промежуточный)
Шифр 2011-1.4-514-029-004
Руководитель работ,

д-р физ.-мат. наук: _________________ А.Л. Куперштох

30.03.2012

Новосибирск 2012

СПИСОК ИСПОЛНИТЕЛЕЙ
Руководитель работы,

вед. науч. сотр. _______________ А.Л. Куперштох (введение, разделы 1-3, заключ.)

д-р физ.-мат. наук 30.03.2012
Ответственные исполнители:
Зав. лабораторией ___________________ А.П. Ершов (раздел 1)

д-р физ.-мат. наук 30.03.2012


Глав. науч. сотр. ___________________ В.В. Остапенко (раздел 1)

д-р физ.-мат. наук 30.03.2012


Глав. науч. сотр. ___________________ Л.А. Лукьянчиков (раздел 1)

д-р физ.-мат. наук 30.03.2012


Вед. науч. сотр. ___________________ Е.В. Шилько (раздел 1)

д-р физ.-мат. наук 30.03.2012


Ст. науч. сотр. ___________________ Д.А. Медведев (раздел 1)

канд. физ.-мат. наук 30.03.2012


Ст. науч. сотр. ___________________ Д.И. Карпов (раздел 1)

канд. физ.-мат. наук 30.03.2012


Ст. науч. сотр. ___________________ Э.Р. Прууэл (раздел 1)

канд. физ.-мат. наук 30.03.2012


Науч. сотр. ___________________ А.В. Димаки (раздел 1)

канд. физ.-мат. наук 30.03.2012


Науч. сотр. ___________________ Н.П. Сатонкина (раздел 1, нормоконтроль)

канд. физ.-мат. наук 30.03.2012


Науч. сотр. ___________________ А.О. Кашкаров (раздел 1)

30.03.2012


Студент ___________________ Т.А. Бондаренко (раздел 1)

30.03.2012

РЕФЕРАТ

Часть № 1 отчета о научно-исследовательской работе «Экспериментальные и теоретические исследования поставленных перед НИР задач» по контракту № 07.514.11.4106 от 26 октября 2011 г. содержит: 86 страниц, 3 рисунка, 3 таблицы, 127 использованных источника.


Ключевые слова: РЕШЕТОЧНЫЕ УРАВНЕНИЯ БОЛЬЦМАНА, ФАЗОВЫЕ ПЕРЕХОДЫ, КЛЕТОЧНЫЕ АВТОМАТЫ, ГРАФИЧЕСКИЕ ПРОЦЕССОРЫ, УРАВНЕНИЯ СОСТОЯНИЯ, ДЕФОРМАЦИЯ ТВЕРДЫХ ТЕЛ
Объектом исследования НИР являются методы и алгоритмы моделирования, основанные на применении метода решеточных уравнений Больцмана и метода подвижных клеточных автоматов, для численного исследования таких мультифизических систем, как многокомпонентная гидродинамика, тепломассоперенос, течения с фазовыми переходами жидкость-пар, происходящими согласно заданному уравнению состояния, механические деформации объектов.

Целями работ, проводящихся на первом этапе, являются выполнение аналитического обзора информационных источников по методу решеточных уравнений Больцмана, включая моделирование многокомпонентных и многофазных сред, по методу подвижных клеточных автоматов и их реализациям на современных графических процессорах; проведение патентных исследований и выбор направления исследований объекта НИР.

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

В ходе выполнения первого этапа работы получены следующие результаты:

1) Проведен аналитический обзор информационных источников.

2) Проведены патентные исследования объекта НИР.

3) Выполнены исследования объекта НИР, на основании которых выбраны направления дальнейших исследований, то есть, выбрана конфигурация оборудования, необходимого для выполнения исследований объекта НИР и состав программного обеспечения.

4) За счет внебюджетных средств проведена сборка станции с двумя графическими картами GTX-580 фирмы NVIDIA для проведения параллельных вычислений на графических процессорах. На собранной станции установлено необходимое программное обеспечение. Выполнено тестирование оборудования вычислительной станции.

5) Для метода решеточных уравнений Больцмана и метода подвижных клеточных автоматов выбраны алгоритмы, допускающие распараллеливание на новейших высокопроизводительных графических процессорах, что позволит значительно увеличить скорость расчетов, а также в несколько раз сократить электрическую мощность, потребляемую вычислительными системами на единицу производительности. Для распараллеливания алгоритма на большое количество ядер графических процессоров фирмы NVIDIA выбрана технология программирования CUDA (Compute Unified Device Architecture).

Научные результаты работы, полученные на данном этапе НИР, будут внедрены (использованы) на последующих этапах НИР. Внедрение результатов (разрабатываемых алгоритмов и методов моделирования) в инженерную практику возможно только после окончания НИР.

Областью применения результатов, полученных на данном этапе НИР, может являться Экспериментальный образец программных реализаций алгоритмов и методов, планируемы к разработке на втором этапе работ по Контракту.

Экономической эффективности результаты НИР на данном этапе исследований иметь не могут. Вместе с тем, Ученый совет ИГиЛ СО РАН, на котором принимался отчет по данному этапу работы, отметил важность результатов работы и перспективность ее продолжения.

Дальнейшее развитие объекта исследований заключается:

1) В создании Экспериментального образца программных реализаций алгоритмов и методов, разработанных в рамках выполнения НИР первого этапа.

2) В использовании следующих версий графических процессоров “Kepler” и “Maxwell” вместо графических процессоров “Fermi”, существующих в настоящее время. Графические процессоры “Kepler” планируются к выпуску в первом квартале 2012 г. (согласно информации, полученной нами непосредственно из фирмы NVIDIA) и будут иметь производительность в 3 раза выше.

СОДЕРЖАНИЕ



РЕФЕРАТ ……………………………………………………………………...........

3

ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ ……………………………………………..

5

ВВЕДЕНИЕ …………………………………………………………………............

7

1

Разработка теории математического моделирования, разработка методов и алгоритмов моделирования: ……………………………………

12

1.1

Многокомпонентная гидродинамика ………………….…….…….………

12

1.2

Фазовые переходы жидкость-пар ……………………………………….…

21

1.3

Тепломассоперенос …………………………………………………………

29

1.4

Механические деформации и разрушение …………………………………

33

2

Реализация метода решеточных уравнений Больцмана и метода подвижных клеточных автоматов для параллельных расчетов на графических процессорах …………………………………………………

36

3

Проведение экспериментальных исследований экспериментального образца программных реализаций метода решеточных уравнений Больцмана и метода подвижных клеточных автоматов, результаты расчетов, сопоставление результатов моделирования с известными аналитическими и численными результатами ……………………………

37

ЗАКЛЮЧЕНИЕ…………………………………………………………………….

39

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ……………… ………...…..

40

ОТЧЕТ О ПАТЕНТНЫХ ИССЛЕДОВАНИЯХ

53

ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ


Аббревиатура

Расшифровка

LBE

Решеточное уравнение Больцмана (Lattice Boltzmann Equation)

LBM

Метод решеточных уравнений Больцмана (Lattice Boltzmann Method)

MCA

Подвижные клеточные автоматы (Movable Cellular Automata)

GPU

Графический процессор (Graphics Processing Unit)

CPU

Центральный процессор (Central Processing Unit)

CUDA

Компьютерная технология распараллеливания (Compute Unified Device Architecture)

TVD

Минимизация полной вариации (Total Variation Diminishing)

ВВЕДЕНИЕ
Часть 1 настоящего отчета содержит результаты работ, связанных с разработкой теории и основ решеточных методов и методов клеточных автоматов. Работами данного направления непосредственно руководит доктор физико-математических наук А. Л. Куперштох.

1 Цель выполнения научно-исследовательских работ (НИР), решаемые задачи:

Целью НИР являются разработка и развитие уникальных алгоритмов и методов численного моделирования, основанных на применении новых методов: решеточных уравнений Больцмана и подвижных клеточных автоматов для решения таких сложных мультифизических задач, как одновременное моделирование многокомпонентной и многофазной гидродинамики с учетом теплообмена, а также процессов деформации и разрушения. Эти алгоритмы и методы будут реализованы на новейших высокопроизводительных графических процессорах, что позволит значительно увеличить скорость и точность моделирования, а также в несколько раз сократить электрическую мощность, потребляемую вычислительными системами на единицу производительности.


2 Краткий анализ состояния исследований (в РФ и за рубежом).

2.1 Метод решеточных уравнений Больцмана

Решеточные методы представляют собой новый класс методов, использующих мезоскопический подход к описанию вещества. Метод LBE представляет собой дискретную модель сплошной среды [1, 2]. При этом метод решеточных уравнений Больцмана более перспективен, чем обычные конечно-разностные методы, так как более адекватен природе вещества. В настоящее время метод LBE вполне может конкурировать с традиционными методами вычислительной гидродинамики, а в некоторых областях (многофазные и многокомпонентные течения) он имеет значительные преимущества.

Обоснованием метода LBE можно считать тот факт, что во втором порядке разложения Чепмена – Энскога из уравнений LBE получаются макроскопические уравнения гидродинамики, то есть известные уравнения неразрывности и Навье – Стокса.

Компьютерное моделирование фазовых переходов методом LBE представляет собой метод сквозного счета границ раздела фаз, в том числе и вновь возникающих в объеме вещества. Для описания уравнения состояния, допускающего фазовые переходы, вводятся силы, действующие на вещество в узле со стороны соседних узлов (симуляция притягивающей ветви потенциала межмолекулярного взаимодействия) [3-5]. Эти силы также обеспечивают поверхностное натяжение на границах раздела фаз.

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

Авторами проекта был предложен принципиально новый метод учета действия объемных сил в методе LBE, который приведен в работах [6-8]. На основании этого предложена модель LBE с учетом фазовых переходов жидкость-пар согласно используемому уравнению состояния [9-12]. Предлагаемые в этих работах алгоритмы обеспечивают описание кривой сосуществования жидкость-пар с высокой точностью.

Авторы проекта уже имеют большой опыт моделирования мультифизических задач, в том числе и многокомпонентных [10,13-19].

Таким образом, судя по участию в Международных конференциях, посвященных методу LBE, и по известным публикациям в рейтинговых журналах, серьезные исследования по методу LBE в Российской федерации проводятся в течение ряда лет только в Институте гидродинамики им. М.А. Лаврентьева СО РАН (Новосибирск) коллективом исполнителей данного проекта.

Предложенные нами алгоритм учета действия объемных сил и реализация метода LBE с фазовыми переходами [6-12] опережают мировой уровень, что признано зарубежными исследователями [20-22].

  1   2   3


База даних захищена авторським правом ©mediku.com.ua 2016
звернутися до адміністрації

    Головна сторінка