Boost - Odeint: Что означает параллелизм с использованием VexCL и как его улучшить? - PullRequest
0 голосов
/ 12 февраля 2020

Мой вопрос связан с учебным пособием , в котором объясняется, как реализовать boost :: odeint с VexCL для достижения параллелизма (полный код можно найти здесь ).

На следующем рисунке показано, как я думаю об итерациях ODEINT: enter image description here

Теперь я спрашиваю себя, что именно / или какая его часть распараллелена в VexCL?

У меня сложилось впечатление, что часть ODE - это одна задача, так как в данном примере все уравнения ODE находятся в одном блоке. Может быть, часть интеграции работает в трех параллельных задачах. Это приводит к четырем задачам, где (я думаю) задача ODE имеет шею bottle (поскольку уравнения могут стать очень большими). ​​

Если это правильно, я хотел бы знать, как улучшить этот параллелизм . Я думаю, что имеет смысл объединить ODE и INT по горизонтали. Это приводит к 3 задачам, каждая из которых не может быть дополнительно уменьшена на этом уровне.

1 Ответ

1 голос
/ 12 февраля 2020

Пример, на который вы ссылались, - это исследование параметров системы Лоренца. То есть он решает большое количество одних и тех же уравнений с разными параметрами. Тип состояния - vex::multivector<double,3>, который объединяет состояния (трехмерные координаты) многих систем Лоренца. Это смущающая параллельная проблема, и можно применить алгоритм odeint к типам состояний на этапе блокировки. То есть такие операции, как x += tau * dt, где x и dt - большие векторы, выполняются на графическом процессоре.

Более подробную информацию о реализации odeint / vexcl можно найти в [1]. [2] - интересная статья о том, как извлечь параллелизм в случае связанных систем.

[1] Анерт, Карстен, Денис Демидов и Марио Муланский. «Решение обыкновенных дифференциальных уравнений на графических процессорах». Численные расчеты с графическими процессорами. Springer, Cham, 2014. 125-157. https://doi.org/10.1007/978-3-319-06548-9_7 ( pdf )

[2] Муланский, Марио. «Оптимизация крупномасштабного моделирования ОДУ». Препринт arXiv arXiv: 1412.0544 (2014).

...