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

Pavan Balaji balaji at mcs.anl.gov
Thu Mar 27 16:11:11 CDT 2008


Anthony means dcmfd below, not dcmf. We are still catching up on the new 
names :-).

  -- Pavan

On 03/27/2008 03:45 PM, Anthony Chan wrote:
> 
> 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
>>>
>>>
>>>
>>
> 

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji




More information about the mpich2-dev mailing list