[vtkusers] Advice on how to configure vtk 5.4.0 with mpich2 on OSX (with MacPorts)

Darren Weber darren.weber.lists at gmail.com
Wed May 13 15:46:12 EDT 2009


Hi,

I need help from anyone with experience and an understanding of the MPI
build for vtk.  I would really appreciate advice on how to configure vtk
5.4.0 with mpich2 on OSX.  There appears to be an mpi installation already
on OSX (10.5.6) that cmake picks up automatically.  I also have an alternate
installation of mpich2 provided by MacPorts (see the postscript below for
all the details of that install).  I really need advice on how to change the
config parameters so the build will use this alternative mpich2
installation.  I can guess most of it, but a few things are not clear to me.

What I can guess to change are the following, so that it will use the mpich2
install provided by MacPorts:

        -DVTK_USE_MPI:BOOL=ON
        -DMPIEXEC:FILEPATH=/opt/local/bin/mpiexec \
        -DMPIEXEC_NUMPROC_FLAG:STRING=-np \
        -DMPIEXEC_MAX_NUMPROCS:STRING=${nCPU} \
        -DMPIEXEC_PREFLAGS:STRING= \
        -DMPIEXEC_POSTFLAGS:STRING= \
        -DMPI_COMPILER:FILEPATH=/opt/local/bin/mpicxx \
        -DMPI_INCLUDE_PATH:STRING=/opt/local/include/mpich2 \
        -DMPI_LIBRARY:FILEPATH=/opt/local/lib/libmpichcxx.dylib

How are following variables set?

#// MPI compilation flags (automatically determined from MPI_COMPILER)
#MPI_COMPILE_FLAGS:STRING=-D_REENTRANT

#// Extra MPI libraries to link against
#MPI_EXTRA_LIBRARY:STRING=/usr/lib/libmpi.dylib;/usr/lib/libopen-rte.dylib;/usr/lib/libopen-pal.dylib;/usr/lib/libutil.dylib

#// MPI linking flags
#MPI_LINK_FLAGS:STRING=-Wl,-u,_munmap -Wl,-multiply_defined,suppress


What follows is a list of all the config variable settings that are
automatically determined by cmake 2.6.4, with VTK_USE_MPI turned on in the
command line call to cmake (the result is a mixture of the Apple OSX mpi
install and the mpich2 install from MacPorts, which is all under the
/opt/local prefix -- see postscript below for details).  What I don't
understand is how cmake sets these variables (is there a macro for this?).
In particular, I need to understand how it sets the MPI_EXTRA_LIBRARY and
other compiler and link flags.  I also need to understand the
relationship(s) between the MPI* and the VTK_MPI* configuration variables.

##### BEGIN cmake auto config variables for MPI

// Executable for running MPI programs.
MPIEXEC:FILEPATH=/opt/local/bin/mpiexec

// Maximum number of processors available to run MPI applications.
MPIEXEC_MAX_NUMPROCS:STRING=2

// Flag used by MPI to specify the number of processes for MPIEXEC; the next
option will be the number of processes.
MPIEXEC_NUMPROC_FLAG:STRING=-np

// These flags will come after all flags given to MPIEXEC.
MPIEXEC_POSTFLAGS:STRING=

// These flags will be directly before the executable that is being run by
MPIEXEC.
MPIEXEC_PREFLAGS:STRING=

// MPI compiler. Used only to detect MPI compilation flags.
MPI_COMPILER:FILEPATH=/usr/bin/mpic++

// MPI compilation flags
MPI_COMPILE_FLAGS:STRING=-D_REENTRANT

// Extra MPI libraries to link against
MPI_EXTRA_LIBRARY:STRING=/usr/lib/libmpi.dylib;/usr/lib/libopen-rte.dylib;/usr/lib/libopen-pal.dylib;/usr/lib/libutil.dylib

// MPI include path
MPI_INCLUDE_PATH:STRING=/usr/include

// MPI library to link against
MPI_LIBRARY:FILEPATH=/usr/lib/libmpi_cxx.dylib

// MPI linking flags
MPI_LINK_FLAGS:STRING=-Wl,-u,_munmap -Wl,-multiply_defined,suppress

