Re: [OMPI users] Questions on MPI I/O and ompi_info
On Feb 13, 2014, at 7:30 PM, Ralph Castainwrote: > Hmmm...well, a little digging says that we probably didn't do this as > thoroughly as we should have :-/ Actually, it works exactly as we designed it... but the reasons for doing so (and its effects) are a bit obscure. OMPI imports the ROMIO implementation for MPI I/O functionality. ROMIO actually includes 2 things: the MPI I/O API (i.e., the MPI_File_* functions, constants, and handles), and the back-end implementation of the MPI I/O API. In the bundled ROMIO, we only use the latter and disable the former (and let OMPI provide its own MPI_File_* functions, constants, and handles). A long time ago, someone had the need to use a newer ROMIO than we bundled in OMPI. So we created the "turn all MPI I/O functionality off" configure switch. This not only disables ROMIO, it also disables OMPI's MPI I/O API functions, constants, and handles. It therefore lets someone use an external ROMIO and let ROMIO provide the MPI_File_* functions, constants, and handles. The other option is as you mentioned: just disabling ROMIO. In the v1.6 series, if you disable ROMIO and try to use an MPI_File_* function, it should fail at run-time. In the v1.7 series, it should transparently switch to use the OMPIO plugin (our implementation of the MPI I/O functionality). See the attached PPT for how this looks pictorially. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/ ompi-mpi-io-functionality.pptx Description: ompi-mpi-io-functionality.pptx
Re: [OMPI users] Questions on MPI I/O and ompi_info
Hmmm...well, a little digging says that we probably didn't do this as thoroughly as we should have :-/ Basically, the "MPI I/O Support" line is tied solely to the disable-mpi-io flag. In the 1.6 series, you only had one option for MPI I/O support, and that was romio. So if you disable romio, then you'll get a "failed" reply to those APIs. What we should have done is automatically "disable-mpi-io" if no components were built - i.e., if you disable them all from building. In 1.7, that would mean disabling both romio and ompi-io. In 1.6, that would just mean disabling romio. I'll pass it along to Jeff to see if it can be done - we can certainly change the flag, but maybe not for the 1.6 series On Feb 13, 2014, at 12:01 PM, Blosch, Edwin Lwrote: > Why does ompi_info –c say “MPI I/O Support: yes” even though I configured > using –disable-io-romio? If ompi_info is going to tell me MPI I/O is > supported, then shouldn’t I expect my test program (attached) to work > correctly? (it doesn’t). > > I didn’t disable “built-in” mpi-io, only io-romio. > > --disable-mpi-ioDisable 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 component > system and its specially modified version of ROMIO > --disable-io-romio Disable the ROMIO MPI-IO component > > Thanks, > > Ed > > configure options used: > + ./configure --prefix=/applocal/tools/mpi/intel/openmpi-1.6.4 --without-tm > --without-sge --without-lsf --without-psm --without-portals --without-elan > --without-slurm --without-loadleveler --with-mxm=/opt/mellanox/mxm > --with-mxm-lib=/opt/mellanox/mxm/lib --enable-mpirun-prefix-by-default > --enable-contrib-no-build=vt --disable-per-user-config-files > --disable-io-romio --enable-static > CXX=/applocal/intel/composer_xe_2013/bin/icpc > CC=/applocal/intel/composer_xe_2013/bin/icc 'CFLAGS= -O2' 'CXXFLAGS= -O2' > F77=/applocal/intel/composer_xe_2013/bin/ifort 'FFLAGS=-D_GNU_SOURCE > -traceback -O2' FC=/applocal/intel/composer_xe_2013/bin/ifort > 'FCFLAGS=-D_GNU_SOURCE -traceback -O2' 'LDFLAGS= -static-intel' > > ompi_info –c output: >Configured by: bloscel >Configured on: Tue Jun 11 16:20:00 CDT 2013 > Configure host: mgmt1 > Built by: bloscel > Built on: Tue Jun 11 16:35:12 CDT 2013 > Built host: mgmt1 > C bindings: yes > C++ bindings: yes > Fortran77 bindings: yes (all) > Fortran90 bindings: yes > Fortran90 bindings size: small > C compiler: /applocal/intel/composer_xe_2013/bin/icc > C compiler absolute: > C compiler family name: INTEL > C compiler version: 1310.20130514 > C char size: 1 > C bool size: 1 > C short size: 2 > C int size: 4 > C long size: 8 > C float size: 4 >C double size: 8 > C pointer size: 8 > C char align: 1 > C bool align: 1 > C int align: 4 >C float align: 4 > C double align: 8 > C++ compiler: /applocal/intel/composer_xe_2013/bin/icpc >C++ compiler absolute: none > Fortran77 compiler: /applocal/intel/composer_xe_2013/bin/ifort > Fortran77 compiler abs: > Fortran90 compiler: /applocal/intel/composer_xe_2013/bin/ifort > Fortran90 compiler abs: >Fort integer size: 4 >Fort logical size: 4 > Fort logical value true: -1 > Fort have integer1: yes > Fort have integer2: yes > Fort have integer4: yes > Fort have integer8: yes > Fort have integer16: no > Fort have real4: yes > Fort have real8: yes > Fort have real16: no > Fort have complex8: yes > Fort have complex16: yes > Fort have complex32: no > Fort integer1 size: 1 > Fort integer2 size: 2 > Fort integer4 size: 4 > Fort integer8 size: 8 > Fort integer16 size: -1 > Fort real size: 4 > Fort real4 size: 4 > Fort real8 size: 8 > Fort real16 size: 16 > Fort dbl prec size: 8 > Fort cplx size: 8 > Fort dbl cplx size: 16 > Fort cplx8 size: 8 > Fort cplx16 size: 16 > Fort cplx32 size: 32 > Fort integer align: 1 > Fort integer1 align: 1 > Fort integer2 align: 1 > Fort integer4 align: 1 > Fort integer8 align: 1 > Fort integer16 align: -1 > Fort real align: 1 > Fort real4 align: 1 > Fort real8 align: 1 >Fort real16 align: 1 > Fort dbl prec align: 1 > Fort cplx align: 1 > Fort dbl cplx align: 1 > Fort cplx8 align: 1 >Fort cplx16 align: 1 >Fort cplx32 align: 1 > C profiling: yes >