| 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 |
|---|
| 83 | added but is not configurable at this time). |
|---|
| 84 | |
|---|
| 85 | - OVERALL: Major clean up for the propagation of user-defined and |
|---|
| 86 | other 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 |
|---|
| 91 | independently. |
|---|
| 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 |
|---|
| 102 | managers that support it. |
|---|
| 103 | |
|---|
| 104 | - PM/PMI: Added SLURM support to configure to make it transparent to |
|---|
| 105 | users. |
|---|
| 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 |
|---|
| 114 | global 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 |
|---|
| 121 | list 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 |
|---|
| 130 | thread safety. |
|---|
| 131 | |
|---|
| 132 | - Preliminary support for dynamic loading of ch3 channels (sock, ssm, |
|---|
| 133 | shm). 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 |
|---|
| 140 | nonblocking 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 |
|---|
| 152 | and communication) through in-built loop-unrolling and buffer |
|---|
| 153 | alignment. |
|---|
| 154 | |
|---|
| 155 | - Performance improvements for MPI_Gather when non-power-of-two |
|---|
| 156 | processes are used, and when a non-zero ranked root is performing the |
|---|
| 157 | gather. |
|---|
| 158 | |
|---|
| 159 | - MPI_Comm_create works for intercommunicators. |
|---|
| 160 | |
|---|
| 161 | - Enabled -O2 and equivalent compiler optimizations for supported |
|---|
| 162 | compilers by default (including GNU, Intel, Portland, Sun, Absoft, |
|---|
| 163 | IBM). |
|---|
| 164 | |
|---|
| 165 | - Many other bug fixes, memory leak fixes and code cleanup. A full |
|---|
| 166 | list of changes is available at |
|---|
| 167 | www.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 | |
|---|
| 796 | The shm and ssm channels have been added back into the distribution. |
|---|
| 797 | Officially, these channels are supported only on x86 platforms using the gcc |
|---|
| 798 | compiler. The necessary assembly instructions to guarantee proper ordering of |
|---|
| 799 | memory operations are lacking for other platforms and compilers. That said, we |
|---|
| 800 | have seen a high success rate when testing these channels on unsupported |
|---|
| 801 | systems. |
|---|
| 802 | |
|---|
| 803 | This patch release also includes a new unsupported channel. The scalable |
|---|
| 804 | shared memory, or sshm, channel is similar to the shm channel except that it |
|---|
| 805 | allocates shared memory communication queues only when necessary instead of |
|---|
| 806 | preallocating N-squared queues. |
|---|
| 807 | |
|---|
| 808 | |
|---|
| 809 | =============================================================================== |
|---|
| 810 | Changes in 0.96p1 |
|---|
| 811 | =============================================================================== |
|---|
| 812 | |
|---|
| 813 | This patch release fixes a problem with building MPICH2 on Microsoft Windows |
|---|
| 814 | platforms. It also corrects a serious bug in the poll implementation of the |
|---|
| 815 | Sock interface. |
|---|
| 816 | |
|---|
| 817 | |
|---|
| 818 | =============================================================================== |
|---|
| 819 | Changes in 0.96 |
|---|
| 820 | =============================================================================== |
|---|
| 821 | |
|---|
| 822 | The 0.96 distribution is largely a bug fix release. In addition to the many |
|---|
| 823 | bug fixes, major improvements have been made to the code that supports the |
|---|
| 824 | dynamic process management routines (MPI_Comm_{connect,accept,spawn,...}()). |
|---|
| 825 | Additional changes are still required to support MPI_Comm_disconnect(). |
|---|
| 826 | |
|---|
| 827 | We also added an experimental (and thus completely unsupported) rdma device. |
|---|
| 828 | The internal interface is similar to the CH3 interface except that it contains |
|---|
| 829 | a couple of extra routines to inform the device about data transfers using the |
|---|
| 830 | rendezvous protocol. The channel can use this extra information to pin memory |
|---|
| 831 | and perform a zero-copy transfer. If all goes well, the results will be rolled |
|---|
| 832 | back into the CH3 device. |
|---|
| 833 | |
|---|
| 834 | Due to last minute difficulties, this release does not contain the shm or ssm |
|---|
| 835 | channels. These channels will be included in a subsequent patch release. |
|---|
| 836 | |
|---|
| 837 | |
|---|
| 838 | =============================================================================== |
|---|
| 839 | Changes in 0.94 |
|---|
| 840 | =============================================================================== |
|---|
| 841 | |
|---|
| 842 | Active target one-sided communication is now available for the ch3:sock |
|---|
| 843 | channel. This new functionality has undergone some correctness testing but has |
|---|
| 844 | not been optimized in terms of performance. Future release will include |
|---|
| 845 | performance enhancements, passive target communication, and availability in |
|---|
| 846 | channels other than just ch3:sock. |
|---|
| 847 | |
|---|
| 848 | The shared memory channel (ch3:shm), which performs communication using shared |
|---|
| 849 | memory on a single machine, is now complete and has been extensively tested. |
|---|
| 850 | At present, this channel only supports IA32 based machines (excluding the |
|---|
| 851 | Pentium Pro which has a memory ordering bug). In addition, this channel must |
|---|
| 852 | be compiled with gcc. Future releases with support additional architectures |
|---|
| 853 | and compilers. |
|---|
| 854 | |
|---|
| 855 | A new channel has been added that performs inter-node communication using |
|---|
| 856 | sockets (TCP/IP) and intra-node communication using shared memory. This |
|---|
| 857 | channel, ch3:ssm, is ideal for clusters of SMPs. Like the shared memory |
|---|
| 858 | channel (ch3:shm), this channel only supports IA32 based machines and must be |
|---|
| 859 | compiled with gcc. In future releases, the ch3:ssm channel will support |
|---|
| 860 | additional architectures and compilers. |
|---|
| 861 | |
|---|
| 862 | The two channels that perform commutation using shared memory, ch3:shm and |
|---|
| 863 | ch3:ssm, now support the allocation of shared memory using both the POSIX and |
|---|
| 864 | System V interfaces. The POSIX interface will be used if available; otherwise, |
|---|
| 865 | the System V interface is used. |
|---|
| 866 | |
|---|
| 867 | In the interest of increasing portability, many enhancements have been made to |
|---|
| 868 | both the code and the configure scripts. |
|---|
| 869 | |
|---|
| 870 | And, as always, many bugs have been fixed :-). |
|---|
| 871 | |
|---|
| 872 | |
|---|
| 873 | ***** INTERFACE CHANGES **** |
|---|
| 874 | |
|---|
| 875 | The parameters to MPID_Abort() have changed. MPID_Abort() now takes a pointer |
|---|
| 876 | to communicator object, an MPI error code, and an exit code. |
|---|
| 877 | |
|---|
| 878 | MPIDI_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 | |
|---|
| 886 | Version 0.93 has undergone extensive changes to provide better error reporting. |
|---|
| 887 | Part of these changes involved modifications to the ADI3 and CH3 interfaces. |
|---|
| 888 | The following routines now return MPI error codes: |
|---|
| 889 | |
|---|
| 890 | MPID_Cancel_send() |
|---|
| 891 | MPID_Cancel_recv() |
|---|
| 892 | MPID_Progress_poke() |
|---|
| 893 | MPID_Progress_test() |
|---|
| 894 | MPID_Progress_wait() |
|---|
| 895 | MPIDI_CH3_Cancel_send() |
|---|
| 896 | MPIDI_CH3_Progress() |
|---|
| 897 | MPIDI_CH3_Progress_poke() |
|---|
| 898 | MPIDI_CH3_iRead() |
|---|
| 899 | MPIDI_CH3_iSend() |
|---|
| 900 | MPIDI_CH3_iSendv() |
|---|
| 901 | MPIDI_CH3_iStartmsg() |
|---|
| 902 | MPIDI_CH3_iStartmsgv() |
|---|
| 903 | MPIDI_CH3_iWrite() |
|---|
| 904 | MPIDI_CH3U_Handle_recv_pkt() |
|---|
| 905 | MPIDI_CH3U_Handle_recv_req() |
|---|
| 906 | MPIDI_CH3U_Handle_send_req() |
|---|
| 907 | |
|---|
| 908 | ******************************************************************************* |
|---|
| 909 | Of special note are MPID_Progress_test(), MPID_Progress_wait() and |
|---|
| 910 | MPIDI_CH3_Progress() which previously returned an integer value indicating if |
|---|
| 911 | one or more requests had completed. They no longer return this value and |
|---|
| 912 | instead return an MPI error code (also an integer). The implication being that |
|---|
| 913 | while the semantics changed, the type signatures did not. |
|---|
| 914 | ******************************************************************************* |
|---|
| 915 | |
|---|
| 916 | The function used to create error codes, MPIR_Err_create_code(), has also |
|---|
| 917 | changed. It now takes additional parameters, allowing it create a stack of |
|---|
| 918 | errors and making it possible for the reporting function to indicate in which |
|---|
| 919 | function and on which line the error occurred. It also allows an error to be |
|---|
| 920 | designated as fatal or recoverable. Fatal errors always result in program |
|---|
| 921 | termination regardless of the error handler installed by the application. |
|---|
| 922 | |
|---|
| 923 | A RDMA channel has been added and includes communication methods for shared |
|---|
| 924 | memory and shmem. This is recent development and the RDMA interface is still |
|---|
| 925 | in flux. |
|---|