Использование средств MPI в программной системе для моделирования динамики дискретных активных сред М.И. Иванченко, О.И. Канаков, К.Г. Мишагин, Г.В. Осипов, В.Д. Шалфеев ННГУ им. Н.И. Лобачевского, Нижний Новгород
Примеры дискретных сред Кристаллические решетки Биологические ткани Сети синхронизации Сети джозефсоновских контактов Искусственные нейронные сети Пространственно-локализованные осциллирующие во времени решения в нелинейных дискретных средах Дискретные бризеры:
Параллельный алгоритм Локальность связей –известный пример: уравнение Пуассона Решеточная топология –коммуникатор с декартовой топологией: MPI_Cart_create Параллелизм коммуникации и вычислений –неблокирующие операции обмена
Реальная эффективность
Метод Рунге-Кутты 4 порядка
DAMPS Discrete Active Media Parallelizing Simulator Пакет для моделирования дискретных активных сред
DAMPS Статическая библиотека ldamps.lib Заголовочный файл ldamps.h Исходный C++ файл метода интегрирования: rk4footer.cpp Определение классов объектов- датчиков Пользовательский интерфейс
Пример задачи: breather.cpp #include "ldamps.h" inline double vstr(double z) { return z-z*z+0.25*z*z*z; } inline void rhand(state_t y, state_t up, state_t rt, state_t dn, state_t lt, state_t res, par_t par, double t) { res[0]=y[1]; res[1]=-vstr(y[0])+0.1*(lt[0]-2.*y[0]+rt[0]); } #define NAME breather enum {ORDER=2, LINKS=1, PARS=0 }; #include "rk4footer.cpp"
Пример файла main.cpp #include #include "ldamps.h" #include "process.h" enum consts { ROWS=1, COLS=1000, VCELLS=1, HCELLS=3, };
int main(int argc, char* argv[ ]) { MPI_Init(&argc, &argv); { int rank; MPI_Comm_rank(MPI_COMM_WORLD, &rank); Bcond bc; bc.top=FIXED; bc.rt =PERIOD; bc.bot=FIXED; bc.lt =PERIOD; extern Rk4 breather; breather.setstep(0.01); Latt latt(ROWS, COLS, VCELLS, HCELLS, bc, &breather); Minmax mm(&latt); main.cpp (продолжение)
double a[VCELLS*ROWS][HCELLS*COLS][2]; for(int i=0; i
Заключение Нелинейные дискретные среды - объект пристального внимания современной физики Параллельные вычислительные системы - эффективный инструмент для их изучения Наше направление: дискретные бризеры