У выражения должно быть постоянное значение ошибки в массиве через размер мира MPI - PullRequest
0 голосов
/ 28 апреля 2018

Недавно я начал изучать программирование MPI и пытался программировать его как в Linux, так и в Windows. У меня нет проблем с запуском приложения MPI в Linux, однако я наткнулся на expression must have a constant value error в Visual Studio

Например, я пытаюсь получить world_size через MPI_Comm_size(MPI_COMM_WORLD, &world_size); и создать массив на основе world_size (например)

Пример кода:

#include <mpi.h>
      int world_size;
      MPI_Comm_size(MPI_COMM_WORLD, &world_size);

      int database[world_size]; //error occured here

Однако, когда я запускаю его в Linux, он работает отлично, так как я могу выполнить код, указав количество процессов, которые я хочу иметь. Я что-то упускаю? Я перешел по этой ссылке на YouTube , которая научила меня устанавливать MS-MPI на мою Visual Studio 2015.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 28 апреля 2018

Автоматическое определение размера массива с использованием неконстантных значений на самом деле работает с gcc (https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html). Однако это считается плохой идеей, потому что (как вы только что узнали) ваш код больше не будет переносимым. Вам просто нужно измените код для создания массива, используя new. Возможно, вы захотите сгенерировать ошибку, чтобы убедиться, что ваш код переносим: Отключить автоматические массивы переменной длины в gcc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...