This repository has been archived by the owner. It is now read-only.

Conflict between OpenMPI 1.7.3 and libevent #23642

Closed
dpo opened this Issue Oct 26, 2013 · 16 comments

Comments

Projects
None yet
4 participants
@dpo
Contributor

dpo commented Oct 26, 2013

OpenMPI has always bundled libevent but in 1.7.3, libevent is more apparent. This causes a conflict causing the linking step to fail: https://gist.github.com/7175402

One possible solution would be to place the *.h files in libexec and symlink everything in there except for the event2 folder.

@adamv

This comment has been minimized.

Show comment Hide comment
@adamv

adamv Oct 27, 2013

Contributor

Does Debian offer any guidance on this?

Contributor

adamv commented Oct 27, 2013

Does Debian offer any guidance on this?

@manphiz

This comment has been minimized.

Show comment Hide comment
@manphiz

manphiz Oct 27, 2013

Contributor

OpenMPI and libevent are marked conflicts for the exact reason since d9823c1. Force link at your own risk.

Contributor

manphiz commented Oct 27, 2013

OpenMPI and libevent are marked conflicts for the exact reason since d9823c1. Force link at your own risk.

@dpo

This comment has been minimized.

Show comment Hide comment
@dpo

dpo Oct 27, 2013

Contributor

Thanks @manphiz I didn't have the very latest formulae marked as conflictual. I think this is only a partial solution though as some formulae, such as homebrew/science/scalapack fail to build:

$ brew install scalapack
==> Using Homebrew-provided fortran compiler.
This may be changed by setting the FC environment variable.
==> Downloading http://www.netlib.org/scalapack/scalapack-2.0.2.tgz
Already downloaded: /Library/Caches/Homebrew/scalapack-2.0.2.tgz
==> cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/scalapack/2.0.2 -DCMAKE_BUILD_TYPE=None -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_VERBOSE_MAKEFILE=ON -Wno-dev -DBLAS_LIBRARIES=-lopenblas -DLAPACK_LIBRARIES=-lope
  --> MPI Library NOT FOUND -- please set MPI_BASE_DIR accordingly --

I've seen Ubuntu discussions about removing libevent from OpenMPI and linking against a system libevent, but the OpenMPI folks recommend against that. I'll check if Debian provides anything else.

Contributor

dpo commented Oct 27, 2013

Thanks @manphiz I didn't have the very latest formulae marked as conflictual. I think this is only a partial solution though as some formulae, such as homebrew/science/scalapack fail to build:

$ brew install scalapack
==> Using Homebrew-provided fortran compiler.
This may be changed by setting the FC environment variable.
==> Downloading http://www.netlib.org/scalapack/scalapack-2.0.2.tgz
Already downloaded: /Library/Caches/Homebrew/scalapack-2.0.2.tgz
==> cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/scalapack/2.0.2 -DCMAKE_BUILD_TYPE=None -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_VERBOSE_MAKEFILE=ON -Wno-dev -DBLAS_LIBRARIES=-lopenblas -DLAPACK_LIBRARIES=-lope
  --> MPI Library NOT FOUND -- please set MPI_BASE_DIR accordingly --

I've seen Ubuntu discussions about removing libevent from OpenMPI and linking against a system libevent, but the OpenMPI folks recommend against that. I'll check if Debian provides anything else.

@mistydemeo

This comment has been minimized.

Show comment Hide comment
@mistydemeo

mistydemeo Oct 27, 2013

Contributor

but the OpenMPI folks recommend against that.

Are there links you could provide? I'm interested in reading more on the situation.

Contributor

mistydemeo commented Oct 27, 2013

but the OpenMPI folks recommend against that.

Are there links you could provide? I'm interested in reading more on the situation.

@dpo

This comment has been minimized.

Show comment Hide comment
@dpo

dpo Oct 27, 2013

Contributor

See http://www.open-mpi.org/community/lists/devel/2013/04/12273.php (sorry, it was Fedora, not Ubuntu).

On www.open-mpi.org, version 1.7 is listed as a "feature" version while 1.6 is "stable". Perhaps it's 1.6.5 that should stay in core and 1.7.3 go to homebrew/versions until they release the 1.9 (at which point they promise ability to link against a separate libevent).

EDIT: see also https://svn.open-mpi.org/source/xref/ompi-trunk/opal/mca/event/base/README.openmpi

Contributor

dpo commented Oct 27, 2013

See http://www.open-mpi.org/community/lists/devel/2013/04/12273.php (sorry, it was Fedora, not Ubuntu).

On www.open-mpi.org, version 1.7 is listed as a "feature" version while 1.6 is "stable". Perhaps it's 1.6.5 that should stay in core and 1.7.3 go to homebrew/versions until they release the 1.9 (at which point they promise ability to link against a separate libevent).

EDIT: see also https://svn.open-mpi.org/source/xref/ompi-trunk/opal/mca/event/base/README.openmpi

@manphiz

This comment has been minimized.

Show comment Hide comment
@manphiz

manphiz Oct 27, 2013

Contributor

The reason I promote 1.7.x to cire is that 1.6.x doesn't pass make check using clang, which is the only compiler shipped with Xcode 5.0 and link to libc++. This is an unfortunate situation, but also an upstream issue.

