2011-04-23 11 views
5

Nunca he hecho ninguna programación importante fuera de VS08.Configuración de G ++ o ICC para mpi.h en Ubuntu

Estoy tratando de compilar un programa llamado LAMMPS con cualquiera de los dos archivos make relevantes. Uno llama a g ++ y el otro llama a icc (compilador de Intel).

ICC produce este error:

icc -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M write_restart.cpp > write_restart.d write_restart.cpp(15): catastrophic error: cannot open source file "mpi.h" #include "mpi.h"

y g ++ lanza este error

g++ -g -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M verlet.cpp > verlet.d pointers.h:25: fatal error: mpi.h: No such file or directory compilation terminated.

El archivo mpi.h se encuentra en/usr/lib/openmpi/include

Es Entiendo que necesito establecer esa variable $ PATH que dice

bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/opt/intel/bin:/usr/lib/openmpi/include:

y $ LD_LIBRARY_PATH que actualmente lee

/usr/lib/openmpi/lib:

SO, ¿cómo se incluye el archivo mpi.h? ¿Para que icc o g ++ lo encuentren?

Respuesta

2

bien, así que tengo que trabajar con g ++ al configurar cc como "mpiC++ mpich2" en lugar de "mpiC++"

5

mpi.h es un encabezado para la biblioteca MPI. Eso se incluiría si usa el compilador de compilador mpiC++ MPI en lugar de g ++ en su archivo MAKE. mpiC++ llamará al compilador apropiado. De lo que describes, tienes el paquete openmpi instalado en tu máquina ubuntu.

Para obtener más información, debe consultar el manual, p.

http://lammps.sandia.gov/doc/Section_start.html#2_2 (por LAMMPS)

y quizás necesita ver el manual openmpi cuanto a cómo configurar adicional de compilador. No estoy seguro de si esto se puede hacer después de que se haya creado openmpi. Por defecto, creo que en Ubuntu los wrappers del compilador de OpenMPI solo llamarían a g ++. CMIIW.

+0

fichero Make escupe un ejecutable que se bloquea inmediatamente con> error fatal en MPI_Comm_rank: comunicador no válida, la pila de errores: MPI_Comm_rank (106): MPI_Comm_rank (comm = 0x8e5bc0, rango = 0x2854d00) falló MPI_Comm_rank (64) .: Comunicador inválido – Mikhail

+0

Bien, entonces lo tengo que trabajar con g ++ cuando configuro cc como "mpiC++. Mpich2" en lugar de "mpiC++" – Mikhail

0

puede intentar compilar usando openmpi hacer archivo en/src/HACER maquillaje openmpi

en mi caso, esta opción se ha realizado correctamente

Cuestiones relacionadas