[openib-commits] r7510 - gen2/trunk/src/userspace/mpi/mvapich2-gen2

surs at openib.org surs at openib.org
Fri May 26 14:17:56 PDT 2006


Author: surs
Date: 2006-05-26 14:17:55 -0700 (Fri, 26 May 2006)
New Revision: 7510

Added:
   gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES_MPICH2
Removed:
   gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES
Log:
file CHANGES is actually the changelog for mpich2 package.

Rename the file to CHANGES_MPICH2.



Deleted: gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES
===================================================================
--- gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES	2006-05-26 20:40:14 UTC (rev 7509)
+++ gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES	2006-05-26 21:17:55 UTC (rev 7510)
@@ -1,693 +0,0 @@
-===============================================================================
-			       Changes in 1.0.3
-===============================================================================
-
-- There are major changes to the ch3 device implementation.  Old and 
-  unsupported channels (essm, rdma) have been removed.   The
-  internal interface between ch3 and the channels has been improved to 
-  similify the process of adding a new channel (sharing existing code
-  where possible) and to improve performance.  Further changes in this
-  internal interface are expected.
-
-- Numerous bug fixes and code cleanup
-
-        Creation of intercommunicators and intracommunicators 
-        from the intercommunicators created with Spawn and Connect/Accept
-
-        The computation of the alignment and padding of items within
-        structures now handles additional cases, including systems 
-        where the alignment an padding depends on the type of the first
-	item in the structure
-
-        MPD recognizes wdir info keyword
-
-        gforker's mpiexec supports -env and -genv arguments for controlling
-        which environment variables are delivered to created processes
-
-- While not a bug, to aid in the use of memory trace packages, MPICH2
-  tries to free all allocated data no later than when MPI_Finalize
-  returns.
-
-- Support for DESTDIR in install targets
-
-- Enhancements to SMPD
-
-- In order to support special compiler flags for users that may be
-  different from those used to build MPICH2, the environment variables
-  MPI_CFLAGS, MPI_FFLAGS, MPI_CXXFLAGS, and MPI_F90FLAGS may be used
-  to specify the flags used in mpicc, mpif77, mpicxx, and mpif90 
-  respectively.  The flags CFLAGS, FFLAGS, CXXFLAGS, and F90FLAGS are
-  used in the building of MPICH2.
-
-- Many enhancements to MPE
-
-- Enhanced support for features and idiosyncracies of Fortran 77 and 
-  Fortran 90 compilers, including gfortran, g95, and xlf
-
-- Enhanced support for C++ compilers that do not fully support abstract
-  base classes
-
-- Additional tests in the mpich2/tests/mpi
-    
-- New FAQ included (also available at
-    http://www.mcs.anl.gov/mpi/mpich2/faq.htm) 
-
-- Man pages for mpiexec and mpif90
-
-- Enhancements for developers, including a more flexible and general 
-  mechanism for inserting logging and information messages, controlable
-  with --mpich-dbg-xxx command line arguments or MPICH_DBG_XXX environment
-  variables.
-
-- Note to developers: 
-  This release contains many changes to the structure of the CH3
-  device implementation (in src/mpid/ch3), including signficant
-  reworking of the files (many files have been combined into fewer files
-  representing logical grouping of functions).  The next release of 
-  MPICH2 will contain even more significant changes to the device 
-  structure as we introduce a new communication implementation.
- 
-===============================================================================
-			       Changes in 1.0.2
-===============================================================================
-
-- Optimizations to the MPI-2 one-sided communication functions for the
-  sshm (scalable shared memory) channel when window memory is
-  allocated with MPI_Alloc_mem (for all three synchronization methods).
-
-- Numerous bug fixes and code cleanup. 
-
-- Fixed memory leaks.
-
-- Fixed shared library builds.
-
-- Fixed performance problems with MPI_Type_create_subarray/darray 
-
-- The following changes have been made to MPE2:
-
-  - MPE2 now builds the MPI collective and datatype checking library
-    by default. 
-
-  - SLOG-2 format has been upgraded to 2.0.6 which supports event drawables
-    and provides count of real drawables in preview drawables.
-
-  - new slog2 tools, slog2filter and slog2updater, which both are logfile
-    format convertors.  slog2filter removes undesirable categories of
-    drawables as well as alters the slog2 file structure.  slog2updater
-    is a slog2filter that reads in older logfile format, 2.0.5, and 
-    writes out the latest format 2.0.6.
-
-- The following changes have been made to MPD:
-
-  - Nearly all code has been replaced by new code that follows a more
-    object-oriented approach than before.  This has not changed any
-    fundamental behavior or interfaces.
-
-  - There is info support in spawn and spawn_multiple for providing
-    parts of the environment for spawned processes such as search-path
-    and current working directory.  See the Standard for the required
-    fields.
-
-  - mpdcheck has been enhanced to help users debug their cluster and
-    network configurations.
-
-  - CPickle has replaced marshal as the source module for dumps and loads.
-
-  - The mpigdb command has been replaced by mpiexec -gdb.
-
-  - Alternate interfaces can be used.  See the Installer's Guide.
- 
-
-===============================================================================
-			       Changes in 1.0.1
-===============================================================================
-
-- Copyright statements have been added to all code files, clearly identifying
-  that all code in the distribution is covered by the extremely flexible
-  copyright described in the COPYRIGHT file.
-
-- The MPICH2 test suite (mpich2/test) can now be run against any MPI
-  implementation, not just MPICH2.
-
-- The send and receive socket buffers sizes may now be changed by setting
-  MPICH_SOCKET_BUFFER_SIZE.  Note: the operating system may impose a maximum
-  socket buffer size that prohibits MPICH2 from increasing the buffers to the
-  desire size.  To raise the maximum allowable buffer size, please contact your
-  system administrator.
-
-- Error handling throughout the MPI routines has been improved.  The error
-  handling in some internal routines has been simplified as well, making the
-  routines easier to read.
-
-- MPE (Jumpshot and CLOG logging) is now supported on Microsoft Windows.
-
-- C applications built for Microsoft Windows may select the desired channels at
-  runtime.
-
-- A program not started with mpiexec may become an MPI program by calling
-  MPI_Init.  It will have an MPI_COMM_WORLD of size one.  It may then call
-  other MPI routines, including MPI_COMM_SPAWN, to become a truly parallel
-  program.  At present, the use of MPI_COMM_SPAWN and MPI_COMM_SPAWN_MULTIPLE
-  by such a process is only supported by the MPD process manager.
-
-- Memory leaks in communicator allocation and the C++ binding have been fixed.
-
-- Following GNU guidelines, the parts of the install step that checked the
-  installation have been moved to an installcheck target.  Much of the
-  installation now supports the DESTDIR prefix.
-
-- Microsoft Visual Studio projects have been added to make it possible to build
-  x86-64 version
-
-- Problems with compilers and linkers that do not support weak symbols, which
-  are used to support the PMPI profiling interface, have been corrected.
-
-- Handling of Fortran 77 and Fortran 90 compilers has been improved, including
-  support for g95.
-
-- The Fortran stdcall interface on Microsoft Windows now supports character*.
-
-- A bug in the OS X implementation of poll() caused the sock channel to hang.
-  A workaround has been put in place.
-
-- Problems with installation under OS/X are now detected and corrected.
-  (Install breaks libraries that are more than 10 seconds old!)
-
-- The following changes have been made to MPD:
-
-  - Sending a SIGINT to mpiexec/mpdrun, such as by typing control-C, now causes
-    SIGINT to be sent to the processes within the job.  Previously, SIGKILL was
-    sent to the processes, preventing applications from catching the signal 
-    and performing their own signal processing.
-
-  - The process for merging output has been improved.
-
-  - A new option, -ifhn, has been added to the machine file, allowing the user
-    to select the destination interface to be used for TCP communication.  See
-    the User's Manual for details.
-
-  - The user may now select, via the "-s" option to mpiexec/mpdrun, which
-    processes receive input through stdin.  stdin is immediately closed for all
-    processes not in set receiving input.  This prevents processes not in the
-    set from hanging should they attempt to read from stdin.
-
-  - The MPICH2 Installer's Guide now contains an appendix on troubleshooting
-    problems with MPD.
-
-- The following changes have been made to SMPD:
-
-  - On Windows machines, passwordless authentication (via SSPI) can now be used
-    to start processes on machines within a domain.  This feature is a recent
-    addition, and should be considered experimental.
-
-  - On Windows machines, the -localroot option was added to mpiexec, allowing
-    processes on the local machines to perform GUI operations on the local
-    desktop.
-
-  - On Windows machines, network drive mapping is now supported via the -map
-    option to mpiexec.
-
-  - Three new GUI tools have been added for Microsoft Windows.  These tools are
-    wrappers to the command line tools, mpiexec.exe and smpd.exe.  wmpiexec
-    allows the user to run a job much in the way they with mpiexec.  wmpiconfig
-    provides a means of setting various global options to the SMPD process
-    manager environment.  wmpiregister encrypts the user's credentials and
-    saves them to the Windows Registry.
-
-- The following changes have been made to MPE2:
-
-  - MPE2 no longer attempt to compile or link code during 'make install' to
-    validate the installation.  Instead, 'make installcheck' may now be used to
-    verify that the MPE installation.
-
-  - MPE2 now supports DESTDIR.
-
-- The sock channel now has preliminary support for MPI_THREAD_SERIALIZED and
-  MPI_THREAD_MULTIPLE on both UNIX and Microsoft Windows.  We have performed
-  rudimentary testing; and while overall the results were very positive, known
-  issues do exist.  ROMIO in particular experiences hangs in several places.
-  We plan to correct that in the next release.  As always, please report any
-  difficulties you encounter.
-
-- Another channel capable of communicating with both over sockets and shared
-  memory has been added.  Unlike the ssm channel which waits for new data to
-  arrive by continuously polling the system in a busy loop, the essm channel
-  waits by blocking on an operating system event object.  This channel is
-  experimental, and is only available for Microsoft Windows.
-
-- The topology routines have been modified to allow the device to override the
-  default implementation.  This allows the device to export knowledge of the
-  underlying physical topology to the MPI routines (Dims_create and the
-  reorder == true cases in Cart_create and Graph_create).  
-
-- New memory allocation macros, MPIU_CHK[PL]MEM_*(), have been added to help
-  prevent memory leaks.  See mpich2/src/include/mpimem.h.
-
-- New error reporting macros, MPIU_ERR_*, have been added to simplify the error
-  handling throughout the code, making the code easier to read.  See
-  mpich2/src/include/mpierrs.h.
-
-- Interprocess communication using the Sock interface (sock and ssm channels)
-  may now be bound to a particular destination interface using the environment
-  variable MPICH_INTERFACE_HOSTNAME.  The variable needs to be set for each
-  process for which the destination interface is not the default interface.
-  (Other mechanisms for destination interface selection will be provided in
-  future releases.)  Both MPD and SMPD provide a more simplistic mechanism for
-  specifying the interface.  See the user documentation.
-
-- Too many bug fixes to describe.  Much thanks goes to the users who reported
-  bugs.  Their patience and understanding as we attempted to recreate the
-  problems and solve them is greatly appreciated.
-
-
-===============================================================================
-				Changes in 1.0
-===============================================================================
-
-- MPICH2 now works on Solaris.
-
-- The User's Guide has been expanded considerably.  The Installation Guide has
-  been expanded some as well.
-
-- MPI_COMM_JOIN has been implemented; although like the other dynamic process
-  routines, it is only supported by the Sock channel.
-
-- MPI_COMM_CONNECT and MPI_COMM_ACCEPT are now allowed to connect with remote
-  process to which they are already connected.
-
-- Shared libraries can now be built (and used) on IA32 Linux with the GNU
-  compilers (--enable-sharedlibs=gcc), and on Solaris with the native Sun
-  Workshop compilers (--enable-sharedlibs=solaris).  They may also work on
-  other operating systems with GCC, but that has not been tested.  Previous
-  restrictions disallowing C++ and Fortran bindings when building shared
-  libraries have been removed.
-
-- The dataloop and datatype contents code has been improved to address
-  alignment issues on all platforms.
-
-- A bug in the datatype code, which handled zero block length cases
-  incorrectly, has been fixed.
-
-- An segmentation fault in the datatype memory management, resulting from
-  freeing memory twice, has been fixed.
-
-- The following changes were made to the MPD process manager:
-
-  - MPI_SPAWN_MULTIPLE now works with MPD.
-
-  - The arguments to the 'mpiexec' command supplied by the MPD have changed.
-    First, the -default option has been removed.  Second, more flexible ways to
-    pass environment variables have been added.
-
-  - The commands 'mpdcheck' and 'testconfig' have been to installations using
-    MPD.  These commands test the setup of the machines on which you wish to
-    run MPICH2 jobs.  They help to identify misconfiguration, firewall issues,
-    and other communication problems.
-
-  - Support for MPI_APPNUM and MPI_UNIVERSE_SIZE has been added to the Simple
-    implementation of PMI and the MPD process manager.
-
-  - In general, error detection and recovery in MPD has improved.
-
-- A new process manager, gforker, is now available.  Like the forker process
-  manager, gforker spawns processes using fork(), and thus is quite useful on
-  SMPs machines.  However, unlike forker, gforker supports all of the features
-  of a standard mpiexec, plus some.  Therefore, It should be used in place of
-  the previous forker process manager, which is now deprecated.
-
-- The following changes were made to ROMIO:
-
-  - The amount of duplicated ROMIO code in the close, resize, preallocate,
-    read, write, asynchronous I/O, and sync routines has been substantially
-    reduced.
-
-  - A bug in flattening code, triggered by nested datatypes, has been fixed.
-
-  - Some small memory leaks have been fixed.
-
-  - The error handling has been abstracted allowing different MPI
-    implementations to handle and report error conditions in their own way.
-    Using this abstraction, the error handling routines have been made
-    consistent with rest of MPICH2.
-
-  - AIO support has been cleaned up and unified.  It now works correctly on
-    Linux, and is properly detected on old versions of AIX.
-
-  - A bug in MPI_File_seek code, and underlying support code, has been fixed.
-
-  - Support for PVFS2 has improved.
-
-  - Several dead file systems have been removed.  Others, including HFS, SFS,
-    PIOFS, and Paragon, have been deprecated.
-
-- MPE and CLOG have been updated to version 2.1. For more details, please see
-  src/mpe2/README.
-
-- New macros for memory management were added to support function local
-  allocations (alloca), to rollback pending allocations when error conditions
-  are detected to avoid memory leaks, and to improve the conciseness of code
-  performing memory allocations.
-
-- New error handling macros were added to make internal error handling code
-  more concise.
-
-===============================================================================
-			       Changes in 0.971
-===============================================================================
-
-- Code restricted by copyrights less flexible than the one described in the
-  COPYRIGHT file has been removed.
-
-- Installation and User Guides have been added.
-
-- The SMPD PMI Wire Protocol Reference Manual has been updated.
-
-- To eliminate portability problems, common blocks in mpif.h that spanned
-  multiple lines were broken up into multiple common blocks each described on a
-  single line.
-
-- A new command, mpich2version, was added to allow the user to obtain
-  information about the MPICH2 installation.  This command is currently a
-  simple shell script.  We anticipate that the mpich2version command will
-  eventually provide additional information such as the patches applied and the
-  date of the release.
-
-- The following changes were made to MPD2:
-
-  - Support was added for MPI's "singleton init", in which a single
-    process started in the normal way (i.e., not by mpiexec or mpirun)
-    becomes an MPI process with an MPI_COMM_WORLD of size one by
-    calling MPI_Init.  After this the process can call other MPI
-    functions, including MPI_Comm_spawn.
-
-  - The format for some of the arguments to mpiexec have changed,
-    especially for passing environment variables to MPI processes.
-
-  - In addition to miscellaneous hardening, better error checking and
-    messages have been added.
-
-  - The install process has been improved.  In particular, configure
-    has been updated to check for a working install program and supply
-    it's own installation script (install.sh) if necessary.
-
-  - A new program, mpdcheck, has been added to help diagnose machine
-    configurations that might be erroneous or at least confusing to
-    mpd.
-
-  - Runtime version checking has been added to insure that the Simple
-    implementation of PMI linked into the application and the MPD
-    process manager being used to run that application are compatible.
-
-  - Minor improvements have been made to mpdboot.
-
-  - Support for the (now deprecated) BNR interface has been added to
-    allow MPICH1 programs to also be run via MPD2.
-
-- Shared libraries are now supported on Linux systems using the GNU compilers
-  with the caveat that C++ support must be disabled (--disable-cxx).
-
-- The CH3 interface and device now provide a mechanism for using RDMA (remote
-  direct memory access) to transfer data between processes.
-
-- Logging capabilities for MPI and internal routines have been readded.  See
-  the documentation in doc/logging for details.
-
-- A "meminit" option was added to --enable-g to force all bytes associated with
-  a structure or union to be initialized prior to use.  This prevents programs
-  like Valgrind from complaining about uninitialized accesses.
-
-- The dist-with-version and snap targets in the top-level Makefile.sm now
-  properly produce mpich2-<ver>/maint/Version instead of mpich2-<ver>/Version.
-  In addition, they now properly update the VERSION variable in Makefile.sm
-  without clobbering the sed line that performs the update.
-
-- The dist and snap targets in the top-level Makefile.sm now both use the
-  dist-with-version target to avoid inconsistencies.
-
-- The following changes were made to simplemake:
-
-  - The environment variables DEBUG, DEBUG_DIRS, and DEBUG_CONFDIR can now be
-    used to control debugging output.
-
-  - Many fixes were made to make simplemake so that it would run cleanly with
-    perl -w.
-
-  - Installation of *all* files from a directory is now possible (example,
-    installing all of the man pages).
-
-  - The clean targets now remove the cache files produced by newer versions of
-    autoconf.
-
-  - For files that are created by configure, the determination of the
-    location of that configure has been improved, so that make of those
-    files (e.g., make Makefile) is more likely to work.  There is still 
-    more to do here.
-
-  - Short loops over subdirectories are now unrolled.
-
-  - The maintainerclean target has been renamed to maintainer-clean to match
-    GNU guidelines.
-
-  - The distclean and maintainer-clean targets have been improved.
-
-  - An option was added to perform one ar command per directory instead of one
-    per file when creating the profiling version of routines (needed only for
-    systems that do not support weak symbols).
-
-
-===============================================================================
-				Changes in 0.97
-===============================================================================
-
-- MPI-2 one-sided communication has been implemented in the CH3 device.
-
-- mpigdb works as a simple parallel debugger for MPI programs started
-  with mpd.  New since MPICH1 is the ability to attach to running
-  parallel programs.  See the README in mpich2/src/pm/mpd for details.
-
-- MPI_Type_create_darray() and MPI_Type_create_subarray() implemented including
-  the right contents and envelope data.
-
-- ROMIO flattening code now supports subarray and darray combiners.
-
-- Improve scalability and performance of some ROMIO PVFS and PVFS2 routines 
-
-- An error message string parameter was added to MPID_Abort().  If the
-  parameter is non-NULL this string will be used as the message with the abort
-  output.  Otherwise, the output message will be base on the error message
-  associated with the mpi_errno parameter.
-
-- MPID_Segment_init() now takes an additional boolean parameter that specifies
-  if the segment processing code is to produce/consume homogeneous (FALSE) or
-  heterogeneous (TRUE) data.
-
-- The definitions of MPID_VCR and MPID_VCRT are now defined by the device.
-
-- The semantics of MPID_Progress_{Start,Wait,End}() have changed.  A typical
-  blocking progress loop now looks like the following.
-
-  if (req->cc != 0)
-  {
-      MPID_Progress_state progress_state;
-
-      MPID_Progress_start(&progress_state);
-      while (req->cc != 0)
-      {
-          mpi_errno = MPID_Progress_wait(&progress_state);
-          if (mpi_errno != MPI_SUCCESS)
-          {
-              /* --BEGIN ERROR HANDLING-- */
-              MPID_Progress_end(&progress_state);
-              goto fn_fail;
-              /* --END ERROR HANDLING-- */
-          }
-      }
-      MPID_Progress_end(&progress_state);
-  }
-
-  NOTE: each of these routines now takes a single parameter, a pointer to a
-  thread local state variable.
-
-- The CH3 device and interface have been modified to better support
-  MPI_COMM_{SPAWN,SPAWN_MULTIPLE,CONNECT,ACCEPT,DISCONNECT}.  Channels
-  writers will notice the following.  (This is still a work in progress.  See
-  the note below.)
-
-  - The introduction of a process group object (MPIDI_PG_t) and a new
-    set of routines to manipulate that object.
-
-  - The renaming of the MPIDI_VC object to MPIDI_VC_t to make it more
-    consistent with the naming of other objects in the device.
-
-  - The process group information in the MPIDI_VC_t moved from the channel
-    specific portion to the device layer.
-
-  - MPIDI_CH3_Connection_terminate() was added to the CH3 interface to allow
-    the channel to properly shutdown a connection before the device deletes all
-    associated data structures.
-
-  - A new upcall routine, MPIDI_CH3_Handle_connection(), was added to allow the
-    device to notify the device when a connection related event has completed.
-    A present the only event is MPIDI_CH3_VC_EVENT_TERMINATED, which notify the
-    device that the underlying connection associated with a VC has been
-    properly shutdown.  For every call to MPIDI_CH3_Connection_terminate() that
-    the device makes, the channel must make a corresponding upcall to
-    MPIDI_CH3_Handle_connection().  MPID_Finalize() will likely hang if this
-    rule is not followed.
-
-  - MPIDI_CH3_Get_parent_port() was added to provide MPID_Init() with the port
-    name of the the parent (spawner).  This port name is used by MPID_Init()
-    and MPID_Comm_connect() to create an intercommunicator between the parent
-    (spawner) and child (spawnee).  Eventually, MPID_Comm_spawn_multiple() will
-    be update to perform the reverse logic; however, the logic is presently
-    still in the sock channel.
-
-  Note: the changes noted are relatively fresh and are the beginning to a set
-  of future changes.  The goal is to minimize the amount of code required by a
-  channel to support MPI dynamic process functionality.  As such, portions of
-  the device will change dramatically in a future release.  A few more changes
-  to the CH3 interface are also quite likely.
-
-- MPIDI_CH3_{iRead,iWrite}() have been removed from the CH3 interface.
-  MPIDI_CH3U_Handle_recv_pkt() now returns a receive request with a populated
-  iovec to receive data associated with the request.
-  MPIDU_CH3U_Handle_{recv,send}_req() reload the iovec in the request and
-  return and set the complete argument to TRUE if more data is to read or
-  written.  If data transfer for the request is complete, the complete argument
-  must be set to FALSE.
-
-
-=============================================================================== 
-                               Changes in 0.96p2
-===============================================================================
-
-The shm and ssm channels have been added back into the distribution.
-Officially, these channels are supported only on x86 platforms using the gcc
-compiler.  The necessary assembly instructions to guarantee proper ordering of
-memory operations are lacking for other platforms and compilers.  That said, we
-have seen a high success rate when testing these channels on unsupported
-systems.
-
-This patch release also includes a new unsupported channel.  The scalable
-shared memory, or sshm, channel is similar to the shm channel except that it
-allocates shared memory communication queues only when necessary instead of
-preallocating N-squared queues.
-
-
-===============================================================================
-                               Changes in 0.96p1
-===============================================================================
-
-This patch release fixes a problem with building MPICH2 on Microsoft Windows
-platforms.  It also corrects a serious bug in the poll implementation of the
-Sock interface.
-
-
-===============================================================================
-                                Changes in 0.96
-===============================================================================
-
-The 0.96 distribution is largely a bug fix release.  In addition to the many
-bug fixes, major improvements have been made to the code that supports the
-dynamic process management routines (MPI_Comm_{connect,accept,spawn,...}()).
-Additional changes are still required to support MPI_Comm_disconnect().
-
-We also added an experimental (and thus completely unsupported) rdma device.
-The internal interface is similar to the CH3 interface except that it contains
-a couple of extra routines to inform the device about data transfers using the
-rendezvous protocol.  The channel can use this extra information to pin memory
-and perform a zero-copy transfer.  If all goes well, the results will be rolled
-back into the CH3 device.
-
-Due to last minute difficulties, this release does not contain the shm or ssm
-channels.  These channels will be included in a subsequent patch release.
-
-
-===============================================================================
-				Changes in 0.94
-===============================================================================
-
-Active target one-sided communication is now available for the ch3:sock
-channel.  This new functionality has undergone some correctness testing but has
-not been optimized in terms of performance.  Future release will include
-performance enhancements, passive target communication, and availability in
-channels other than just ch3:sock.
-
-The shared memory channel (ch3:shm), which performs communication using shared
-memory on a single machine, is now complete and has been extensively tested.
-At present, this channel only supports IA32 based machines (excluding the
-Pentium Pro which has a memory ordering bug).  In addition, this channel must
-be compiled with gcc.  Future releases with support additional architectures
-and compilers.
-
-A new channel has been added that performs inter-node communication using
-sockets (TCP/IP) and intra-node communication using shared memory.  This
-channel, ch3:ssm, is ideal for clusters of SMPs.  Like the shared memory
-channel (ch3:shm), this channel only supports IA32 based machines and must be
-compiled with gcc.  In future releases, the ch3:ssm channel will support
-additional architectures and compilers.
-
-The two channels that perform commutation using shared memory, ch3:shm and
-ch3:ssm, now support the allocation of shared memory using both the POSIX and
-System V interfaces.  The POSIX interface will be used if available; otherwise,
-the System V interface is used.
-
-In the interest of increasing portability, many enhancements have been made to
-both the code and the configure scripts.
-
-And, as always, many bugs have been fixed :-).
-
-
-***** INTERFACE CHANGES ****
-
-The parameters to MPID_Abort() have changed.  MPID_Abort() now takes a pointer
-to communicator object, an MPI error code, and an exit code.
-
-MPIDI_CH3_Progress() has been split into two functions:
- MPIDI_CH3_Progress_wait() and MPIDI_CH3_Progress_test().
-
-
-===============================================================================
-				Changes in 0.93
-===============================================================================
-
-Version 0.93 has undergone extensive changes to provide better error reporting.
-Part of these changes involved modifications to the ADI3 and CH3 interfaces.
-The following routines now return MPI error codes:
-
-MPID_Cancel_send()
-MPID_Cancel_recv()
-MPID_Progress_poke()
-MPID_Progress_test()
-MPID_Progress_wait()
-MPIDI_CH3_Cancel_send()
-MPIDI_CH3_Progress()
-MPIDI_CH3_Progress_poke()
-MPIDI_CH3_iRead()
-MPIDI_CH3_iSend()
-MPIDI_CH3_iSendv()
-MPIDI_CH3_iStartmsg()
-MPIDI_CH3_iStartmsgv()
-MPIDI_CH3_iWrite()
-MPIDI_CH3U_Handle_recv_pkt()
-MPIDI_CH3U_Handle_recv_req()
-MPIDI_CH3U_Handle_send_req()
-
-*******************************************************************************
-Of special note are MPID_Progress_test(), MPID_Progress_wait() and
-MPIDI_CH3_Progress() which previously returned an integer value indicating if
-one or more requests had completed.  They no longer return this value and
-instead return an MPI error code (also an integer).  The implication being that
-while the semantics changed, the type signatures did not.
-*******************************************************************************
-
-The function used to create error codes, MPIR_Err_create_code(), has also
-changed.  It now takes additional parameters, allowing it create a stack of
-errors and making it possible for the reporting function to indicate in which
-function and on which line the error occurred.  It also allows an error to be
-designated as fatal or recoverable.  Fatal errors always result in program
-termination regardless of the error handler installed by the application.
-
-A RDMA channel has been added and includes communication methods for shared
-memory and shmem.  This is recent development and the RDMA interface is still
-in flux.

