Я использую MPI_Bcast в C, когда я выполнил модель, она дает ошибку, необходимую PGC-S-0094-Illegal преобразование типа (om3coupled.c: 7284)Неверное преобразование типа, требуемое в MPI, советы по отладке?
но линия 7284 является довольно простой код:
MPI_Bcast(sumw,1,MPI_FLOAT,0,MPI_COMM_WORLD);
, где sumw - значение поплавка, равное 1, я определил его ранее. Я попытался передать его из корневого процесса во все узлы. Я знаю, что я, вероятно, перепутался где-то в другом месте, чтобы привести к ошибке в этой, казалось бы, правильной строке, но на этой строке я получил только сообщение об ошибке. Кто-нибудь знает, как отлаживать? Поскольку код 7000 + линии, так что я не придала исходный код
Вы правы, это действительно проблема с адресом. Моя путаница в том, что я видел много MP_Bcast в модели, просто передающей матрицу с плавающей точкой без добавления «&», например MPI_Bcast (ind, nmem, MPI_INT, 0, MPI_COMM_WORLD); где ind - одномерный массив типа float (1 * nmem). Когда «&» необходимо? – harmony
вам нужно '&' конвертировать в адрес, когда у вас есть значения. Если у вас есть массив, он вам не нужен, поскольку он уже является адресом. –