0 votos

Open MPI roto después de actualizar a Mac OS X 10.14.6

Después de actualizar a 10.14.6, openmpi ya no funciona en mi Macbook Air (2019). Al intentar ejecutar cualquier comando relacionado mpicxx o mpiexec producir el error

    dyld: Library not loaded: /usr/local/opt/libevent/lib/libevent-2.1.6.dylib

He reinstalado las últimas versiones de openmpi (4.0.1) y libevent (2.1.11) (esto no era necesario en el anterior openmpi instalación, pero openmpi no pudo make sin ella). Sin embargo, aunque la instalación de openmpi fue exitoso, todavía parece estar corrompido y falla con el mismo error que el anterior cuando se ejecuta mpiexec .

¿Alguna idea de lo que está causando esto, o cómo conseguir que esto funcione de nuevo?

1voto

Song WANG Puntos 151

Open MPI 4.0.3 ya está disponible en homebrew. brew upgrade openmpi resolverá el problema.

1voto

yafshar Puntos 11

Como se explica en el Construcción de MPI abierto FAQ este error puede ocurrir cuando se dan una serie de factores juntos :

  • Si el configurador de Open MPI script elige utilizar una instalación "externa" de hwloc y/o Libevent (es decir, fuera del árbol de fuentes de Open MPI).
  • Si la configuración de Open MPI script elige compiladores C y Fortran de diferentes suites/instalaciones.

En pocas palabras: si las rutas de búsqueda de bibliotecas por defecto difieren entre las suites de compiladores C y Fortran, el enlazador C puede encontrar una libhwloc y/o libevent instalada en el sistema, pero el enlazador Fortran no.

Esto suele ocurrir con más frecuencia en MacOS porque es habitual que se instale Homebrew o MacPorts:

  • hwloc y/o Libevent
  • gcc y gfortran

Hay un algunas soluciones posibles a esta cuestión:

  1. El la mejor solución es asegurarse siempre de que Open MPI utiliza un compilador C y Fortran de la misma suite/instalación. Esto asegurará que ambos compiladores/vinculadores utilizarán las mismas rutas de búsqueda de bibliotecas por defecto, y todo el comportamiento debería ser consistente.

    Por ejemplo, lo siguiente indica al configure script de Open MPI que utilice el gcc-9 para el compilador de C especificando una ruta absoluta para él (y para el compilador de Fortran):

    $ ./configure CC=/usr/local/bin/gcc-9 FC=/usr/local/bin/gfortran ...

    Tenga en cuenta que esto probablemente hará que configure no encuentre el hwloc instalado en Homebrew, y en su lugar vuelva a utilizar el hwloc incluido en el árbol de fuentes de Open MPI.

  2. Como alternativa, puede forzar a configure a seleccionar las versiones incluidas de hwloc y libevent, lo que evita el problema por completo:

    $ ./configure --with-hwloc=internal --with-libevent=internal ...
  3. Finalmente, puedes decirle a configure exactamente dónde encontrar la biblioteca externa hwloc. Sin embargo, esto puede tener algunas consecuencias no deseadas, porque prefijará las rutas de búsqueda por defecto del enlazador de C y Fortran con /usr/local/lib :

    $ ./configure --with-hwloc-libdir=/usr/local/lib ...

Asegúrese de ver también esta pregunta de las FAQ para más información sobre el uso de hwloc y/o Libevent en comparación con las versiones instaladas en el sistema.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X