Added: gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES_MPICH2
===================================================================
--- gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES_MPICH2	2006-05-26 20:40:14 UTC (rev 7509)
+++ gen2/trunk/src/userspace/mpi/mvapich2-gen2/CHANGES_MPICH2	2006-05-26 21:17:55 UTC (rev 7510)
@@ -0,0 +1,693 @@
+===============================================================================
+			       Changes in 1.0.3
+===============================================================================
+
+- There are major changes to the ch3 device implementation.  Old and 
+  unsupported channels (essm, rdma) have been removed.   The
+  internal interface between ch3 and the channels has been improved to 
+  similify the process of adding a new channel (sharing existing code
+  where possible) and to improve performance.  Further changes in this
+  internal interface are expected.
+
+- Numerous bug fixes and code cleanup
+
+        Creation of intercommunicators and intracommunicators 
+        from the intercommunicators created with Spawn and Connect/Accept
+
+        The computation of the alignment and padding of items within
+        structures now handles additional cases, including systems 
+        where the alignment an padding depends on the type of the first
+	item in the structure
+
+        MPD recognizes wdir info keyword
+
+        gforker's mpiexec supports -env and -genv arguments for controlling
+        which environment variables are delivered to created processes
+
+- While not a bug, to aid in the use of memory trace packages, MPICH2
+  tries to free all allocated data no later than when MPI_Finalize
+  returns.
+
+- Support for DESTDIR in install targets
+
+- Enhancements to SMPD
+
+- In order to support special compiler flags for users that may be
+  different from those used to build MPICH2, the environment variables
+  MPI_CFLAGS, MPI_FFLAGS, MPI_CXXFLAGS, and MPI_F90FLAGS may be used
+  to specify the flags used in mpicc, mpif77, mpicxx, and mpif90 
+  respectively.  The flags CFLAGS, FFLAGS, CXXFLAGS, and F90FLAGS are
+  used in the building of MPICH2.
+
+- Many enhancements to MPE
+
+- Enhanced support for features and idiosyncracies of Fortran 77 and 
+  Fortran 90 compilers, including gfortran, g95, and xlf
+
+- Enhanced support for C++ compilers that do not fully support abstract
+  base classes
+
+- Additional tests in the mpich2/tests/mpi
+    
+- New FAQ included (also available at
+    http://www.mcs.anl.gov/mpi/mpich2/faq.htm) 
+
+- Man pages for mpiexec and mpif90
+
+- Enhancements for developers, including a more flexible and general 
+  mechanism for inserting logging and information messages, controlable
+  with --mpich-dbg-xxx command line arguments or MPICH_DBG_XXX environment
+  variables.
+
+- Note to developers: 
+  This release contains many changes to the structure of the CH3
+  device implementation (in src/mpid/ch3), including signficant
+  reworking of the files (many files have been combined into fewer files
+  representing logical grouping of functions).  The next release of 
+  MPICH2 will contain even more significant changes to the device 
+  structure as we introduce a new communication implementation.
+ 
+===============================================================================
+			       Changes in 1.0.2
+===============================================================================
+
+- Optimizations to the MPI-2 one-sided communication functions for the
+  sshm (scalable shared memory) channel when window memory is
+  allocated with MPI_Alloc_mem (for all three synchronization methods).
+
+- Numerous bug fixes and code cleanup. 
+
+- Fixed memory leaks.
+
+- Fixed shared library builds.
+
+- Fixed performance problems with MPI_Type_create_subarray/darray 
+
+- The following changes have been made to MPE2:
+
+  - MPE2 now builds the MPI collective and datatype checking library
+    by default. 
+
+  - SLOG-2 format has been upgraded to 2.0.6 which supports event drawables
+    and provides count of real drawables in preview drawables.
+
+  - new slog2 tools, slog2filter and slog2updater, which both are logfile
+    format convertors.  slog2filter removes undesirable categories of
+    drawables as well as alters the slog2 file structure.  slog2updater
+    is a slog2filter that reads in older logfile format, 2.0.5, and 
+    writes out the latest format 2.0.6.
+
+- The following changes have been made to MPD:
+
+  - Nearly all code has been replaced by new code that follows a more
+    object-oriented approach than before.  This has not changed any
+    fundamental behavior or interfaces.
+
+  - There is info support in spawn and spawn_multiple for providing
+    parts of the environment for spawned processes such as search-path
+    and current working directory.  See the Standard for the required
+    fields.
+
+  - mpdcheck has been enhanced to help users debug their cluster and
+    network configurations.
+
+  - CPickle has replaced marshal as the source module for dumps and loads.
+
+  - The mpigdb command has been replaced by mpiexec -gdb.
+
+  - Alternate interfaces can be used.  See the Installer's Guide.
+ 
+
+===============================================================================
+			       Changes in 1.0.1
+===============================================================================
+
+- Copyright statements have been added to all code files, clearly identifying
+  that all code in the distribution is covered by the extremely flexible
+  copyright described in the COPYRIGHT file.
+
+- The MPICH2 test suite (mpich2/test) can now be run against any MPI
+  implementation, not just MPICH2.
+
+- The send and receive socket buffers sizes may now be changed by setting
+  MPICH_SOCKET_BUFFER_SIZE.  Note: the operating system may impose a maximum
+  socket buffer size that prohibits MPICH2 from increasing the buffers to the
+  desire size.  To raise the maximum allowable buffer size, please contact your
+  system administrator.
+
+- Error handling throughout the MPI routines has been improved.  The error
+  handling in some internal routines has been simplified as well, making the
+  routines easier to read.
+
+- MPE (Jumpshot and CLOG logging) is now supported on Microsoft Windows.
+
+- C applications built for Microsoft Windows may select the desired channels at
+  runtime.
+
+- A program not started with mpiexec may become an MPI program by calling
+  MPI_Init.  It will have an MPI_COMM_WORLD of size one.  It may then call
+  other MPI routines, including MPI_COMM_SPAWN, to become a truly parallel
+  program.  At present, the use of MPI_COMM_SPAWN and MPI_COMM_SPAWN_MULTIPLE
+  by such a process is only supported by the MPD process manager.
+
+- Memory leaks in communicator allocation and the C++ binding have been fixed.
+
+- Following GNU guidelines, the parts of the install step that checked the
+  installation have been moved to an installcheck target.  Much of the
+  installation now supports the DESTDIR prefix.
+
+- Microsoft Visual Studio projects have been added to make it possible to build
+  x86-64 version
+
+- Problems with compilers and linkers that do not support weak symbols, which
+  are used to support the PMPI profiling interface, have been corrected.
+
+- Handling of Fortran 77 and Fortran 90 compilers has been improved, including
+  support for g95.
+
+- The Fortran stdcall interface on Microsoft Windows now supports character*.
+
+- A bug in the OS X implementation of poll() caused the sock channel to hang.
+  A workaround has been put in place.
+
+- Problems with installation under OS/X are now detected and corrected.
+  (Install breaks libraries that are more than 10 seconds old!)
+
+- The following changes have been made to MPD:
+
+  - Sending a SIGINT to mpiexec/mpdrun, such as by typing control-C, now causes
+    SIGINT to be sent to the processes within the job.  Previously, SIGKILL was
+    sent to the processes, preventing applications from catching the signal 
+    and performing their own signal processing.
+
+  - The process for merging output has been improved.
+
+  - A new option, -ifhn, has been added to the machine file, allowing the user
+    to select the destination interface to be used for TCP communication.  See
+    the User's Manual for details.
+
+  - The user may now select, via the "-s" option to mpiexec/mpdrun, which
+    processes receive input through stdin.  stdin is immediately closed for all
+    processes not in set receiving input.  This prevents processes not in the
+    set from hanging should they attempt to read from stdin.
+
+  - The MPICH2 Installer's Guide now contains an appendix on troubleshooting
+    problems with MPD.
+
+- The following changes have been made to SMPD:
+
+  - On Windows machines, passwordless authentication (via SSPI) can now be used
+    to start processes on machines within a domain.  This feature is a recent
+    addition, and should be considered experimental.
+
+  - On Windows machines, the -localroot option was added to mpiexec, allowing
+    processes on the local machines to perform GUI operations on the local
+    desktop.
+
+  - On Windows machines, network drive mapping is now supported via the -map
+    option to mpiexec.
+
+  - Three new GUI tools have been added for Microsoft Windows.  These tools are
+    wrappers to the command line tools, mpiexec.exe and smpd.exe.  wmpiexec
+    allows the user to run a job much in the way they with mpiexec.  wmpiconfig
+    provides a means of setting various global options to the SMPD process
+    manager environment.  wmpiregister encrypts the user's credentials and
+    saves them to the Windows Registry.
+
+- The following changes have been made to MPE2:
+
+  - MPE2 no longer attempt to compile or link code during 'make install' to
+    validate the installation.  Instead, 'make installcheck' may now be used to
+    verify that the MPE installation.
+
+  - MPE2 now supports DESTDIR.
+
+- The sock channel now has preliminary support for MPI_THREAD_SERIALIZED and
+  MPI_THREAD_MULTIPLE on both UNIX and Microsoft Windows.  We have performed
+  rudimentary testing; and while overall the results were very positive, known
+  issues do exist.  ROMIO in particular experiences hangs in several places.
+  We plan to correct that in the next release.  As always, please report any
+  difficulties you encounter.
+
+- Another channel capable of communicating with both over sockets and shared
+  memory has been added.  Unlike the ssm channel which waits for new data to
+  arrive by continuously polling the system in a busy loop, the essm channel
+  waits by blocking on an operating system event object.  This channel is
+  experimental, and is only available for Microsoft Windows.
+
+- The topology routines have been modified to allow the device to override the
+  default implementation.  This allows the device to export knowledge of the
+  underlying physical topology to the MPI routines (Dims_create and the
+  reorder == true cases in Cart_create and Graph_create).  
+
+- New memory allocation macros, MPIU_CHK[PL]MEM_*(), have been added to help
+  prevent memory leaks.  See mpich2/src/include/mpimem.h.
+
+- New error reporting macros, MPIU_ERR_*, have been added to simplify the error
+  handling throughout the code, making the code easier to read.  See
+  mpich2/src/include/mpierrs.h.
+
+- Interprocess communication using the Sock interface (sock and ssm channels)
+  may now be bound to a particular destination interface using the environment
+  variable MPICH_INTERFACE_HOSTNAME.  The variable needs to be set for each
+  process for which the destination interface is not the default interface.
+  (Other mechanisms for destination interface selection will be provided in
+  future releases.)  Both MPD and SMPD provide a more simplistic mechanism for
+  specifying the interface.  See the user documentation.
+
+- Too many bug fixes to describe.  Much thanks goes to the users who reported
+  bugs.  Their patience and understanding as we attempted to recreate the
+  problems and solve them is greatly appreciated.
+
+
+===============================================================================
+				Changes in 1.0
+===============================================================================
+
+- MPICH2 now works on Solaris.
+
+- The User's Guide has been expanded considerably.  The Installation Guide has
+  been expanded some as well.
+
+- MPI_COMM_JOIN has been implemented; although like the other dynamic process
+  routines, it is only supported by the Sock channel.
+
+- MPI_COMM_CONNECT and MPI_COMM_ACCEPT are now allowed to connect with remote
+  process to which they are already connected.
+
+- Shared libraries can now be built (and used) on IA32 Linux with the GNU
+  compilers (--enable-sharedlibs=gcc), and on Solaris with the native Sun
+  Workshop compilers (--enable-sharedlibs=solaris).  They may also work on
+  other operating systems with GCC, but that has not been tested.  Previous
+  restrictions disallowing C++ and Fortran bindings when building shared
+  libraries have been removed.
+
+- The dataloop and datatype contents code has been improved to address
+  alignment issues on all platforms.
+
+- A bug in the datatype code, which handled zero block length cases
+  incorrectly, has been fixed.
+
+- An segmentation fault in the datatype memory management, resulting from
+  freeing memory twice, has been fixed.
+
+- The following changes were made to the MPD process manager:
+
+  - MPI_SPAWN_MULTIPLE now works with MPD.
+
+  - The arguments to the 'mpiexec' command supplied by the MPD have changed.
+    First, the -default option has been removed.  Second, more flexible ways to
+    pass environment variables have been added.
+
+  - The commands 'mpdcheck' and 'testconfig' have been to installations using
+    MPD.  These commands test the setup of the machines on which you wish to
+    run MPICH2 jobs.  They help to identify misconfiguration, firewall issues,
+    and other communication problems.
+
+  - Support for MPI_APPNUM and MPI_UNIVERSE_SIZE has been added to the Simple
+    implementation of PMI and the MPD process manager.
+
+  - In general, error detection and recovery in MPD has improved.
+
+- A new process manager, gforker, is now available.  Like the forker process
+  manager, gforker spawns processes using fork(), and thus is quite useful on
+  SMPs machines.  However, unlike forker, gforker supports all of the features
+  of a standard mpiexec, plus some.  Therefore, It should be used in place of
+  the previous forker process manager, which is now deprecated.
+
+- The following changes were made to ROMIO:
+
+  - The amount of duplicated ROMIO code in the close, resize, preallocate,
+    read, write, asynchronous I/O, and sync routines has been substantially
+    reduced.
+
+  - A bug in flattening code, triggered by nested datatypes, has been fixed.
+
+  - Some small memory leaks have been fixed.
+
+  - The error handling has been abstracted allowing different MPI
+    implementations to handle and report error conditions in their own way.
+    Using this abstraction, the error handling routines have been made
+    consistent with rest of MPICH2.
+
+  - AIO support has been cleaned up and unified.  It now works correctly on
+    Linux, and is properly detected on old versions of AIX.
+
+  - A bug in MPI_File_seek code, and underlying support code, has been fixed.
+
+  - Support for PVFS2 has improved.
+
+  - Several dead file systems have been removed.  Others, including HFS, SFS,
+    PIOFS, and Paragon, have been deprecated.
+
+- MPE and CLOG have been updated to version 2.1. For more details, please see
+  src/mpe2/README.
+
+- New macros for memory management were added to support function local
+  allocations (alloca), to rollback pending allocations when error conditions
+  are detected to avoid memory leaks, and to improve the conciseness of code
+  performing memory allocations.
+
+- New error handling macros were added to make internal error handling code
+  more concise.
+
+===============================================================================
+			       Changes in 0.971
+===============================================================================
+
+- Code restricted by copyrights less flexible than the one described in the
+  COPYRIGHT file has been removed.
+
+- Installation and User Guides have been added.
+
+- The SMPD PMI Wire Protocol Reference Manual has been updated.
+
+- To eliminate portability problems, common blocks in mpif.h that spanned
+  multiple lines were broken up into multiple common blocks each described on a
+  single line.
+
+- A new command, mpich2version, was added to allow the user to obtain
+  information about the MPICH2 installation.  This command is currently a
+  simple shell script.  We anticipate that the mpich2version command will
+  eventually provide additional information such as the patches applied and the
+  date of the release.
+
+- The following changes were made to MPD2:
+
+  - Support was added for MPI's "singleton init", in which a single
+    process started in the normal way (i.e., not by mpiexec or mpirun)
+    becomes an MPI process with an MPI_COMM_WORLD of size one by
+    calling MPI_Init.  After this the process can call other MPI
+    functions, including MPI_Comm_spawn.
+
+  - The format for some of the arguments to mpiexec have changed,
+    especially for passing environment variables to MPI processes.
+
+  - In addition to miscellaneous hardening, better error checking and
+    messages have been added.
+
+  - The install process has been improved.  In particular, configure
+    has been updated to check for a working install program and supply
+    it's own installation script (install.sh) if necessary.
+
+  - A new program, mpdcheck, has been added to help diagnose machine
+    configurations that might be erroneous or at least confusing to
+    mpd.
+
+  - Runtime version checking has been added to insure that the Simple
+    implementation of PMI linked into the application and the MPD
+    process manager being used to run that application are compatible.
+
+  - Minor improvements have been made to mpdboot.
+
+  - Support for the (now deprecated) BNR interface has been added to
+    allow MPICH1 programs to also be run via MPD2.
+
+- Shared libraries are now supported on Linux systems using the GNU compilers
+  with the caveat that C++ support must be disabled (--disable-cxx).
+
+- The CH3 interface and device now provide a mechanism for using RDMA (remote
+  direct memory access) to transfer data between processes.
+
+- Logging capabilities for MPI and internal routines have been readded.  See
+  the documentation in doc/logging for details.
+
+- A "meminit" option was added to --enable-g to force all bytes associated with
+  a structure or union to be initialized prior to use.  This prevents programs
+  like Valgrind from complaining about uninitialized accesses.
+
+- The dist-with-version and snap targets in the top-level Makefile.sm now
+  properly produce mpich2-<ver>/maint/Version instead of mpich2-<ver>/Version.
+  In addition, they now properly update the VERSION variable in Makefile.sm
+  without clobbering the sed line that performs the update.
+
+- The dist and snap targets in the top-level Makefile.sm now both use the
+  dist-with-version target to avoid inconsistencies.
+
+- The following changes were made to simplemake:
+
+  - The environment variables DEBUG, DEBUG_DIRS, and DEBUG_CONFDIR can now be
+    used to control debugging output.
+
+  - Many fixes were made to make simplemake so that it would run cleanly with
+    perl -w.
+
+  - Installation of *all* files from a directory is now possible (example,
+    installing all of the man pages).
+
+  - The clean targets now remove the cache files produced by newer versions of
+    autoconf.
+
+  - For files that are created by configure, the determination of the
+    location of that configure has been improved, so that make of those
+    files (e.g., make Makefile) is more likely to work.  There is still 
+    more to do here.
+
+  - Short loops over subdirectories are now unrolled.
+
+  - The maintainerclean target has been renamed to maintainer-clean to match
+    GNU guidelines.
+
+  - The distclean and maintainer-clean targets have been improved.
+
+  - An option was added to perform one ar command per directory instead of one
+    per file when creating the profiling version of routines (needed only for
+    systems that do not support weak symbols).
+
+
+===============================================================================
+				Changes in 0.97
+===============================================================================
+
+- MPI-2 one-sided communication has been implemented in the CH3 device.
+
+- mpigdb works as a simple parallel debugger for MPI programs started
+  with mpd.  New since MPICH1 is the ability to attach to running
+  parallel programs.  See the README in mpich2/src/pm/mpd for details.
+
+- MPI_Type_create_darray() and MPI_Type_create_subarray() implemented including
+  the right contents and envelope data.
+
+- ROMIO flattening code now supports subarray and darray combiners.
+
+- Improve scalability and performance of some ROMIO PVFS and PVFS2 routines 
+
+- An error message string parameter was added to MPID_Abort().  If the
+  parameter is non-NULL this string will be used as the message with the abort
+  output.  Otherwise, the output message will be base on the error message
+  associated with the mpi_errno parameter.
+
+- MPID_Segment_init() now takes an additional boolean parameter that specifies
+  if the segment processing code is to produce/consume homogeneous (FALSE) or
+  heterogeneous (TRUE) data.
+
+- The definitions of MPID_VCR and MPID_VCRT are now defined by the device.
+
+- The semantics of MPID_Progress_{Start,Wait,End}() have changed.  A typical
+  blocking progress loop now looks like the following.
+
+  if (req->cc != 0)
+  {
+      MPID_Progress_state progress_state;
+
+      MPID_Progress_start(&progress_state);
+      while (req->cc != 0)
+      {
+          mpi_errno = MPID_Progress_wait(&progress_state);
+          if (mpi_errno != MPI_SUCCESS)
+          {
+              /* --BEGIN ERROR HANDLING-- */
+              MPID_Progress_end(&progress_state);
+              goto fn_fail;
+              /* --END ERROR HANDLING-- */
+          }
+      }
+      MPID_Progress_end(&progress_state);
+  }
+
+  NOTE: each of these routines now takes a single parameter, a pointer to a
+  thread local state variable.
+
+- The CH3 device and interface have been modified to better support
+  MPI_COMM_{SPAWN,SPAWN_MULTIPLE,CONNECT,ACCEPT,DISCONNECT}.  Channels
+  writers will notice the following.  (This is still a work in progress.  See
+  the note below.)
+
+  - The introduction of a process group object (MPIDI_PG_t) and a new
+    set of routines to manipulate that object.
+
+  - The renaming of the MPIDI_VC object to MPIDI_VC_t to make it more
+    consistent with the naming of other objects in the device.
+
+  - The process group information in the MPIDI_VC_t moved from the channel
+    specific portion to the device layer.
+
+  - MPIDI_CH3_Connection_terminate() was added to the CH3 interface to allow
+    the channel to properly shutdown a connection before the device deletes all
+    associated data structures.
+
+  - A new upcall routine, MPIDI_CH3_Handle_connection(), was added to allow the
+    device to notify the device when a connection related event has completed.
+    A present the only event is MPIDI_CH3_VC_EVENT_TERMINATED, which notify the
+    device that the underlying connection associated with a VC has been
+    properly shutdown.  For every call to MPIDI_CH3_Connection_terminate() that
+    the device makes, the channel must make a corresponding upcall to
+    MPIDI_CH3_Handle_connection().  MPID_Finalize() will likely hang if this
+    rule is not followed.
+
+  - MPIDI_CH3_Get_parent_port() was added to provide MPID_Init() with the port
+    name of the the parent (spawner).  This port name is used by MPID_Init()
+    and MPID_Comm_connect() to create an intercommunicator between the parent
+    (spawner) and child (spawnee).  Eventually, MPID_Comm_spawn_multiple() will
+    be update to perform the reverse logic; however, the logic is presently
+    still in the sock channel.
+
+  Note: the changes noted are relatively fresh and are the beginning to a set
+  of future changes.  The goal is to minimize the amount of code required by a
+  channel to support MPI dynamic process functionality.  As such, portions of
+  the device will change dramatically in a future release.  A few more changes
+  to the CH3 interface are also quite likely.
+
+- MPIDI_CH3_{iRead,iWrite}() have been removed from the CH3 interface.
+  MPIDI_CH3U_Handle_recv_pkt() now returns a receive request with a populated
+  iovec to receive data associated with the request.
+  MPIDU_CH3U_Handle_{recv,send}_req() reload the iovec in the request and
+  return and set the complete argument to TRUE if more data is to read or
+  written.  If data transfer for the request is complete, the complete argument
+  must be set to FALSE.
+
+
+=============================================================================== 
+                               Changes in 0.96p2
+===============================================================================
+
+The shm and ssm channels have been added back into the distribution.
+Officially, these channels are supported only on x86 platforms using the gcc
+compiler.  The necessary assembly instructions to guarantee proper ordering of
+memory operations are lacking for other platforms and compilers.  That said, we
+have seen a high success rate when testing these channels on unsupported
+systems.
+
+This patch release also includes a new unsupported channel.  The scalable
+shared memory, or sshm, channel is similar to the shm channel except that it
+allocates shared memory communication queues only when necessary instead of
+preallocating N-squared queues.
+
+
+===============================================================================
+                               Changes in 0.96p1
+===============================================================================
+
+This patch release fixes a problem with building MPICH2 on Microsoft Windows
+platforms.  It also corrects a serious bug in the poll implementation of the
+Sock interface.
+
+
+===============================================================================
+                                Changes in 0.96
+===============================================================================
+
+The 0.96 distribution is largely a bug fix release.  In addition to the many
+bug fixes, major improvements have been made to the code that supports the
+dynamic process management routines (MPI_Comm_{connect,accept,spawn,...}()).
+Additional changes are still required to support MPI_Comm_disconnect().
+
+We also added an experimental (and thus completely unsupported) rdma device.
+The internal interface is similar to the CH3 interface except that it contains
+a couple of extra routines to inform the device about data transfers using the
+rendezvous protocol.  The channel can use this extra information to pin memory
+and perform a zero-copy transfer.  If all goes well, the results will be rolled
+back into the CH3 device.
+
+Due to last minute difficulties, this release does not contain the shm or ssm
+channels.  These channels will be included in a subsequent patch release.
+
+
+===============================================================================
+				Changes in 0.94
+===============================================================================
+
+Active target one-sided communication is now available for the ch3:sock
+channel.  This new functionality has undergone some correctness testing but has
+not been optimized in terms of performance.  Future release will include
+performance enhancements, passive target communication, and availability in
+channels other than just ch3:sock.
+
+The shared memory channel (ch3:shm), which performs communication using shared
+memory on a single machine, is now complete and has been extensively tested.
+At present, this channel only supports IA32 based machines (excluding the
+Pentium Pro which has a memory ordering bug).  In addition, this channel must
+be compiled with gcc.  Future releases with support additional architectures
+and compilers.
+
+A new channel has been added that performs inter-node communication using
+sockets (TCP/IP) and intra-node communication using shared memory.  This
+channel, ch3:ssm, is ideal for clusters of SMPs.  Like the shared memory
+channel (ch3:shm), this channel only supports IA32 based machines and must be
+compiled with gcc.  In future releases, the ch3:ssm channel will support
+additional architectures and compilers.
+
+The two channels that perform commutation using shared memory, ch3:shm and
+ch3:ssm, now support the allocation of shared memory using both the POSIX and
+System V interfaces.  The POSIX interface will be used if available; otherwise,
+the System V interface is used.
+
+In the interest of increasing portability, many enhancements have been made to
+both the code and the configure scripts.
+
+And, as always, many bugs have been fixed :-).
+
+
+***** INTERFACE CHANGES ****
+
+The parameters to MPID_Abort() have changed.  MPID_Abort() now takes a pointer
+to communicator object, an MPI error code, and an exit code.
+
+MPIDI_CH3_Progress() has been split into two functions:
+ MPIDI_CH3_Progress_wait() and MPIDI_CH3_Progress_test().
+
+
+===============================================================================
+				Changes in 0.93
+===============================================================================
+
+Version 0.93 has undergone extensive changes to provide better error reporting.
+Part of these changes involved modifications to the ADI3 and CH3 interfaces.
+The following routines now return MPI error codes:
+
+MPID_Cancel_send()
+MPID_Cancel_recv()
+MPID_Progress_poke()
+MPID_Progress_test()
+MPID_Progress_wait()
+MPIDI_CH3_Cancel_send()
+MPIDI_CH3_Progress()
+MPIDI_CH3_Progress_poke()
+MPIDI_CH3_iRead()
+MPIDI_CH3_iSend()
+MPIDI_CH3_iSendv()
+MPIDI_CH3_iStartmsg()
+MPIDI_CH3_iStartmsgv()
+MPIDI_CH3_iWrite()
+MPIDI_CH3U_Handle_recv_pkt()
+MPIDI_CH3U_Handle_recv_req()
+MPIDI_CH3U_Handle_send_req()
+
+*******************************************************************************
+Of special note are MPID_Progress_test(), MPID_Progress_wait() and
+MPIDI_CH3_Progress() which previously returned an integer value indicating if
+one or more requests had completed.  They no longer return this value and
+instead return an MPI error code (also an integer).  The implication being that
+while the semantics changed, the type signatures did not.
+*******************************************************************************
+
+The function used to create error codes, MPIR_Err_create_code(), has also
+changed.  It now takes additional parameters, allowing it create a stack of
+errors and making it possible for the reporting function to indicate in which
+function and on which line the error occurred.  It also allows an error to be
+designated as fatal or recoverable.  Fatal errors always result in program
+termination regardless of the error handler installed by the application.
+
+A RDMA channel has been added and includes communication methods for shared
+memory and shmem.  This is recent development and the RDMA interface is still
+in flux.




More information about the commits mailing list