##### END cmake auto config variables for MPI*

##### BEGIN cmake auto config variables for VTK_MPI*

// Path to a program.
VTK_MPIRUN_EXE:FILEPATH=/opt/local/bin/mpirun

// Maximum number of processors available to run parallel applications. (see
/opt/local/var/macports/build/_Users_dweber_ports_graphics_vtk-devel/work/vtk-5.4/CMakeLists.txt
for more info.)
VTK_MPI_MAX_NUMPROCS:STRING=2

// Flag used by mpi to specify the number of processes, the next option will
be the number of processes. (see
/opt/local/var/macports/build/_Users_dweber_ports_graphics_vtk-devel/work/vtk-5.4/CMakeLists.txt
for more info.)
VTK_MPI_NUMPROC_FLAG:STRING=-np

// These flags will come after all flags given to MPIRun.(see
/opt/local/var/macports/build/_Users_dweber_ports_graphics_vtk-devel/work/vtk-5.4/CMakeLists.txt
for more info.)
VTK_MPI_POSTFLAGS:STRING=

// These flags will be directly before the executable that is being run by
VTK_MPIRUN_EXE. (see
/opt/local/var/macports/build/_Users_dweber_ports_graphics_vtk-devel/work/vtk-5.4/CMakeLists.txt
for more info.)
VTK_MPI_PREFLAGS:STRING=

// These flags will be directly before the number of processess flag (see
/opt/local/var/macports/build/_Users_dweber_ports_graphics_vtk-devel/work/vtk-5.4/CMakeLists.txt
for more info.)
VTK_MPI_PRENUMPROC_FLAGS:STRING=

##### END cmake auto config variables for VTK_MPI*




Thanks in advance,
Darren


PS, this is a content listing for the mpich2 install from MacPorts
(currently mpich2 @1.0.8):

