root/mpich2/branches/dev/kumudb/CHANGES @ 4870

Revision 4870, 38.5 KB (checked in by kumudb, 5 months ago)

Merge from trunk to kumudb r4748:r4869

Line 
1===============================================================================
2                               Changes in 1.1.1
3===============================================================================
4
5 # OVERALL: Improved support for Boost MPI.
6
7 # PM/PMI: Improved startup time with MPD.
8
9 # PM/PMI: Improved support for hybrid MPI-UPC program launching with
10   Hydra.
11
12 # PM/PMI: Improved support for process-core binding with Hydra.
13
14 # PM/PMI: Preliminary support for PMI-2. Currently supported only
15   with Hydra.
16
17 # Many other bug fixes, memory leak fixes and code cleanup. A full
18   list of changes is available using:
19
20  svn log -r4655:HEAD https://svn.mcs.anl.gov/repos/mpi/mpich2/tags/release/mpich2-1.1.1
21
22  ... or at the following link:
23
24  https://trac.mcs.anl.gov/projects/mpich2/log/mpich2/tags/release/mpich2-1.1.1?action=follow_copy&rev=HEAD&stop_rev=4655&mode=follow_copy
25
26
27===============================================================================
28                               Changes in 1.1
29===============================================================================
30
31- OVERALL: Added MPI 2.1 support.
32
33- OVERALL: Nemesis is now the default configuration channel with a
34  completely new TCP communication module.
35
36- OVERALL: Windows support for nemesis.
37
38- OVERALL: Added a new Myrinet MX network module for nemesis.
39
40- OVERALL: Initial support for shared-memory aware collective
41  communication operations.  Currently MPI_Bcast, MPI_Reduce, MPI_Allreduce,
42  and MPI_Scan.
43
44- OVERALL: Improved handling of MPI Attributes.
45
46- OVERALL: Support for BlueGene/P through the DCMF library (thanks to
47  IBM for the patch).
48
49- OVERALL: Experimental support for fine-grained multithreading
50
51- OVERALL: Added dynamic processes support for Nemesis.
52
53- OVERALL: Added automatic as well as statically runtime configurable
54  receive timeout variation for MPD (thanks to OSU for the patch).
55
56- OVERALL: Improved performance for MPI_Allgatherv, MPI_Gatherv, and MPI_Alltoall.
57
58- PM/PMI: Initial support for the new Hydra process management
59  framework (current support is for ssh, rsh, fork and a preliminary
60  version of slurm).
61
62- ROMIO: Added support for MPI_Type_create_resized and
63  MPI_Type_create_indexed_block datatypes in ROMIO.
64
65- ROMIO: Optimized Lustre ADIO driver (thanks to Weikuan Yu for
66  initial work and Sun for further improvements).
67
68- Many other bug fixes, memory leak fixes and code cleanup. A full
69  list of changes is available using:
70
71  svn log -r813:HEAD https://svn.mcs.anl.gov/repos/mpi/mpich2/tags/release/mpich2-1.1
72
73  ... or at the following link:
74
75  https://trac.mcs.anl.gov/projects/mpich2/log/mpich2/tags/release/mpich2-1.1?action=follow_copy&rev=HEAD&stop_rev=813&mode=follow_copy
76
77
78===============================================================================
79                               Changes in 1.0.7
80===============================================================================
81
82- OVERALL: Initial ROMIO device for BlueGene/P (the ADI device is also
83added but is not configurable at this time).
84
85- OVERALL: Major clean up for the propagation of user-defined and
86other MPICH2 flags throughout the code.
87
88- OVERALL: Support for STI Cell Broadband Engine.
89
90- OVERALL: Added datatype free hooks to be used by devices
91independently.
92
93- OVERALL: Added device-specific timer support.
94
95- OVERALL: make uninstall works cleanly now.
96
97- ROMIO: Support to take hints from a config file
98
99- ROMIO: more tests and bug fixes for nonblocking I/O
100
101- PM/PMI: Added support to use PMI Clique functionality for process
102managers that support it.
103
104- PM/PMI: Added SLURM support to configure to make it transparent to
105users.
106
107- PM/PMI: SMPD Singleton Init support.
108
109- WINDOWS: Fortran 90 support added.
110
111- SCTP: Added MPICH_SCTP_NAGLE_ON support.
112
113- MPE: Updated MPE logging API so that it is thread-safe (through
114global mutex).
115
116- MPE: Added infrastructure to piggyback argument data to MPI states.
117
118- DOCS: Documentation creation now works correctly for VPATH builds.
119
120- Many other bug fixes, memory leak fixes and code cleanup. A full
121list of changes is available using:
122  svn log -r100:HEAD https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/release/MPICH2_1_0_7
123
124
125===============================================================================
126                               Changes in 1.0.6
127===============================================================================
128
129- Updates to the ch3:nemesis channel including preliminary support for
130thread safety.
131
132- Preliminary support for dynamic loading of ch3 channels (sock, ssm,
133shm). See the README file for details.
134
135- Singleton init now works with the MPD process manager.
136
137- Fixes in MPD related to MPI-2 connect-accept.
138
139- Improved support for MPI-2 generalized requests that allows true
140nonblocking I/O in ROMIO.
141
142- MPE changes:
143  * Enabled thread-safe MPI logging through global mutex.
144  * Enhanced Jumpshot to be more thread friendly
145    + added simple statistics in the Legend windows.
146  * Added backtrace support to MPE on Solaris and glibc based systems,
147    e.g. Linux.  This improves the output error message from the
148    Collective/Datatype checking library.
149  * Fixed the CLOG2 format so it can be used in serial (non-MPI) logging.
150
151- Performance improvements for derived datatypes (including packing
152and communication) through in-built loop-unrolling and buffer
153alignment.
154
155- Performance improvements for MPI_Gather when non-power-of-two
156processes are used, and when a non-zero ranked root is performing the
157gather.
158
159- MPI_Comm_create works for intercommunicators.
160
161- Enabled -O2 and equivalent compiler optimizations for supported
162compilers by default (including GNU, Intel, Portland, Sun, Absoft,
163IBM).
164
165- Many other bug fixes, memory leak fixes and code cleanup. A full
166list of changes is available at
167www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_6changes.htm.
168
169
170===============================================================================
171                               Changes in 1.0.5
172===============================================================================
173
174- An SCTP channel has been added to the CH3 device. This was
175  implemented by Brad Penoff and Mike Tsai, Univ. of British Columbia.
176  Their group's webpage is located at http://www.cs.ubc.ca/labs/dsg/mpi-sctp/ .
177
178- Bugs related to dynamic processes have been fixed.
179
180- Performance-related fixes have been added to derived datatypes and
181  collective communication.
182
183- Updates to the Nemesis channel
184
185- Fixes to thread safety for the ch3:sock channel
186
187- Many other bug fixes and code cleanup.  A full list of changes is available
188  at www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_5changes.htm .
189
190
191===============================================================================
192                               Changes in 1.0.4
193===============================================================================
194
195- For the ch3:sock channel, the default build of MPICH2 supports
196  thread safety. A separate build is not needed as before. However,
197  thread safety is enabled only if the user calls MPI_Init_thread with 
198  MPI_THREAD_MULTIPLE. If not, no thread locks are called, so there
199  is no penalty.
200
201- A new low-latency channel called Nemesis has been added. It can be
202  selected by specifying the option --with-device=ch3:nemesis.
203  Nemesis uses shared memory for intranode communication and various
204  networks for internode communication.  Currently available networks
205  are TCP, GM and MX.  Nemesis is still a work in progress.  See the
206  README for more information about the channel.
207
208- Support has been added for providing message queues to debuggers.
209  Configure with --enable-debuginfo to make this information available.
210  This is still a "beta" test version and has not been extensively tested.
211
212- For systems with firewalls, the environment variable MPICH_PORT_RANGE can
213  be used to restrict the range of ports used by MPICH2.  See the documentation
214  for more details.
215
216- Withdrew obsolete modules, including the ib and rdma communication layers.
217  For Infiniband and MPICH2, please see
218  http://nowlab.cse.ohio-state.edu/projects/mpi-iba/
219  For other interconnects, please contact us at mpich2-maint@mcs.anl.gov .
220
221- Numerous bug fixes and code cleanup.  A full list of changes is available
222  at www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_4changes.htm .
223
224- Numerous new tests in the MPICH2 test suite.
225
226- For developers, the way in which information is passed between the top
227  level configure and configures in the device, process management, and
228  related modules has been cleaned up.  See the comments at the beginning
229  of the top-level configure.in for details.  This change makes it easier
230  to interface other modules to MPICH2.
231
232
233===============================================================================
234                               Changes in 1.0.3
235===============================================================================
236
237- There are major changes to the ch3 device implementation.  Old and
238  unsupported channels (essm, rdma) have been removed.   The
239  internal interface between ch3 and the channels has been improved to
240  similify the process of adding a new channel (sharing existing code
241  where possible) and to improve performance.  Further changes in this
242  internal interface are expected.
243
244- Numerous bug fixes and code cleanup
245
246        Creation of intercommunicators and intracommunicators
247        from the intercommunicators created with Spawn and Connect/Accept
248
249        The computation of the alignment and padding of items within
250        structures now handles additional cases, including systems
251        where the alignment an padding depends on the type of the first
252        item in the structure
253
254        MPD recognizes wdir info keyword
255
256        gforker's mpiexec supports -env and -genv arguments for controlling
257        which environment variables are delivered to created processes
258
259- While not a bug, to aid in the use of memory trace packages, MPICH2
260  tries to free all allocated data no later than when MPI_Finalize
261  returns.
262
263- Support for DESTDIR in install targets
264
265- Enhancements to SMPD
266
267- In order to support special compiler flags for users that may be
268  different from those used to build MPICH2, the environment variables
269  MPI_CFLAGS, MPI_FFLAGS, MPI_CXXFLAGS, and MPI_F90FLAGS may be used
270  to specify the flags used in mpicc, mpif77, mpicxx, and mpif90
271  respectively.  The flags CFLAGS, FFLAGS, CXXFLAGS, and F90FLAGS are
272  used in the building of MPICH2.
273
274- Many enhancements to MPE
275
276- Enhanced support for features and idiosyncracies of Fortran 77 and
277  Fortran 90 compilers, including gfortran, g95, and xlf
278
279- Enhanced support for C++ compilers that do not fully support abstract
280  base classes
281
282- Additional tests in the mpich2/tests/mpi
283   
284- New FAQ included (also available at
285    http://www.mcs.anl.gov/mpi/mpich2/faq.htm)
286
287- Man pages for mpiexec and mpif90
288
289- Enhancements for developers, including a more flexible and general
290  mechanism for inserting logging and information messages, controlable
291  with --mpich-dbg-xxx command line arguments or MPICH_DBG_XXX environment
292  variables.
293
294- Note to developers:
295  This release contains many changes to the structure of the CH3
296  device implementation (in src/mpid/ch3), including signficant
297  reworking of the files (many files have been combined into fewer files
298  representing logical grouping of functions).  The next release of
299  MPICH2 will contain even more significant changes to the device
300  structure as we introduce a new communication implementation.
301 
302===============================================================================
303                               Changes in 1.0.2
304===============================================================================
305
306- Optimizations to the MPI-2 one-sided communication functions for the
307  sshm (scalable shared memory) channel when window memory is
308  allocated with MPI_Alloc_mem (for all three synchronization methods).
309
310- Numerous bug fixes and code cleanup.
311
312- Fixed memory leaks.
313
314- Fixed shared library builds.
315
316- Fixed performance problems with MPI_Type_create_subarray/darray
317
318- The following changes have been made to MPE2:
319
320  - MPE2 now builds the MPI collective and datatype checking library
321    by default.
322
323  - SLOG-2 format has been upgraded to 2.0.6 which supports event drawables
324    and provides count of real drawables in preview drawables.
325
326  - new slog2 tools, slog2filter and slog2updater, which both are logfile
327    format convertors.  slog2filter removes undesirable categories of
328    drawables as well as alters the slog2 file structure.  slog2updater
329    is a slog2filter that reads in older logfile format, 2.0.5, and
330    writes out the latest format 2.0.6.
331
332- The following changes have been made to MPD:
333
334  - Nearly all code has been replaced by new code that follows a more
335    object-oriented approach than before.  This has not changed any
336    fundamental behavior or interfaces.
337
338  - There is info support in spawn and spawn_multiple for providing
339    parts of the environment for spawned processes such as search-path
340    and current working directory.  See the Standard for the required
341    fields.
342
343  - mpdcheck has been enhanced to help users debug their cluster and
344    network configurations.
345
346  - CPickle has replaced marshal as the source module for dumps and loads.
347
348  - The mpigdb command has been replaced by mpiexec -gdb.
349
350  - Alternate interfaces can be used.  See the Installer's Guide.
351 
352
353===============================================================================
354                               Changes in 1.0.1
355===============================================================================
356
357- Copyright statements have been added to all code files, clearly identifying
358  that all code in the distribution is covered by the extremely flexible
359  copyright described in the COPYRIGHT file.
360
361- The MPICH2 test suite (mpich2/test) can now be run against any MPI
362  implementation, not just MPICH2.
363
364- The send and receive socket buffers sizes may now be changed by setting
365  MPICH_SOCKET_BUFFER_SIZE.  Note: the operating system may impose a maximum
366  socket buffer size that prohibits MPICH2 from increasing the buffers to the
367  desire size.  To raise the maximum allowable buffer size, please contact your
368  system administrator.
369
370- Error handling throughout the MPI routines has been improved.  The error
371  handling in some internal routines has been simplified as well, making the
372  routines easier to read.
373
374- MPE (Jumpshot and CLOG logging) is now supported on Microsoft Windows.
375
376- C applications built for Microsoft Windows may select the desired channels at
377  runtime.
378
379- A program not started with mpiexec may become an MPI program by calling
380  MPI_Init.  It will have an MPI_COMM_WORLD of size one.  It may then call
381  other MPI routines, including MPI_COMM_SPAWN, to become a truly parallel
382  program.  At present, the use of MPI_COMM_SPAWN and MPI_COMM_SPAWN_MULTIPLE
383  by such a process is only supported by the MPD process manager.
384
385- Memory leaks in communicator allocation and the C++ binding have been fixed.
386
387- Following GNU guidelines, the parts of the install step that checked the
388  installation have been moved to an installcheck target.  Much of the
389  installation now supports the DESTDIR prefix.
390
391- Microsoft Visual Studio projects have been added to make it possible to build
392  x86-64 version
393
394- Problems with compilers and linkers that do not support weak symbols, which
395  are used to support the PMPI profiling interface, have been corrected.
396
397- Handling of Fortran 77 and Fortran 90 compilers has been improved, including
398  support for g95.
399
400- The Fortran stdcall interface on Microsoft Windows now supports character*.
401
402- A bug in the OS X implementation of poll() caused the sock channel to hang.
403  A workaround has been put in place.
404
405- Problems with installation under OS/X are now detected and corrected.
406  (Install breaks libraries that are more than 10 seconds old!)
407
408- The following changes have been made to MPD:
409
410  - Sending a SIGINT to mpiexec/mpdrun, such as by typing control-C, now causes
411    SIGINT to be sent to the processes within the job.  Previously, SIGKILL was
412    sent to the processes, preventing applications from catching the signal
413    and performing their own signal processing.
414
415  - The process for merging output has been improved.
416
417  - A new option, -ifhn, has been added to the machine file, allowing the user
418    to select the destination interface to be used for TCP communication.  See
419    the User's Manual for details.
420
421  - The user may now select, via the "-s" option to mpiexec/mpdrun, which
422    processes receive input through stdin.  stdin is immediately closed for all
423    processes not in set receiving input.  This prevents processes not in the
424    set from hanging should they attempt to read from stdin.
425
426  - The MPICH2 Installer's Guide now contains an appendix on troubleshooting
427    problems with MPD.
428
429- The following changes have been made to SMPD:
430
431  - On Windows machines, passwordless authentication (via SSPI) can now be used
432    to start processes on machines within a domain.  This feature is a recent
433    addition, and should be considered experimental.
434
435  - On Windows machines, the -localroot option was added to mpiexec, allowing
436    processes on the local machines to perform GUI operations on the local
437    desktop.
438
439  - On Windows machines, network drive mapping is now supported via the -map
440    option to mpiexec.
441
442  - Three new GUI tools have been added for Microsoft Windows.  These tools are
443    wrappers to the command line tools, mpiexec.exe and smpd.exe.  wmpiexec
444    allows the user to run a job much in the way they with mpiexec.  wmpiconfig
445    provides a means of setting various global options to the SMPD process
446    manager environment.  wmpiregister encrypts the user's credentials and
447    saves them to the Windows Registry.
448
449- The following changes have been made to MPE2:
450
451  - MPE2 no longer attempt to compile or link code during 'make install' to
452    validate the installation.  Instead, 'make installcheck' may now be used to
453    verify that the MPE installation.
454
455  - MPE2 now supports DESTDIR.
456
457- The sock channel now has preliminary support for MPI_THREAD_SERIALIZED and
458  MPI_THREAD_MULTIPLE on both UNIX and Microsoft Windows.  We have performed
459  rudimentary testing; and while overall the results were very positive, known
460  issues do exist.  ROMIO in particular experiences hangs in several places.
461  We plan to correct that in the next release.  As always, please report any
462  difficulties you encounter.
463
464- Another channel capable of communicating with both over sockets and shared
465  memory has been added.  Unlike the ssm channel which waits for new data to
466  arrive by continuously polling the system in a busy loop, the essm channel
467  waits by blocking on an operating system event object.  This channel is
468  experimental, and is only available for Microsoft Windows.
469
470- The topology routines have been modified to allow the device to override the
471  default implementation.  This allows the device to export knowledge of the
472  underlying physical topology to the MPI routines (Dims_create and the
473  reorder == true cases in Cart_create and Graph_create). 
474
475- New memory allocation macros, MPIU_CHK[PL]MEM_*(), have been added to help
476  prevent memory leaks.  See mpich2/src/include/mpimem.h.
477
478- New error reporting macros, MPIU_ERR_*, have been added to simplify the error
479  handling throughout the code, making the code easier to read.  See
480  mpich2/src/include/mpierrs.h.
481
482- Interprocess communication using the Sock interface (sock and ssm channels)
483  may now be bound to a particular destination interface using the environment
484  variable MPICH_INTERFACE_HOSTNAME.  The variable needs to be set for each
485  process for which the destination interface is not the default interface.
486  (Other mechanisms for destination interface selection will be provided in
487  future releases.)  Both MPD and SMPD provide a more simplistic mechanism for
488  specifying the interface.  See the user documentation.
489
490- Too many bug fixes to describe.  Much thanks goes to the users who reported
491  bugs.  Their patience and understanding as we attempted to recreate the
492  problems and solve them is greatly appreciated.
493
494
495===============================================================================
496                                Changes in 1.0
497===============================================================================
498
499- MPICH2 now works on Solaris.
500
501- The User's Guide has been expanded considerably.  The Installation Guide has
502  been expanded some as well.
503
504- MPI_COMM_JOIN has been implemented; although like the other dynamic process
505  routines, it is only supported by the Sock channel.
506
507- MPI_COMM_CONNECT and MPI_COMM_ACCEPT are now allowed to connect with remote
508  process to which they are already connected.
509
510- Shared libraries can now be built (and used) on IA32 Linux with the GNU
511  compilers (--enable-sharedlibs=gcc), and on Solaris with the native Sun
512  Workshop compilers (--enable-sharedlibs=solaris).  They may also work on
513  other operating systems with GCC, but that has not been tested.  Previous
514  restrictions disallowing C++ and Fortran bindings when building shared
515  libraries have been removed.
516
517- The dataloop and datatype contents code has been improved to address
518  alignment issues on all platforms.
519
520- A bug in the datatype code, which handled zero block length cases
521  incorrectly, has been fixed.
522
523- An segmentation fault in the datatype memory management, resulting from
524  freeing memory twice, has been fixed.
525
526- The following changes were made to the MPD process manager:
527
528  - MPI_SPAWN_MULTIPLE now works with MPD.
529
530  - The arguments to the 'mpiexec' command supplied by the MPD have changed.
531    First, the -default option has been removed.  Second, more flexible ways to
532    pass environment variables have been added.
533
534  - The commands 'mpdcheck' and 'testconfig' have been to installations using
535    MPD.  These commands test the setup of the machines on which you wish to
536    run MPICH2 jobs.  They help to identify misconfiguration, firewall issues,
537    and other communication problems.
538
539  - Support for MPI_APPNUM and MPI_UNIVERSE_SIZE has been added to the Simple
540    implementation of PMI and the MPD process manager.
541
542  - In general, error detection and recovery in MPD has improved.
543
544- A new process manager, gforker, is now available.  Like the forker process
545  manager, gforker spawns processes using fork(), and thus is quite useful on
546  SMPs machines.  However, unlike forker, gforker supports all of the features
547  of a standard mpiexec, plus some.  Therefore, It should be used in place of
548  the previous forker process manager, which is now deprecated.
549
550- The following changes were made to ROMIO:
551
552  - The amount of duplicated ROMIO code in the close, resize, preallocate,
553    read, write, asynchronous I/O, and sync routines has been substantially
554    reduced.
555
556  - A bug in flattening code, triggered by nested datatypes, has been fixed.
557
558  - Some small memory leaks have been fixed.
559
560  - The error handling has been abstracted allowing different MPI
561    implementations to handle and report error conditions in their own way.
562    Using this abstraction, the error handling routines have been made
563    consistent with rest of MPICH2.
564
565  - AIO support has been cleaned up and unified.  It now works correctly on
566    Linux, and is properly detected on old versions of AIX.
567
568  - A bug in MPI_File_seek code, and underlying support code, has been fixed.
569
570  - Support for PVFS2 has improved.
571
572  - Several dead file systems have been removed.  Others, including HFS, SFS,
573    PIOFS, and Paragon, have been deprecated.
574
575- MPE and CLOG have been updated to version 2.1. For more details, please see
576  src/mpe2/README.
577
578- New macros for memory management were added to support function local
579  allocations (alloca), to rollback pending allocations when error conditions
580  are detected to avoid memory leaks, and to improve the conciseness of code
581  performing memory allocations.
582
583- New error handling macros were added to make internal error handling code
584  more concise.
585
586===============================================================================
587                               Changes in 0.971
588===============================================================================
589
590- Code restricted by copyrights less flexible than the one described in the
591  COPYRIGHT file has been removed.
592
593- Installation and User Guides have been added.
594
595- The SMPD PMI Wire Protocol Reference Manual has been updated.
596
597- To eliminate portability problems, common blocks in mpif.h that spanned
598  multiple lines were broken up into multiple common blocks each described on a
599  single line.
600
601- A new command, mpich2version, was added to allow the user to obtain
602  information about the MPICH2 installation.  This command is currently a
603  simple shell script.  We anticipate that the mpich2version command will
604  eventually provide additional information such as the patches applied and the
605  date of the release.
606
607- The following changes were made to MPD2:
608
609  - Support was added for MPI's "singleton init", in which a single
610    process started in the normal way (i.e., not by mpiexec or mpirun)
611    becomes an MPI process with an MPI_COMM_WORLD of size one by
612    calling MPI_Init.  After this the process can call other MPI
613    functions, including MPI_Comm_spawn.
614
615  - The format for some of the arguments to mpiexec have changed,
616    especially for passing environment variables to MPI processes.
617
618  - In addition to miscellaneous hardening, better error checking and
619    messages have been added.
620
621  - The install process has been improved.  In particular, configure
622    has been updated to check for a working install program and supply
623    it's own installation script (install.sh) if necessary.
624
625  - A new program, mpdcheck, has been added to help diagnose machine
626    configurations that might be erroneous or at least confusing to
627    mpd.
628
629  - Runtime version checking has been added to insure that the Simple
630    implementation of PMI linked into the application and the MPD
631    process manager being used to run that application are compatible.
632
633  - Minor improvements have been made to mpdboot.
634
635  - Support for the (now deprecated) BNR interface has been added to
636    allow MPICH1 programs to also be run via MPD2.
637
638- Shared libraries are now supported on Linux systems using the GNU compilers
639  with the caveat that C++ support must be disabled (--disable-cxx).
640
641- The CH3 interface and device now provide a mechanism for using RDMA (remote
642  direct memory access) to transfer data between processes.
643
644- Logging capabilities for MPI and internal routines have been readded.  See
645  the documentation in doc/logging for details.
646
647- A "meminit" option was added to --enable-g to force all bytes associated with
648  a structure or union to be initialized prior to use.  This prevents programs
649  like Valgrind from complaining about uninitialized accesses.
650
651- The dist-with-version and snap targets in the top-level Makefile.sm now
652  properly produce mpich2-<ver>/maint/Version instead of mpich2-<ver>/Version.
653  In addition, they now properly update the VERSION variable in Makefile.sm
654  without clobbering the sed line that performs the update.
655
656- The dist and snap targets in the top-level Makefile.sm now both use the
657  dist-with-version target to avoid inconsistencies.
658
659- The following changes were made to simplemake:
660
661  - The environment variables DEBUG, DEBUG_DIRS, and DEBUG_CONFDIR can now be
662    used to control debugging output.
663
664  - Many fixes were made to make simplemake so that it would run cleanly with
665    perl -w.
666
667  - Installation of *all* files from a directory is now possible (example,
668    installing all of the man pages).
669
670  - The clean targets now remove the cache files produced by newer versions of
671    autoconf.
672
673  - For files that are created by configure, the determination of the
674    location of that configure has been improved, so that make of those
675    files (e.g., make Makefile) is more likely to work.  There is still
676    more to do here.
677
678  - Short loops over subdirectories are now unrolled.
679
680  - The maintainerclean target has been renamed to maintainer-clean to match
681    GNU guidelines.
682
683  - The distclean and maintainer-clean targets have been improved.
684
685  - An option was added to perform one ar command per directory instead of one
686    per file when creating the profiling version of routines (needed only for
687    systems that do not support weak symbols).
688
689
690===============================================================================
691                                Changes in 0.97
692===============================================================================
693
694- MPI-2 one-sided communication has been implemented in the CH3 device.
695
696- mpigdb works as a simple parallel debugger for MPI programs started
697  with mpd.  New since MPICH1 is the ability to attach to running
698  parallel programs.  See the README in mpich2/src/pm/mpd for details.
699
700- MPI_Type_create_darray() and MPI_Type_create_subarray() implemented including
701  the right contents and envelope data.
702
703- ROMIO flattening code now supports subarray and darray combiners.
704
705- Improve scalability and performance of some ROMIO PVFS and PVFS2 routines
706
707- An error message string parameter was added to MPID_Abort().  If the
708  parameter is non-NULL this string will be used as the message with the abort
709  output.  Otherwise, the output message will be base on the error message
710  associated with the mpi_errno parameter.
711
712- MPID_Segment_init() now takes an additional boolean parameter that specifies
713  if the segment processing code is to produce/consume homogeneous (FALSE) or
714  heterogeneous (TRUE) data.
715
716- The definitions of MPID_VCR and MPID_VCRT are now defined by the device.
717
718- The semantics of MPID_Progress_{Start,Wait,End}() have changed.  A typical
719  blocking progress loop now looks like the following.
720
721  if (req->cc != 0)
722  {
723      MPID_Progress_state progress_state;
724
725      MPID_Progress_start(&progress_state);
726      while (req->cc != 0)
727      {
728          mpi_errno = MPID_Progress_wait(&progress_state);
729          if (mpi_errno != MPI_SUCCESS)
730          {
731              /* --BEGIN ERROR HANDLING-- */
732              MPID_Progress_end(&progress_state);
733              goto fn_fail;
734              /* --END ERROR HANDLING-- */
735          }
736      }
737      MPID_Progress_end(&progress_state);
738  }
739
740  NOTE: each of these routines now takes a single parameter, a pointer to a
741  thread local state variable.
742
743- The CH3 device and interface have been modified to better support
744  MPI_COMM_{SPAWN,SPAWN_MULTIPLE,CONNECT,ACCEPT,DISCONNECT}.  Channels
745  writers will notice the following.  (This is still a work in progress.  See
746  the note below.)
747
748  - The introduction of a process group object (MPIDI_PG_t) and a new
749    set of routines to manipulate that object.
750
751  - The renaming of the MPIDI_VC object to MPIDI_VC_t to make it more
752    consistent with the naming of other objects in the device.
753
754  - The process group information in the MPIDI_VC_t moved from the channel
755    specific portion to the device layer.
756
757  - MPIDI_CH3_Connection_terminate() was added to the CH3 interface to allow
758    the channel to properly shutdown a connection before the device deletes all
759    associated data structures.
760
761  - A new upcall routine, MPIDI_CH3_Handle_connection(), was added to allow the
762    device to notify the device when a connection related event has completed.
763    A present the only event is MPIDI_CH3_VC_EVENT_TERMINATED, which notify the
764    device that the underlying connection associated with a VC has been
765    properly shutdown.  For every call to MPIDI_CH3_Connection_terminate() that
766    the device makes, the channel must make a corresponding upcall to
767    MPIDI_CH3_Handle_connection().  MPID_Finalize() will likely hang if this
768    rule is not followed.
769
770  - MPIDI_CH3_Get_parent_port() was added to provide MPID_Init() with the port
771    name of the the parent (spawner).  This port name is used by MPID_Init()
772    and MPID_Comm_connect() to create an intercommunicator between the parent
773    (spawner) and child (spawnee).  Eventually, MPID_Comm_spawn_multiple() will
774    be update to perform the reverse logic; however, the logic is presently
775    still in the sock channel.
776
777  Note: the changes noted are relatively fresh and are the beginning to a set
778  of future changes.  The goal is to minimize the amount of code required by a
779  channel to support MPI dynamic process functionality.  As such, portions of
780  the device will change dramatically in a future release.  A few more changes
781  to the CH3 interface are also quite likely.
782
783- MPIDI_CH3_{iRead,iWrite}() have been removed from the CH3 interface.
784  MPIDI_CH3U_Handle_recv_pkt() now returns a receive request with a populated
785  iovec to receive data associated with the request.
786  MPIDU_CH3U_Handle_{recv,send}_req() reload the iovec in the request and
787  return and set the complete argument to TRUE if more data is to read or
788  written.  If data transfer for the request is complete, the complete argument
789  must be set to FALSE.
790
791
792===============================================================================
793                               Changes in 0.96p2
794===============================================================================
795
796The shm and ssm channels have been added back into the distribution.
797Officially, these channels are supported only on x86 platforms using the gcc
798compiler.  The necessary assembly instructions to guarantee proper ordering of
799memory operations are lacking for other platforms and compilers.  That said, we
800have seen a high success rate when testing these channels on unsupported
801systems.
802
803This patch release also includes a new unsupported channel.  The scalable
804shared memory, or sshm, channel is similar to the shm channel except that it
805allocates shared memory communication queues only when necessary instead of
806preallocating N-squared queues.
807
808
809===============================================================================
810                               Changes in 0.96p1
811===============================================================================
812
813This patch release fixes a problem with building MPICH2 on Microsoft Windows
814platforms.  It also corrects a serious bug in the poll implementation of the
815Sock interface.
816
817
818===============================================================================
819                                Changes in 0.96
820===============================================================================
821
822The 0.96 distribution is largely a bug fix release.  In addition to the many
823bug fixes, major improvements have been made to the code that supports the
824dynamic process management routines (MPI_Comm_{connect,accept,spawn,...}()).
825Additional changes are still required to support MPI_Comm_disconnect().
826
827We also added an experimental (and thus completely unsupported) rdma device.
828The internal interface is similar to the CH3 interface except that it contains
829a couple of extra routines to inform the device about data transfers using the
830rendezvous protocol.  The channel can use this extra information to pin memory
831and perform a zero-copy transfer.  If all goes well, the results will be rolled
832back into the CH3 device.
833
834Due to last minute difficulties, this release does not contain the shm or ssm
835channels.  These channels will be included in a subsequent patch release.
836
837
838===============================================================================
839                                Changes in 0.94
840===============================================================================
841
842Active target one-sided communication is now available for the ch3:sock
843channel.  This new functionality has undergone some correctness testing but has
844not been optimized in terms of performance.  Future release will include
845performance enhancements, passive target communication, and availability in
846channels other than just ch3:sock.
847
848The shared memory channel (ch3:shm), which performs communication using shared
849memory on a single machine, is now complete and has been extensively tested.
850At present, this channel only supports IA32 based machines (excluding the
851Pentium Pro which has a memory ordering bug).  In addition, this channel must
852be compiled with gcc.  Future releases with support additional architectures
853and compilers.
854
855A new channel has been added that performs inter-node communication using
856sockets (TCP/IP) and intra-node communication using shared memory.  This
857channel, ch3:ssm, is ideal for clusters of SMPs.  Like the shared memory
858channel (ch3:shm), this channel only supports IA32 based machines and must be
859compiled with gcc.  In future releases, the ch3:ssm channel will support
860additional architectures and compilers.
861
862The two channels that perform commutation using shared memory, ch3:shm and
863ch3:ssm, now support the allocation of shared memory using both the POSIX and
864System V interfaces.  The POSIX interface will be used if available; otherwise,
865the System V interface is used.
866
867In the interest of increasing portability, many enhancements have been made to
868both the code and the configure scripts.
869
870And, as always, many bugs have been fixed :-).
871
872
873***** INTERFACE CHANGES ****
874
875The parameters to MPID_Abort() have changed.  MPID_Abort() now takes a pointer
876to communicator object, an MPI error code, and an exit code.
877
878MPIDI_CH3_Progress() has been split into two functions:
879 MPIDI_CH3_Progress_wait() and MPIDI_CH3_Progress_test().
880
881
882===============================================================================
883                                Changes in 0.93
884===============================================================================
885
886Version 0.93 has undergone extensive changes to provide better error reporting.
887Part of these changes involved modifications to the ADI3 and CH3 interfaces.
888The following routines now return MPI error codes:
889
890MPID_Cancel_send()
891MPID_Cancel_recv()
892MPID_Progress_poke()
893MPID_Progress_test()
894MPID_Progress_wait()
895MPIDI_CH3_Cancel_send()
896MPIDI_CH3_Progress()
897MPIDI_CH3_Progress_poke()
898MPIDI_CH3_iRead()
899MPIDI_CH3_iSend()
900MPIDI_CH3_iSendv()
901MPIDI_CH3_iStartmsg()
902MPIDI_CH3_iStartmsgv()
903MPIDI_CH3_iWrite()
904MPIDI_CH3U_Handle_recv_pkt()
905MPIDI_CH3U_Handle_recv_req()
906MPIDI_CH3U_Handle_send_req()
907
908*******************************************************************************
909Of special note are MPID_Progress_test(), MPID_Progress_wait() and
910MPIDI_CH3_Progress() which previously returned an integer value indicating if
911one or more requests had completed.  They no longer return this value and
912instead return an MPI error code (also an integer).  The implication being that
913while the semantics changed, the type signatures did not.
914*******************************************************************************
915
916The function used to create error codes, MPIR_Err_create_code(), has also
917changed.  It now takes additional parameters, allowing it create a stack of
918errors and making it possible for the reporting function to indicate in which
919function and on which line the error occurred.  It also allows an error to be
920designated as fatal or recoverable.  Fatal errors always result in program
921termination regardless of the error handler installed by the application.
922
923A RDMA channel has been added and includes communication methods for shared
924memory and shmem.  This is recent development and the RDMA interface is still
925in flux.
Note: See TracBrowser for help on using the browser.