2016-09-14 2 views
2

J'ai installé Open MPI et FFTW sur mon mac. J'ai utilisé avec succès FFTW, maintenant j'essaie de l'utiliser avec MPI.Compiler FFTW avec MPI en C

Voici ce que je suis en train de courir:

int main(int argc, char **argv){ 
    clock_t time0, time1; 
    int N = 10; 
    fftw_complex *in, *out; 
    fftw_plan p; 
    MPI_Init(&argc, &argv); 
    fftw_mpi_init(); 
    in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); 
    out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); 
    p = fftw_mpi_plan_dft_1d(N, in, out,MPI_COMM_WORLD, FFTW_FORWARD, FFTW_ESTIMATE); 
    for (int i = 0; i<N; i++) { 
     in[i]=i+(i+1)*I; 
    } 
    time0 = clock(); 
    fftw_execute(p); 
    time1 = clock(); 
    printf(" FFT time = %f \n\n", (float)(time1 - time0)/CLOCKS_PER_SEC); 
    fftw_destroy_plan(p); 
    fftw_free(in); fftw_free(out); 
    MPI_Finalize(); 
    return 0; 
} 

Voici comment je tente de compiler:

gcc -I/usr/local/include test.c -L/usr/local/lib -lfftw3_mpi 

C'est presque identique à la façon dont je compilé sans mpi et tout a bien fonctionné :

gcc -I/usr/local/include test.c -L/usr/local/lib -lfftw3 

Mais maintenant je vois beaucoup de ceci:

enter image description here

Comment puis-je résoudre ce problème? Je sais que j'ai installé OpenMPI, l'installation de FFTW a échoué sans elle.

+0

Je vais essayer – Burgundy

+0

savez-vous comment faire? – Burgundy

+1

Je l'ai fait et j'avais toujours le même problème mais avec des fonctions différentes, donc j'ai aussi ajouté -lfftw3 et maintenant ça marche, merci !! – Burgundy

Répondre

1
  1. Ajouter -lfftw3 après -lfftw3_mpi

  2. Utilisation mpicxx au lieu de gcc

Commande: mpicxx test.c -lfftw3_mpi -lfftw3