Wie kompilieren und ausführen C-Programm, sowohl mit MPI und OpenMP auf Windows

Ich habe ein Programm auf C, die beide MPI und OpenMP. Um zu kompilieren, dieses Programm auf Windows-system habe ich heruntergeladen und installiert gcc-compiler zur Verfügung gestellt, die von MinGW. Mit diesem compiler kann ich kompilieren und ausführen von C-Programmen mit OpenMP mit der Taste -fopenmp für den gcc. Solche Programme laufen ohne Probleme. Um kompilieren und ausführen von C-Programmen mit MPI habe ich heruntergeladen und installiert MPICH2. Jetzt kann ich kompilieren und ausführen von Programmen ohne Probleme, die Angabe zusätzlicher Parameter für den gcc von MinGW. Aber wenn ich kompilieren wollen und ein Programm ausführen, verwendet sowohl OpenMP und MPI habe ich ein problem. Ich angegeben beide Tasten -fopenmp und Tasten MPI-Programm für den gcc-compiler. Compilator nicht mir irgendwelche Fehler. Ich habe versucht zu starten, mein Programm mpiexec von MPICH2. Mein Programm wollte nicht arbeiten (Es war ein "HelloWorld" - Programm und es wird nicht alles gedruckt ausgegeben). Bitte helfen Sie mir, kompilieren und starten Sie solche Programme korrekt.

Hier ist mein HelloWorld-Programm, das produziert keine Ausgabe.

#include <stdio.h>
#include <mpi.h>

int main(int argc, char ** argv)
{
    int thnum, thtotal;
    int pid, np;

    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&pid);
    MPI_Comm_size(MPI_COMM_WORLD,&np);

    printf("Sequental %d out of %d!\n",pid,np);
    MPI_Barrier(MPI_COMM_WORLD);

    #pragma omp parallel private(thnum,thtotal)
    {
        thnum = omp_get_thread_num();
        thtotal = omp_get_num_threads();
        printf("parallel: %d out of %d from proc %d out of %d\n",thnum,thtotal,pid,np);

    }
    MPI_Barrier(MPI_COMM_WORLD);
    MPI_Finalize();
    return 0;
}
  • Können Sie ein MPI-Programm zu arbeiten (ohne OpenMP)? Was sind die genauen Schritte, die Sie ergreifen, um das Programm erstellen und ausführen?
  • MPI-Programm funktioniert gut. Zum erstellen und ausführen von MPI-Programm ich benutze: gcc -c -o main.o-main.c-I"C:\...\MPHICH2\include"; gcc -o main.exe main.o -L"C:\...\MPICH2\lib" -lmpi; mpiexec -n 4 main.exe
InformationsquelleAutor Appliqué | 2012-10-09
Schreibe einen Kommentar