Запуск дискретных грид-проекций более чем на 4 процессах

В настоящее время моя модель работает с проекцией дискретной сетки на 4 процесса. Я создаю сетку следующим образом:

          std::vector<int> processDimensions;
processDimensions.push_back(2);
processDimensions.push_back(2);

// The grid projection will contain agents of type VirusCellInteractionAgents, so that it can facilitate all agents types
// Then we can use the agent type identifier in each agent ID, to cast them to the correct type of agent.
discreteGridSpace = new repast::SharedDiscreteSpace<VirusCellInteractionAgents, repast::WrapAroundBorders, repast::SimpleAdder<VirusCellInteractionAgents>>("AgentsDeiscreteSpace", gridDimensions, processDimensions, 2, comm);

Я хотел попробовать запустить модель на 8 или 16 процессах, поэтому мне было интересно, какими должны быть processDimensions в таком случае. Я попытался сохранить по 2 на каждой оси, как это было изначально, однако это приводит к следующей ошибке сразу после первого вызова grid balance()

      ===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 71163 RUNNING AT Aleksandars-MBP
=   EXIT CODE: 11
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault: 11 (signal 11)

1 ответ

Размеры должны умножаться на количество процессов. Итак, 4х2 на 8 или 4х4 на 16.

Другие вопросы по тегам