[mpich2-dev] Announcing the availability of MPICH2-1.0.7rc2

Anthony Chan chan at mcs.anl.gov
Thu Mar 27 15:45:01 CDT 2008


If you are building dcmf, does the configure.in there calls 
PAC_SUBCONFIG_INIT and PAC_SUBCONFIG_FINALIZE ?  Check 
mpid/ch3/configure.in for example.  This may not be related
to the fortran problem that you are seeing, but for consistency reason, 
you may want to look into this as well.

A.Chan

On Thu, 27 Mar 2008, Anthony Chan wrote:

>
> Hi Joseph,
>
> I can't reproduce your problem. Either I don't completely understand what
> the problem is or I am not building dcmf and doing "make testing"...
> Anyway, could explain what exact problem you are seeing and how
> I can reproduce it ?
>
> Send me your <mpich2-build-dir>/config.log and
> <mpich2-build-dir>/test/mpi/config.log as well.
>
> A.Chan
>
> On Wed, 26 Mar 2008, Joseph Ratterman wrote:
>
>> Now I'm seeing the problem again.  The first merge was only with our old
>> code version that we provided to you so that you could include the dcmfd
>> device in the code.  My current problems are in the codebase from the
>> merge with our lastest dirver information.  These are my flags (pulled
>> from config.log, so I'm sure they are correct):
>> 'FFLAGS=-I/bgusr/jratt/del/bgp/work/comm/sys/include -fno-underscoring'
>> 'MPICH2LIB_FFLAGS=-g -Wall -O3 -mcpu=450fp2 -mstrict-align
>> -fno-strict-aliasing -fno-underscoring'
>> 
>> These are what I consider to be the interesting bits of
>> mpich2/tests/mpi/configure:
>>  1615  # If it is building with MPICH2, set xFLAGS to null, as mpiXX
>> contains xFLAGS.
>>  1616  if test "$FROM_MPICH2" = "yes" ; then
>>  1617      CFLAGS=""
>>  1618      CXXFLAGS=""
>>  1619      FFLAGS=""
>>  1620      F90FLAGS=""
>>  1621  fi
>>
>>  5746     # Check for strange behavior of Fortran.  For example, some
>> FreeBSD
>>  5747     # systems use f2c to implement f77, and the version of f2c that
>> they
>>  5748     # use generates TWO (!!!) trailing underscores
>>  5749     # Currently, WDEF is not used but could be...
>>  5750     #
>>  5751     # Eventually, we want to be able to override the choices here
>> and
>>  5752     # force a particular form.  This is particularly useful in
>> systems
>>  5753     # where a Fortran compiler option is used to force a particular
>>  5754     # external name format (rs6000 xlf, for example).
>>  5755     rm -f conftest*
>>  5756     cat > conftest.f <<EOF
>>  5757         subroutine MY_name( i )
>>  5758         return
>>  5759         end
>>  5760  EOF
>>  5761     # This is the ac_compile line used if LANG_FORTRAN77 is
>> selected
>>  5762     if test "X$ac_fcompile" = "X" ; then
>>  5763         ac_fcompile='${F77-f77} -c $FFLAGS conftest.f 1>&5'
>>  5764     fi
>>  5765     if { (eval echo "$as_me:$LINENO: \"$ac_fcompile\"") >&5
>>  5766    (eval $ac_fcompile) 2>&5
>>  5767    ac_status=$?
>>  5768    echo "$as_me:$LINENO: \$? = $ac_status" >&5
>>  5769    (exit $ac_status); } && test -s conftest.o ; then
>>  5770          mv conftest.o fconftestf.o
>>  5771     else
>>  5772          echo "configure: failed program was:" >&5
>>  5773          cat conftest.f >&5
>>  5774     fi
>> 
>> Based on lines 1619 and 5763, I don't see how (unless $FROM_MPICH2 isn't
>> set) the compile could be done correctly.  In fact, that is the case. When
>> I use the info at the tops of tests/mpi/config.log to manually run
>> configure, it works fine.  When I add "FROM_MPICH2=yes ..." to the start,
>> it no longer works.
>> I added a call to "env" to the generated configure script, so I know that
>> FROM_MPICH2 is set.  mpich2/tests/mpi/configure* doesn't have a single
>> reference to MPICH2LIB_FFLAGS.
>> 
>> What am I missing?
>> 
>> 
>> Thanks in advance,
>> Joe Ratterman
>> 
>> 
>> 
>> 
>> 
>> 
>> Joseph Ratterman/Rochester/IBM at IBMUS
>> Sent by: owner-mpich2-dev at mcs.anl.gov
>> 03/25/08 10:44 AM
>> Please respond to
>> mpich2-dev at mcs.anl.gov
>> 
>> 
>> To
>> mpich2-dev at mcs.anl.gov
>> cc
>> 
>> Subject
>> Re: [mpich2-dev] Announcing the availability of MPICH2-1.0.7rc2
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> I changed all "?FLAGS=" to "MPICH2LIB_?FLAGS=", and "MPI_?FLAGS=" to
>> "?FLAGS=".  Now the configure commands look like this.  They both have
>> "-fno-underscoring", so they both get the same right answer.
>> build/mpich2/dcmf/config.log:273:configure:6471: checking for Fortran 77
>> name mangling
>> build/mpich2/dcmf/config.log-274-configure:6496:
>> /bgsys/drivers/DRV120_2008-080320P/ppc/gnu-linux/bin/powerpc-bgp-linux-gfortran
>> -c -Wall -fno-underscoring -g -Wall -O3 -mcpu=450fp2 -mstrict-align
>> -fno-strict-aliasing -fno-underscoring conftest.f 1>&5
>> build/mpich2/dcmf/test/mpi/config.log:473:configure:5734: checking for
>> Fortran 77 name mangling
>> build/mpich2/dcmf/test/mpi/config.log-474-configure:5759:
>> /bgsys/drivers/DRV120_2008-080320P/ppc/gnu-linux/bin/powerpc-bgp-linux-gfortran
>> -c -Wall -fno-underscoring conftest.f 1>&5
>> 
>> It also appears to be adding the correct flags to the compiler scripts.
>> 
>> 
>> Thanks for your help!
>> Joe Ratterman
>> 
>> 
>> 
>> 
>> Pavan Balaji <balaji at mcs.anl.gov>
>> Sent by: owner-mpich2-dev at mcs.anl.gov
>> 03/24/08 09:58 PM
>> 
>> Please respond to
>> mpich2-dev at mcs.anl.gov
>> 
>> 
>> To
>> mpich2-dev at mcs.anl.gov
>> cc
>> 
>> Subject
>> Re: [mpich2-dev] Announcing the availability of MPICH2-1.0.7rc2
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> Joe,
>> 
>> The flags definitions have changed a bit since 1.0.7rc1. The previous
>> usage of the flags were causing duplication of flags for the MPICH2 test
>> suite. If you want to just compile MPICH2 with some flags, and not have
>> them reflect in mpif77, etc., you should set MPICH2LIB_FFLAGS to these
>> flags. Here's the usage:
>> 
>> FFLAGS --> used to compile MPICH2 and gets appended to mpif77
>> MPICH2LIB_FFLAGS --> only used to compile MPICH2
>> 
>> MPI_FFLAGS, etc., are deprecated.
>> 
>> -- Pavan
>> 
>> On 03/24/2008 08:26 PM, Joseph Ratterman wrote:
>>> 
>>> We downloaded the RC2 release and merged it into our code base.  When
>>> building the tests, we found that the Fortran underscoring in the main
>>> MPICH2 code did not match the settings in the tests directory.  This
>>> caused the build to fail.
>>> We set our FFLAGS with these options:
>>> FFLAGS='-g -Wall -O3 -mcpu=450fp2 -mstrict-align -fno-strict-aliasing
>>> -fno-underscoring'
>>> MPI_FFLAGS='-Wall -fno-underscoring'
>>> 
>>> The detailed analysis is below, but the problem was in the
>>> mpich2/test/mpi/configure.in file, which blanked the FFLAGS variable
>>> out.  This doesn't make sense for us, since we want to have *fewer*
>>> flags in the generated mpif77 scripts than are used to compile the
>>> objects.  The test-compile in configure is done with the raw gfortran
>>> program, so it needs the flags to get the expected answer.  Later, the
>>> tests directory is built with the mpif77 script that does include the
>>> "-fno-underscoring" option and the Fortran object files have fewer
>>> underscores than the c objects.  Therefore, the Fortran tests that mixed
>> 
>>> c and Fortran language objects failed to match up correctly.
>>> 
>>> What was the reason for this change--is it needed on some system?  Other
>> 
>>> than our solution of removing the new lines from the configure file, do
>>> you have a "correct" way for us to solve the build error?
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Looking at the config.log files from the two directories, it seems that
>>> the FFLAGS variable is missing in the tests dir.
>>> 
>>> ./build/mpich2/dcmf/config.log:257:configure:6471: checking for Fortran
>>> 77 name mangling
>>> ./build/mpich2/dcmf/config.log-258-configure:6496:
>>> 
>> /bgsys/drivers/DRV120_2008-080320P/ppc/gnu-linux/bin/powerpc-bgp-linux-gfortran
>> 
>>> -c -g -Wall -O3 -mcpu=450fp2 -mstrict-align -fno-strict-aliasing
>>> -fno-underscoring conftest.f 1>&5
>>> 
>>> ./build/mpich2/dcmf/test/mpi/config.log:452:configure:5740: checking for
>> 
>>> Fortran 77 name mangling
>>> ./build/mpich2/dcmf/test/mpi/config.log-453-configure:5765:
>>> 
>> /bgsys/drivers/DRV120_2008-080320P/ppc/gnu-linux/bin/powerpc-bgp-linux-gfortran
>> 
>>> -c  conftest.f 1>&5
>>> 
>>> 
>>> After looking through the changes, This appears to be the problem.
>>>  After removing the added lines, the test is run correctly and gets the
>>> expected result.
>>> 
>>> diff --git a/lib/mpi/mpich2/test/mpi/configure.in
>>> b/lib/mpi/mpich2/test/mpi/configure.in
>>> index 9f57971..9542183 100644
>>> --- a/lib/mpi/mpich2/test/mpi/configure.in
>>> +++ b/lib/mpi/mpich2/test/mpi/configure.in
>>> @@ -123,6 +123,14 @@ if test "$enable_threads" = "multiple" ; then
>>>      threadsdir="threads"
>>>  fi
>>> 
>>> +# If it is building with MPICH2, set xFLAGS to null, as mpiXX contains
>>> xFLAGS.
>>> +if test "$FROM_MPICH2" = "yes" ; then
>>> +    CFLAGS=""
>>> +    CXXFLAGS=""
>>> +    FFLAGS=""
>>> +    F90FLAGS=""
>>> +fi
>>> +
>>>  PAC_LOAD_BASE_CACHE
>>>
>>>  PAC_VPATH_CHECK()
>>> 
>>> 
>>> 
>>> 
>>> This is the code that generates the test compile commands shown at the
>> top:
>>> AC_DEFUN(PAC_PROG_F77_NAME_MANGLE,[
>>> AC_CACHE_CHECK([for Fortran 77 name mangling],
>>> pac_cv_prog_f77_name_mangle,
>>> [
>>>    # Check for strange behavior of Fortran.  For example, some FreeBSD
>>>    # systems use f2c to implement f77, and the version of f2c that they
>>>    # use generates TWO (!!!) trailing underscores
>>>    # Currently, WDEF is not used but could be...
>>>    #
>>>    # Eventually, we want to be able to override the choices here and
>>>    # force a particular form.  This is particularly useful in systems
>>>    # where a Fortran compiler option is used to force a particular
>>>    # external name format (rs6000 xlf, for example).
>>>    rm -f conftest*
>>>    cat > conftest.f <<EOF
>>>        subroutine MY_name( i )
>>>        return
>>>        end
>>> EOF
>>>    # This is the ac_compile line used if LANG_FORTRAN77 is selected
>>>    if test "X$ac_fcompile" = "X" ; then
>>>        ac_fcompile='${F77-f77} -c $FFLAGS conftest.f 1>&AC_FD_CC'
>>>    fi
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> *Pavan Balaji <balaji at mcs.anl.gov>*
>>> Sent by: owner-mpich2-dev at mcs.anl.gov
>>> 
>>> 03/21/08 07:32 PM
>>> Please respond to
>>> mpich2-dev at mcs.anl.gov
>>> 
>>> 
>>> 
>>> To
>>>                  mpich2-dev at mcs.anl.gov, mpich-discuss at mcs.anl.gov,
>>> mvapich-core at cse.ohio-state.edu, Edric.Ellis at mathworks.co.uk,
>>> mpich-ms at mcs.anl.gov, dcmf at lists.anl-external.org, knaak at cray.com,
>>> seppo at totalviewtech.com, yann.kalemkarian at bull.net, Satish Balay
>>> <balay at mcs.anl.gov>, Dinesh Kaushik <kaushik at mcs.anl.gov>,
>>> mpi-users at mcs.anl.gov
>>> cc
>>>                  mpich2-core at mcs.anl.gov
>>> Subject
>>>                  [mpich2-dev] Announcing the availability of
>> MPICH2-1.0.7rc2
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Hi all,
>>> 
>>> The second release candidate for the next release of MPICH2 (1.0.7) is
>>> available from
>>> 
>> http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/mpich2-1.0.7rc2.tar.gz
>> .
>>> 
>>> Please try it out and let us know if you encounter any problems. The
>>> major changes since 1.0.6p1 are highlighted below.
>>> 
>>> (Windows binaries are available from
>>> 
>> http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/mpich2-1.0.7rc2-win32-ia32.msi
>> 
>>> 
>>> and
>>> 
>> http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/mpich2-1.0.7rc2-win64-x86-64.msi
>> )
>>> 
>>> Regards,
>>> The MPICH2 Team
>>> 
>>> ---------------------------------------------------------------------
>>> Main changes in 1.0.7
>>> =====================
>>>
>>>  # OVERALL: Initial ROMIO device for BlueGene/P (the ADI device is also
>>> added but is not configurable at this time).
>>>
>>>  # OVERALL: Major clean up for the propagation of user-defined and
>>> other MPICH2 flags throughout the code.
>>>
>>>  # OVERALL: Support for STI Cell Broadband Engine.
>>>
>>>  # OVERALL: Added datatype free hooks to be used by devices
>> independently.
>>>
>>>  # OVERALL: Added device-specific timer support.
>>>
>>>  # OVERALL: make uninstall works cleanly now.
>>>
>>>  # ROMIO: Support to take hints from a config file
>>>
>>>  # ROMIO: more tests and bug fixes for nonblocking I/O
>>>
>>>  # PM/PMI: Added support to use PMI Clique functionality for process
>>> managers that support it.
>>>
>>>  # PM/PMI: Added SLURM support to configure to make it transparent to
>>> users.
>>>
>>>  # PM/PMI: SMPD Singleton Init support.
>>>
>>>  # WINDOWS: Fortran 90 support added.
>>>
>>>  # SCTP: Added MPICH_SCTP_NAGLE_ON support.
>>>
>>>  # MPE: Updated MPE logging API so that it is thread-safe (through
>>> global mutex).
>>>
>>>  # MPE: Added infrastructure to piggyback argument data to MPI states.
>>>
>>>  # DOCS: Documentation creation now works correctly for VPATH builds.
>>>
>>>  # Many other bug fixes, memory leak fixes and code cleanup. A full
>>> list of changes is available using:
>>>    svn log -r100:HEAD
>>> https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/release/MPICH2_1_0_7
>>> -------------------------------------------------------------------
>>> 
>>> --
>>> Pavan Balaji
>>> http://www.mcs.anl.gov/~balaji
>>> 
>>> 
>> 
>> -- 
>> Pavan Balaji
>> http://www.mcs.anl.gov/~balaji
>> 
>> 
>> 
>




More information about the mpich2-dev mailing list