ciao ragazzi mi sto cimentando nel mondo della programmazione parallela
attualmente uso sia codeblock e sia visual studio 2019(mi piace scrivere il codice qui perchè lo trovo più fluido)
ho quattro processori e ne ho la conferma perchè me lo sono fatto stampare a video dal cmd col comando
echo %NUMBER_OF_PROCESSORS%.
quando inserisco il programma mi riporta 1 processore
mi riporta 1 processore
ne ho conferma perchè quando provo ad inviare un numero ad un'altro processore col seguente codice
mi riporta il seguente errore
c'è un modo per poter usare tranquillamente ,su windows, mpi??
attualmente uso sia codeblock e sia visual studio 2019(mi piace scrivere il codice qui perchè lo trovo più fluido)
ho quattro processori e ne ho la conferma perchè me lo sono fatto stampare a video dal cmd col comando
echo %NUMBER_OF_PROCESSORS%.
quando inserisco il programma mi riporta 1 processore
C:
int main(int argc, char *argv[])
{
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
printf("Hello world! I am %d of %d\n", rank, size);
MPI_Finalize();
return 0;
}
mi riporta 1 processore
ne ho conferma perchè quando provo ad inviare un numero ad un'altro processore col seguente codice
C:
#include <stdio.h>
#include "mpi.h"
int main(int argc, char* argv[])
{
int menum, nproc;
int n, tag, num;
MPI_Status info;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &menum);
MPI_Comm_size(MPI_COMM_WORLD, &nproc);
printf("menum:%d nproc :%d", menum, nproc);
if (menum == 0) {
printf("\ninsert number: ");
scanf_s(" %d", &n);
tag = 10;
MPI_Send(&n, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
else {
tag = 10;
MPI_Recv(&n, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &info);
}
MPI_Get_count(&info, MPI_INT, &num);
MPI_Finalize();
return 0;
}
Codice:
job aborted: [ranks] message
[0] fatal error Fatal error in MPI_Send: Invalid rank, error stack: MPI_Send(buf=0x0056F9F0, count=1, MPI_INT, dest=1, tag=10, MPI_COMM_WORLD) failed Invalid rank has value 1 but must be nonnegative and less than 1