Mpi e numeri processore

toni1705

Nuovo Utente
98
9
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


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;
}
mi riporta il seguente errore
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
c'è un modo per poter usare tranquillamente ,su windows, mpi??
 

Ibernato

Utente Èlite
4,330
2,047
OS
Windows 10 Pro / Ubuntu 22.04
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


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;
}
mi riporta il seguente errore
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
c'è un modo per poter usare tranquillamente ,su windows, mpi??
Hai specificato da linea di comando (quando fai mpirun) il numero di processori?
Se ricordo bene dovrebbe essere
Codice:
mpirun -np num_processori nome_programma
 

Ibernato

Utente Èlite
4,330
2,047
OS
Windows 10 Pro / Ubuntu 22.04
no perchè nè codeblock nè visual studio ne danno la possibilità
Non sono pratico in visual studio con il C na sicuramente c'è una opzione dove inserire questi parametri. In alternativa eseguilo dalla bash di Linux presente in Windows 10
 
  • Mi piace
Reazioni: toni1705

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili