[mpich-discuss] [mpich2-announce] Announcing the availability of MPICH2-1.1a2

Joe Ratterman jratt0 at gmail.com
Thu Nov 20 14:24:14 CST 2008


Hi,
 I am working on merging the latest changes from this alpha in the the
BG/P code.  It fully compiles now--I haven't run the tests--but I had
a few issues that I wanted to mention.  Maybe someone already is
working on solutions or can otherwise be of some help.

1)
PAC_CC_FUNCTION_NAME_SYMBOL (configure.in) doesn't work at all in
cross-compilation environments, though I don't know of a good solution to
that.  This is an excerpt of the macro definition (confdb/aclocal_cc.m4):

#include <string.h>
int foo(void);
int foo(void)
{
    return (strcmp(__func__, "foo") == 0);
}
int main(int argc, char ** argv)
{
    return (foo() ? 0 : 1);
}

It is clearly not possible to evaluate that level of detail at compile-time.
 It would be possible to check that the compiler version of __func__ was the
same length as the expected name.  For example, this will compile iff the
length of the __FUNCTION__ string is the same as the expected string:

void v( int x )
{
  switch (x)
    {
    case 0:
      break;
    case (sizeof(__FUNCTION__) == sizeof("v")) :
      break;
    }
}

It works in both SLES gcc and IBM XLc.  By varying the name of the functions
(and macro-izing the switch statement), it would be possible to be certain
that the string was always the correct length.   I think that would be an
effective way of checking without running, but I don't know anything about
most compilers.  BTW, the idea of the "switch" statement is borrowed from
some online examples of "compile-time-asserts", which are attempts to check
certain constraints before the job is even run.  The error isn't
particularly helpful, but it does work.


2)
"src/util/procmap/local_proc.c" seems a bit troubling for us.  We don't use
a PMI device, and specify "MPID_NO_PMI=yes" in src/mpid/dcmfd/mpich2prereq.
 However, this file calls PMI_KVS_Get_key_length_max()
from MPIU_Get_local_procs(). That did compile because C doesn't care too
much, but it wouldn't link, even though we never
call MPIU_Get_local_procs().  This is because the file also
defines MPIU_Get_intranode_rank(), which is uses by both
src/mpi/coll/reduce.c & src/mpi/coll/bcast.c.  I ended up simply deleting
the entire MPIU_Get_local_procs() function to solve the problem.  I am sure
that isn't the answer, but I don't know what is the correct version.


3)
This one might be my problem, but I couldn't compile all the tests because
neither the F77 nor F90 versions of f*/init/checksizes.c had actually been
generated by the test/mpi/configure script.  I don't know why not, but I had
to copy them out of the configure.in script.  There is no reference to them
in the logs, and they are not part of the config.status script to be
re-generated.  I'll be looking into that one more, after I get the system
running properly.


Thanks for listening,
Joe Ratterman
jratt at us.ibm.com











On Mon, Nov 17, 2008 at 08:48, Pavan Balaji <balaji at mcs.anl.gov> wrote:

> Hi all,
>
> A new release of MPICH2 (1.1a1) is available from
> http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads
>
> This is a "feature-preview" release. MPICH2 developers, testers and other
> advanced users are encouraged to try this release out and let us know if you
> encounter any problems. This release is not intended for production systems
> at this time; such systems should continue to use the latest release from
> the 1.0.x branch (currently 1.0.8).
>
> The major additions in the 1.1a2 release are highlighted below.
>
> (Windows binaries are also available on the project website:
> http://www.mcs.anl.gov/research/projects/mpich2).
>
> Regards,
> The MPICH2 Team
>
> --------------------------------------------------------------------------
> Main changes in the 1.1 release (a1 and a2)
> ===========================================
>
>  # OVERALL: Added MPI 2.1 support.
>
>  # OVERALL: Nemesis is now the default configuration channel with a
> completely new TCP communication module.
>
>  # OVERALL: Initial support for shared-memory aware collective
> communication operations.
>
>  # PM/PMI: Initial support for the new Hydra process management framework
> (current support is only for ssh).
>
>  # OVERALL: Support for BlueGene/P through the DCMF library (thanks to IBM
> for the patch).
>
>  # OVERALL: Added dynamic processes support for Nemesis.
>
>  # OVERALL: Added automatic as well as statically runtime configurable
> receive timeout variation for MPD (thanks to OSU for the patch).
>
>  # ROMIO: Added support for MPI_Type_create_resized and
> MPI_Type_create_indexed_block datatypes in ROMIO.
>
>  # Many other bug fixes, memory leak fixes and code cleanup. A full list of
> changes is available using:
>
>
> https://trac.mcs.anl.gov/projects/mpich2/log/mpich2/tags/release/mpich2-1.1a2?rev=HEAD&stop_rev=887&mode=follow_copy
>
> or
>
> svn log -r813:HEAD
> https://svn.mcs.anl.gov/repos/mpi/mpich2/tags/release/mpich2-1.1a2
>
> --
> Pavan Balaji
> http://www.mcs.anl.gov/~balaji
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20081120/50a735b0/attachment.htm>


More information about the mpich-discuss mailing list