Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#34369 closed enhancement (fixed)

arpack with mpich2

Reported by: numaryu Owned by: mamoll (Mark Moll)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: eborisch (Eric A. Borisch)
Port: arpack

Description

I'd like to use mpich2 rather than openmpi for the MPI library. I'm mainly using mpich2, and it seems openmpi and mpich2 can not co-exist (Ticket #11576). So, It would be nice if I can choose which MPI library to use.

The attached file is what I tried to compile arpack with mpich2. Compilation was successful, but I have not tested if arpack works properly.

Note that the location of include files of mpich2 depends on +default_mpi variant.

Attachments (3)

diff.Portfile (839 bytes) - added by numaryu 12 years ago.
Portfile.diff (839 bytes) - added by numaryu 12 years ago.
Portfile.diff2 (1.5 KB) - added by mamoll (Mark Moll) 12 years ago.

Download all attachments as: .zip

Change History (15)

Changed 12 years ago by numaryu

Attachment: diff.Portfile added

Changed 12 years ago by numaryu

Attachment: Portfile.diff added

comment:1 Changed 12 years ago by eborisch (Eric A. Borisch)

Cc: eborisch@… added

Cc Me!

comment:2 Changed 12 years ago by mf2k (Frank Schima)

Cc: mmoll removed
Owner: changed from macports-tickets@… to mmoll@…
Version: 2.0.4

Trac requires complete email addresses.

This port should use variants for mpich2 and openmpi so the user can choose.

comment:3 Changed 12 years ago by mamoll (Mark Moll)

mpich2 doesn't appear to have the mpif77 program. Are you sure this patch works?

comment:4 Changed 12 years ago by numaryu

I have mpif77 installed because of the +gcc45 variant. Similar to openmpi, mpich2 needs the +gcc4? variant to enable Fortran, but any of the +gcc4? variants is not set by default.

Changed 12 years ago by mamoll (Mark Moll)

Attachment: Portfile.diff2 added

comment:5 Changed 12 years ago by mamoll (Mark Moll)

Ah, I have +gcc46 as a default variant, but that variant doesn't exist for mpich2. Can you try if the Portfile.diff2 patch works?

comment:6 Changed 12 years ago by numaryu

The patch works if mpich2 is installed without +default_mpi. If the +default_mpi variant is given to mpich2, the include files are installed in /opt/local/include. So, arpack fails to find mpif.h.

comment:7 Changed 12 years ago by eborisch (Eric A. Borisch)

FWIW, I am planning ro remove the +default_mpi option; it was there when include files conflicted with openmpi. Openmpi is installing includes in include/openmpi/ now, but other conflicts have cropped up (See #11576).

Once mpich2 1.5 is released I'll be committing the new portfile which will place mpi*.h into ${prefix}/include/ and will be flagged to conflict with openmpi at this point. (This conflict may or may not continue to be the case; see also #11576)

comment:8 Changed 12 years ago by mamoll (Mark Moll)

Resolution: fixed
Status: newclosed

Fixed in r93972.

comment:9 Changed 12 years ago by eborisch (Eric A. Borisch)

Two quick notes:

  • I think the dependencies (for mpich2 and openmpi) should be depends_lib and not depends_build.
  • The the configure.args-append FFLAGS='-I${prefix}/include/mpich2' shouldn't be needed if mpif77 is used, and would be incorrect if mpich2 was installed +default_mpi, or after the 1.5 version is released.

comment:10 Changed 12 years ago by mamoll (Mark Moll)

Fixed in r94055.

comment:11 Changed 12 years ago by eborisch (Eric A. Borisch)

I should have been clearer; the configure.env-append MPIF77=${prefix}/bin/mpif77 line (within the mpich2 variant) is still needed; its existence is why the FFLAGS line isn't needed.

Thanks!

comment:12 Changed 12 years ago by mamoll (Mark Moll)

Sorry. Fixed for real this time in r94060.

Note: See TracTickets for help on using tickets.