4.9.6. MPI functionality

The following are command line options to set the default for various MPI API behaviors that can be used with configure:

  • --with-mpi-param-check[=VALUE]: Whether or not to check MPI function parameters for errors at runtime. The following VALUEs are permitted:

    • always: MPI function parameters are always checked for errors

    • never: MPI function parameters are never checked for errors

    • runtime: Whether MPI function parameters are checked depends on the value of the MCA parameter mpi_param_check (default: yes).

    • yes: Synonym for “always” (same as --with-mpi-param-check).

    • no: Synonym for “never” (same as --without-mpi-param-check).

    If --with-mpi-param is not specified, runtime is the default.

  • --disable-mpi-thread-multiple: Disable the MPI thread level MPI_THREAD_MULTIPLE (it is enabled by default).

  • --disable-ft: Disable the User-Level Fault Mitigation (ULFM) support in Open MPI (it is enabled by default).

    See the ULFM section for more information.

  • --enable-mpi-java: Enable building of an EXPERIMENTAL Java MPI interface (disabled by default). You may also need to specify --with-jdk-dir, --with-jdk-bindir, and/or --with-jdk-headers.


    Note that this Java interface is INCOMPLETE (meaning: it does not support all MPI functionality) and LIKELY TO CHANGE. The Open MPI developers would very much like to hear your feedback about this interface.

    See the Java section for many more details.

  • --enable-mpi-fortran[=VALUE]: By default, Open MPI will attempt to build all 3 Fortran bindings: mpif.h, the mpi module, and the mpi_f08 module. The following VALUEs are permitted:

    • all: Synonym for yes.

    • yes: Attempt to build all 3 Fortran bindings; skip any binding that cannot be built (same as --enable-mpi-fortran).

    • mpifh: Only build mpif.h support.

    • usempi: Only build mpif.h and mpi module support.

    • usempif08: Build mpif.h, mpi module, and mpi_f08 module support.

    • none: Synonym for no.

    • no: Do not build any MPI Fortran support (same as --disable-mpi-fortran). This is mutually exclusive with building the OpenSHMEM Fortran interface.

  • --enable-mpi-ext[=LIST]: Enable Open MPI’s non-portable API extensions. LIST is a comma-delmited list of extensions. If no LIST is specified, all of the extensions are enabled.

    See the “Open MPI API Extensions” section for more details.

  • --disable-mpi-io: Disable built-in support for MPI-2 I/O, likely because an externally-provided MPI I/O package will be used. Default is to use the internal framework system that uses the ompio component and a specially modified version of ROMIO that fits inside the romio component

  • --disable-io-romio: Disable the ROMIO MPI-IO component from being compiled. This is a deprecated mechanism; it is effectively the same as adding io-romio341 to the list of items passed to --enable-mca-no-build.

  • --with-io-romio-flags=FLAGS: Pass FLAGS to the ROMIO distribution configuration script. This option is usually only necessary to pass parallel-filesystem-specific preprocessor/compiler/linker flags back to the ROMIO system.

  • --disable-io-ompio: Disable the ompio MPI-IO component

  • --enable-sparse-groups: Enable the usage of sparse groups. This would save memory significantly especially if you are creating large communicators. (Disabled by default)