Port mpich2 contains:
  /opt/local/bin/check_callstack
  /opt/local/bin/clog2_join
  /opt/local/bin/clog2_print
  /opt/local/bin/clog2_repair
  /opt/local/bin/clog2print
  /opt/local/bin/clog2TOslog2
  /opt/local/bin/clogprint
  /opt/local/bin/clogTOslog2
  /opt/local/bin/jumpshot
  /opt/local/bin/logconvertor
  /opt/local/bin/mpd
  /opt/local/bin/mpd.py
  /opt/local/bin/mpdallexit
  /opt/local/bin/mpdallexit.py
  /opt/local/bin/mpdboot
  /opt/local/bin/mpdboot.py
  /opt/local/bin/mpdcheck
  /opt/local/bin/mpdcheck.py
  /opt/local/bin/mpdchkpyver.py
  /opt/local/bin/mpdcleanup
  /opt/local/bin/mpdcleanup.py
  /opt/local/bin/mpdexit
  /opt/local/bin/mpdexit.py
  /opt/local/bin/mpdgdbdrv.py
  /opt/local/bin/mpdhelp
  /opt/local/bin/mpdhelp.py
  /opt/local/bin/mpdkilljob
  /opt/local/bin/mpdkilljob.py
  /opt/local/bin/mpdlib.py
  /opt/local/bin/mpdlistjobs
  /opt/local/bin/mpdlistjobs.py
  /opt/local/bin/mpdman.py
  /opt/local/bin/mpdringtest
  /opt/local/bin/mpdringtest.py
  /opt/local/bin/mpdroot
  /opt/local/bin/mpdrun
  /opt/local/bin/mpdrun.py
  /opt/local/bin/mpdsigjob
  /opt/local/bin/mpdsigjob.py
  /opt/local/bin/mpdtrace
  /opt/local/bin/mpdtrace.py
  /opt/local/bin/mpecc.in
  /opt/local/bin/mpefc.in
  /opt/local/bin/mpicc
  /opt/local/bin/mpich2version
  /opt/local/bin/mpicxx
  /opt/local/bin/mpiexec
  /opt/local/bin/mpiexec.py
  /opt/local/bin/mpirun
  /opt/local/bin/mpirun.py
  /opt/local/bin/parkill
  /opt/local/bin/rlog_check_timeorder
  /opt/local/bin/rlog_print
  /opt/local/bin/rlogprint
  /opt/local/bin/rlogTOslog2
  /opt/local/bin/slog2filter
  /opt/local/bin/slog2navigator
  /opt/local/bin/slog2print
  /opt/local/bin/slog2updater
  /opt/local/bin/traceprint.in
  /opt/local/bin/traceTOslog2.in
  /opt/local/etc/mpe_callstack_ldflags.conf
  /opt/local/etc/mpe_f77env.conf
  /opt/local/etc/mpe_f77env.conf.in
  /opt/local/etc/mpe_graphics.conf
  /opt/local/etc/mpe_help.conf
  /opt/local/etc/mpe_help.conf.in
  /opt/local/etc/mpe_log.conf
  /opt/local/etc/mpe_log_postlib.conf
  /opt/local/etc/mpe_mpianim.conf
  /opt/local/etc/mpe_mpicheck.conf
  /opt/local/etc/mpe_mpilog.conf
  /opt/local/etc/mpe_mpitrace.conf
  /opt/local/etc/mpe_nolog.conf
  /opt/local/etc/mpicc.conf
  /opt/local/etc/mpicxx.conf
  /opt/local/etc/mpixxx_opts.conf
  /opt/local/include/mpich2/clog_commset.h
  /opt/local/include/mpich2/clog_const.h
  /opt/local/include/mpich2/clog_inttypes.h
  /opt/local/include/mpich2/clog_uuid.h
  /opt/local/include/mpich2/mpe.h
  /opt/local/include/mpich2/mpe_callstack.h
  /opt/local/include/mpich2/mpe_graphics.h
  /opt/local/include/mpich2/mpe_graphicsf.h
  /opt/local/include/mpich2/mpe_log.h
  /opt/local/include/mpich2/mpe_log_thread.h
  /opt/local/include/mpich2/mpe_logf.h
  /opt/local/include/mpich2/mpe_misc.h
  /opt/local/include/mpich2/mpe_thread.h
  /opt/local/include/mpich2/mpi.h
  /opt/local/include/mpich2/mpicxx.h
  /opt/local/include/mpich2/mpio.h
  /opt/local/include/mpich2/mpiof.h
  /opt/local/lib/clog2print.jar
  /opt/local/lib/clog2TOdrawable.jar
  /opt/local/lib/clog2TOslog2.jar
  /opt/local/lib/clogprint.jar
  /opt/local/lib/clogTOdrawable.jar
  /opt/local/lib/clogTOslog2.jar
  /opt/local/lib/jumpshot.jar
  /opt/local/lib/jumpshot_launcher.jar
  /opt/local/lib/libampe.a
  /opt/local/lib/liblmpe.a
  /opt/local/lib/libmpe.a
  /opt/local/lib/libmpe_collchk.a
  /opt/local/lib/libmpe_nompi.a
  /opt/local/lib/libmpe_nompi_null.a
  /opt/local/lib/libmpe_null.a
  /opt/local/lib/libmpich.1.1.dylib
  /opt/local/lib/libmpich.1.dylib
  /opt/local/lib/libmpich.a
  /opt/local/lib/libmpich.dylib
  /opt/local/lib/libmpichcxx.1.1.dylib
  /opt/local/lib/libmpichcxx.1.dylib
  /opt/local/lib/libmpichcxx.a
  /opt/local/lib/libmpichcxx.dylib
  /opt/local/lib/libpmpich.1.1.dylib
  /opt/local/lib/libpmpich.1.dylib
  /opt/local/lib/libpmpich.a
  /opt/local/lib/libpmpich.dylib
  /opt/local/lib/libtmpe.a
  /opt/local/lib/logconvertor.jar
  /opt/local/lib/mpe_prof.o
  /opt/local/lib/pkgconfig/mpich2-ch3.pc
  /opt/local/lib/slog2filter.jar
  /opt/local/lib/slog2navigator.jar
  /opt/local/lib/slog2printrecur.jar
  /opt/local/lib/slog2printserial.jar
  /opt/local/lib/slog2update205to206.jar
  /opt/local/lib/trace_rlog/libTraceInput.jnilib
  /opt/local/lib/trace_rlog/libTraceInput.la
  /opt/local/lib/traceprint.jar
  /opt/local/lib/traceTOslog2.jar
  /opt/local/sbin/mpecheckinstall
  /opt/local/sbin/mpetestexec
  /opt/local/sbin/mpetestexeclog
  /opt/local/sbin/mpetestlink
  /opt/local/sbin/mpeuninstall
