2017-11-13 4 views
0

Heute habe ich versucht, die klassische MPI "Hallo Welt" ProgrammCompilation von MPI "Hallo Welt" nicht

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

int main(int argc, char** argv) 
{ 
    MPI_Init(&argc, &argv); 

    int rank; 
    int size; 

    MPI_Comm_rank(MPI_COMM_WORLD,&rank); 
    MPI_Comm_size(MPI_COMM_WORLD,&size); 

    printf("I am rank %d of %d\n", rank, size); 

    MPI_Finalize(); 

    return 0; 
} 

Um zu kompilieren zu tun so installiert ich openmpi, lam, lam-devel (für mpicc). Ich habe versucht, der Antwort in this old thread adressing this problem, die zu einer Installation von automake, autoconf, libtool und von here Ich kam auch Corutils installieren folgen. Leider bekomme ich immer noch die folgende Fehlermeldung, wenn Sie den obigen Code gibt

mpicc hello.c -o hello 
gcc: error: libtool:: Datei oder Verzeichnis nicht gefunden 
gcc: error: link:: Datei oder Verzeichnis nicht gefunden 
mpicc: No such file or directory 

Anfordern des Compiler-Version zu kompilieren versuchen

mpicc --version 
gcc (SUSE Linux) 4.8.5 
Copyright (C) 2015 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+0

was sagt 'was mpicc'? was ist mit 'mpicc-show hallo_c.c'? Beachten Sie, dass Sie 'LAM'' mpicc' nicht verwenden können und erwarten Sie, 'Open MPI' zu verwenden. Müssen Sie 'openmpi-devel' installieren? –

+0

@GillesGouaillardet 'was mpicc' gibt'/usr/bin/mpicc', während 'mpicc-showme hello.c' gibt' gcc -pthread hallo.c libtool: link: -pthread -L/usr/lib64 -lammmpio -llamf77mpi -lmpi -llam -lutil -ldl ' – PascExchange

+0

so verwenden Sie' mpicc' für LAM-MPI (die jetzt veraltet ist). Sie würden lieber (installieren und) 'mpicc' für Open MPI verwenden. aber wenn du LAM-MPI benutzen willst, installiere einfach 'libtool' und du solltest in Ordnung sein. –

Antwort

0

Können Sie mpic versuchen ++ statt:

mpic++ hello.c -o hello 

Es ist Arbeiten an meiner Maschine

Ich benutzte openmpi:

sudo apt-get install openmpi-bin