При попытке выполнить мой код, написанный на C, с использованием библиотеки MPI, я столкнулся с чем-то очень странным.Мой код еще не генерирует синтаксическую ошибку, когда я пытаюсь
mpirun -n 3 ./q4
Я получаю это
hello
hello
hello
from the other side.
from the other side.
from the other side.
Кажется, он никогда не входит в процесс ранга 0.Я понятия не имею, почему это происходит.Этот код структурно идентичен некоторым другим образцам, которые я написал (я могу предоставить весь код, если это необходимо). Однако, если бы я должен был ввести любые две случайные вещи после шестой строки, я получил бы это
1213
123
Enter a length for the string that is divisible by the number of processes Number of vowels 27
Я действительно не знаю, что делать, чтобы это исправить, за исключением того, что я проверил свой код на логические ошибки, которых нет, и даже если они есть, они гораздо позже, что означает, что по крайней мере код под первымесли дело будет выполнено.
int main(int argc, char * argv[])
{
printf("hello\n");
int rank,m,size,num;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
printf("from the other side.\n");
char str[100];
if (rank == 0 )
{
printf("Enter a length for the string that is divisible by the number of processes ");
scanf("%d",&m);
scanf("%s",str);
}
.
.
Если это актуально, я запускаю Ubuntu 18.04.