... (snipped out documentation)




PPS, in case it makes any difference, these are all the configure options
set for vtk 5.4.0 with cmake 2.6.4:

-DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.5.sdk
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH=/opt/local
-DCMAKE_INCLUDE_PATH:PATH=/opt/local/include
-DCMAKE_LIBRARY_PATH:PATH=/opt/local/lib
-DCMAKE_INSTALL_NAME_DIR:STRING=/opt/local/lib/vtk-5.4
-DBUILD_DOCUMENTATION:BOOL=OFF
-DVTK_DEBUG_LEAKS:BOOL=ON
-DVTK_USE_CARBON:BOOL=OFF
-DVTK_USE_X:BOOL=OFF
-DVTK_USE_HYBRID:BOOL=ON
-DVTK_USE_GUISUPPORT:BOOL=ON
-DVTK_USE_INFOVIS:BOOL=ON
-DVTK_USE_PARALLEL:BOOL=ON
-DVTK_USE_RENDERING:BOOL=ON
-DVTK_USE_VIEWS:BOOL=ON
-DVTK_USE_GL2PS:BOOL=ON
-DVTK_USE_N_WAY_ARRAYS:BOOL=ON
-DVTK_REQUIRED_OBJCXX_FLAGS="-fobjc-gc"
-DVTK_USE_COCOA:BOOL=ON
-DVTK_DATA_ROOT:PATH=/opt/local/share/vtk-5.4/data
-DBUILD_EXAMPLES:BOOL=ON
-DBUILD_SHARED_LIBS:BOOL=ON
-DCMAKE_SKIP_BUILD_RPATH:BOOL=OFF
-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
-DCMAKE_INSTALL_RPATH:STRING=/opt/local/lib/vtk-5.4
-DVTK_USE_RPATH:BOOL=ON
-DBUILD_TESTING:BOOL=ON
-DVTK_WRAP_JAVA:BOOL=ON
-DVTK_WRAP_PYTHON:BOOL=ON
-DVTK_NO_PYTHON_THREADS:BOOL=OFF
-DPYTHON_INCLUDE_PATH:FILEPATH=/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Headers
-DPYTHON_LIBRARY:FILEPATH=/opt/local/lib/libpython2.6.dylib
-DPYTHON_DEBUG_LIBRARY:FILEPATH=/opt/local/lib/libpython2.6.dylib
-DPYTHON_EXECUTABLE:FILEPATH=/opt/local/bin/python2.6
-DVTK_PYTHON_SETUP_ARGS:STRING=--prefix=/opt/local/Library/Frameworks/Python.framework/Versions/2.6
--root=/opt/local/var/macports/build/_Users_dweber_ports_graphics_vtk-devel/work/destroot
-DVTK_WRAP_TCL:BOOL=ON -DTCL_TCLSH:FILEPATH=/opt/local/bin/tclsh
-DTCL_INCLUDE_PATH:PATH=/opt/local/include
-DTCL_LIBRARY:FILEPATH=/opt/local/lib/libtcl.dylib
-DTK_INCLUDE_PATH:PATH=/opt/local/include
-DTK_LIBRARY:FILEPATH=/opt/local/lib/libtk.dylib
-DVTK_USE_ODBC:BOOL=ON
-DODBC_INCLUDE_DIRECTORIES:PATH=/opt/local/include
-DODBC_LIBRARY:FILEPATH=/opt/local/lib/libodbc.dylib
-DVTK_USE_MPI:BOOL=ON
-DVTK_USE_BOOST:BOOL=ON
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090513/23cc8165/attachment.htm>


More information about the vtkusers mailing list