Also, your issue of scalapack seems unrelated, or at least you didn't follow the trouble shooting guide. Please open a new issue for that.

Contributor

manphiz commented Oct 27, 2013

The reason I promote 1.7.x to cire is that 1.6.x doesn't pass make check using clang, which is the only compiler shipped with Xcode 5.0 and link to libc++. This is an unfortunate situation, but also an upstream issue.

Also, your issue of scalapack seems unrelated, or at least you didn't follow the trouble shooting guide. Please open a new issue for that.

@manphiz

This comment has been minimized.

Show comment Hide comment
@manphiz

manphiz Oct 27, 2013

Contributor

@dpo Also, a keg_onlyed open-mpi16 is submitted to homebrew-versions (https://github.com/Homebrew/homebrew-versions/blob/master/open-mpi16.rb). If scalapack can only build against openmpi 1.6.x, you can try changing the dependency to this one.

Contributor

manphiz commented Oct 27, 2013

@dpo Also, a keg_onlyed open-mpi16 is submitted to homebrew-versions (https://github.com/Homebrew/homebrew-versions/blob/master/open-mpi16.rb). If scalapack can only build against openmpi 1.6.x, you can try changing the dependency to this one.

@dpo

This comment has been minimized.

Show comment Hide comment
@dpo

dpo Oct 28, 2013

Contributor

@manphiz I'm aware of open-mpi16. I discovered that my libevent was only used for tmux. After unlinking those two, open-mpi built and installed correctly. scalapack linked against it correctly too.

Still, it's unsettling to not be able to have both open-mpi and tmux (or anything that uses libevent) at the same time:

$ brew uses libevent --recursive
byobu        io       memcached    pgbouncer        transmission
drizzle      libcouchbase     memcacheq    redsocks     twemcache
fragroute    libcouchbase1    mysql-proxy      tmux         wemux
gearman      libmemcached     nylon        tor
grok         lldpd        ori          torsocks
Contributor

dpo commented Oct 28, 2013

@manphiz I'm aware of open-mpi16. I discovered that my libevent was only used for tmux. After unlinking those two, open-mpi built and installed correctly. scalapack linked against it correctly too.

Still, it's unsettling to not be able to have both open-mpi and tmux (or anything that uses libevent) at the same time:

$ brew uses libevent --recursive
byobu        io       memcached    pgbouncer        transmission
drizzle      libcouchbase     memcacheq    redsocks     twemcache
fragroute    libcouchbase1    mysql-proxy      tmux         wemux
gearman      libmemcached     nylon        tor
grok         lldpd        ori          torsocks
@mistydemeo

This comment has been minimized.

Show comment Hide comment
@mistydemeo

mistydemeo Oct 28, 2013

Contributor

The thread discusses that OpenMPI has always included libevent, but the thread doesn't address the fact that libevent is being installed publicly. I'm wondering if that part's intentional, or if OpenMPI is supposed to be keeping its libevent private.

Contributor

mistydemeo commented Oct 28, 2013

The thread discusses that OpenMPI has always included libevent, but the thread doesn't address the fact that libevent is being installed publicly. I'm wondering if that part's intentional, or if OpenMPI is supposed to be keeping its libevent private.

@dpo

This comment has been minimized.

Show comment Hide comment
@dpo

dpo Oct 28, 2013

Contributor

And it probably shouldn't be installed publicly because the header files in the two libevents differ.

Contributor

dpo commented Oct 28, 2013

And it probably shouldn't be installed publicly because the header files in the two libevents differ.

@mistydemeo

This comment has been minimized.

Show comment Hide comment
@mistydemeo

mistydemeo Oct 28, 2013

Contributor

Can someone with openmpi 1.7.x installed paste the results of brew ls -v openmpi? Thanks!

Contributor

mistydemeo commented Oct 28, 2013

Can someone with openmpi 1.7.x installed paste the results of brew ls -v openmpi? Thanks!

@dpo

This comment has been minimized.

Show comment Hide comment
@dpo

dpo Oct 28, 2013

Contributor
@manphiz

This comment has been minimized.

Show comment Hide comment
@manphiz

manphiz Oct 29, 2013

Contributor

Suggest report to upstream bug tracker, and request the embedded libevent be kept at a private place to avoid conflicts.

Contributor

manphiz commented Oct 29, 2013

Suggest report to upstream bug tracker, and request the embedded libevent be kept at a private place to avoid conflicts.

@dpo

This comment has been minimized.

Show comment Hide comment
@adamv

This comment has been minimized.

Show comment Hide comment
@adamv

adamv Nov 3, 2013

Contributor

Thanks

Contributor

adamv commented Nov 3, 2013

Thanks

@dpo dpo referenced this issue Nov 5, 2013

Closed

Update Open-MPI #24013

@dpo

This comment has been minimized.

Show comment Hide comment
@dpo

dpo Nov 5, 2013

Contributor

An updated formula that should resolve this conflict is in #24013. See the link above for the full discussion with the OpenMPI folks.

Contributor

dpo commented Nov 5, 2013

An updated formula that should resolve this conflict is in #24013. See the link above for the full discussion with the OpenMPI folks.

@dpo dpo closed this Nov 6, 2013

@xu-cheng xu-cheng locked and limited conversation to collaborators Feb 17, 2016

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.