pmininni / GHOST

GHOST (the Geophysical High-Order Suite for Turbulence) is an accurate and highly scalable pseudospectral code that solves a variety of PDEs often encountered in studies of turbulent flows.
39 stars 15 forks source link

(not issue, just question) Other versions of Open MPI #1

Closed s-benavides closed 5 years ago

s-benavides commented 5 years ago

Hola!

Estoy tratando de instalar/compile GHOST en un cluster de mi universidad. En el cluster tienen Open MPI 1.8.8 o 2.0.3 y no 1.10.0. No pense que iba ser un problema pero, por lo que veo, estas versiones de MPI no me dejan poner:

-Wl,-commons,use_dylibs -lmpi_usempif08 -lmpi_usempi_ignore_tkr

en el MPILD_OPEN dentro de Makefile.in.

La cosa es que no se mucho que hacen esas libraries osea que no se si puedo simplemente sacar esos commands. Que me recomiendan hacer?

Gracias! Santi

pmininni commented 5 years ago

Hola! Las diferentes bibliotecas MPI te permiten saber que otras bibliotecas y PATHs se necesitan para compilar. Escribiendo en una terminal lo siguiente:

mpif90 -show

podés ver que compilador y opciones se necesitan en tu sistema y para tu versión de OpenMPI. Como ejemplo, en mi máquina este comando devueve lo siguiente:

gfortran -I/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/include -pthread -I/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/lib -Wl,--enable-new-dtags -L/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi

Podés copiar el resultado que obtengas en tu máquina al Makefile.in (en el bloque de variables que siguen a "# OPENMPI (OPEN)". Todas las opciones que comienzan con "-I" van en "MPIINC_OPEN =", todas las que comienzan con "-L" van en "MPILIB_OPEN =", y todas las demás (dejando fuera el compilador gfortran) van en "MPILD_OPEN =". Con estos cambios GHOST debería compilar sin problemas usando cualquier versión de OpenMPI.

s-benavides commented 5 years ago

Hola! Las diferentes bibliotecas MPI te permiten saber que otras bibliotecas y PATHs se necesitan para compilar. Escribiendo en una terminal lo siguiente:

mpif90 -show

podés ver que compilador y opciones se necesitan en tu sistema y para tu versión de OpenMPI. Como ejemplo, en mi máquina este comando devueve lo siguiente:

gfortran -I/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/include -pthread -I/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/lib -Wl,-rpath -Wl,/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/lib -Wl,--enable-new-dtags -L/opt/ohpc/pub/mpi/openmpi3-gnu7/3.0.0/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi

Podés copiar el resultado que obtengas en tu máquina al Makefile.in (en el bloque de variables que siguen a "# OPENMPI (OPEN)". Todas las opciones que comienzan con "-I" van en "MPIINC_OPEN =", todas las que comienzan con "-L" van en "MPILIB_OPEN =", y todas las demás (dejando fuera el compilador gfortran) van en "MPILD_OPEN =". Con estos cambios GHOST debería compilar sin problemas usando cualquier versión de OpenMPI.

Perfecto! Gracias por tu ayuda!