21.06.2019 09:24

Организация параллельных вычислений при использовании решеточных моделей газов

Организация параллельных вычислений при использовании решеточных моделей газов

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

Так как для формирования нового состояния системы, используется состояние системы в предыдущую итерацию, то потоки обращаются к историческому массиву данных, который доступен только для чтения. Все потоки выполняются асинхронно, а суммарный поток на это время блокируется. Затем специальный сборщик данных перезаписывает исторический массив данных, агрегируя все субрешетки в одну, и после этого в истории хранится состояния системы после фазы столкновения частиц. Для моделирования распространения частиц так же вызываются асинхронные потоки для каждой субрешетки, и уже учитывая новые данные в историческом массиве, вычислительные потоки рассчитывают новое состояние системы после фазы распространения. После выполнения расчётов всех потоков, основной поток вызывает сборщик, для агрегации состояний каждой субрешетки и перезаписывает исторический массив. Затем итерации повторяются.

Данный алгоритм был реализован на языке C#, и проверен на FHP-модели решеточного газа, которая предполагает движение частиц на гексагональной решетке. Был исследован процесс молекулярной диффузии, при котором исходная зона с высокой концентрацией частиц располагалась в центре клеточного массива размером 1000 х1000 узлов решетки. Проведены две серии вычислительных экспериментов, которые позволили сравнить производительность (скорость) вычислений однопоточной и четырехпоточной программ. Вычисления производились на процессоре Intel Core i5 с четырьмя потоками. Опыты повторяли по пять раз. Среднее время выполнения вычислений для однопоточного режима составило 378 секунд, для четырехпоточного - 163 секунды. Таким образом, организация параллельного режима вычислений позволила сократить процесс моделирования в 2.3 раза.

Соколов В.Л.

Организация параллельных вычислений при использовании решеточных моделей газов

Опубликовано 21.06.2019 09:24 | Просмотров: 341 | Блог » RSS

Всего комментариев: 0