there was an #include directive missing
[openmpi-llc.git] / NEWS
blobaf5abcd93839dbf939bf3d6a707fbda7938369bc
1 Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
2                         University Research and Technology
3                         Corporation.  All rights reserved.
4 Copyright (c) 2004-2006 The University of Tennessee and The University
5                         of Tennessee Research Foundation.  All rights
6                         reserved.
7 Copyright (c) 2004-2006 High Performance Computing Center Stuttgart, 
8                         University of Stuttgart.  All rights reserved.
9 Copyright (c) 2004-2006 The Regents of the University of California.
10                         All rights reserved.
11 Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
12 Copyright (c) 2006      Voltaire, Inc. All rights reserved.
13 $COPYRIGHT$
15 Additional copyrights may follow
17 $HEADER$
19 ===========================================================================
21 This file contains the main features as well as overviews of specific
22 bug fixes (and other actions) for each version of Open MPI since
23 version 1.0.
25 1.1.2
26 -----
28 - Really fix Fortran status handling in MPI_WAITSOME and MPI_TESTSOME.
29 - Various datatype fixes, reported by several users as causing
30   failures in the BLACS testing suite.  Thanks to Harald Forbert, Ake
31   Sandgren and, Michael Kluskens for reporting the problem.
32 - Correctness and performance fixes for heterogeneous environments.
33 - Fixed a error in command line parsing on some platforms (causing
34   mpirun to crash without doing anything).
35 - Fix for initialization hangs on 64 bit Mac OS X PowerPC systems.
36 - Fixed some memory allocation problems in mpirun that could cause
37   random problems if "-np" was not specified on the command line.
38 - Add Kerberos authentication support for XGrid.
39 - Added LoadLeveler support for jobs larger than 128 tasks.
40 - Fix for large-sized Fortran LOGICAL datatypes.
41 - Fix various error checking in MPI_INFO_GET_NTHKEY and
42   MPI_GROUP_TRANSLATE_RANKS, and some collective operations
43   (particularly with regards to MPI_IN_PLACE).  Thanks to Lisandro
44   Dalcin for reporting the problems.
45 - Fix receiving messages to buffers allocated by MPI_ALLOC_MEM.
46 - Fix a number of race conditions with the MPI-2 Onesided
47   interface.
48 - Fix the "tuned" collective componenete where some cases where
49   MPI_BCAST could hang.
50 - Update TCP support to support non-uniform TCP environments.
51 - Allow the "poe" RAS component to be built on AIX or Linux.
52 - Only install mpif.h if the rest of the Fortran bindings are
53   installed.
54 - Fixes for BProc node selection.
55 - Add some missing Fortran MPI-2 IO constants.
58 1.1.1
59 -----
61 - Fix for Fortran string handling in various MPI API functions.
62 - Fix for Fortran status handling in MPI_WAITSOME and MPI_TESTSOME.
63 - Various fixes for the XL compilers.
64 - Automatically disable using mallot() on AIX.
65 - Memory fixes for 64 bit platforms with registering MCA parameters in
66   the self and MX BTL components.
67 - Fixes for BProc to support oversubscription and changes to the
68   mapping algorithm so that mapping processes "by slot" works as
69   expected.
70 - Fixes for various abort cases to not hang and clean up nicely.
71 - If using the Intel 9.0 v20051201 compiler on an IA64 platform, the
72   ptmalloc2 memory manager component will automatically disable
73   itself.  Other versions of the Intel compiler on this platform seem
74   to work fine (e.g., 9.1).
75 - Added "host" MPI_Info key to MPI_COMM_SPAWN and
76   MPI_COMM_SPAWN_MULTIPLE.
77 - Add missing C++ methods: MPI::Datatype::Create_indexed_block,
78   MPI::Datatype::Create_resized, MPI::Datatype::Get_true_extent.
79 - Fix OSX linker issue with Fortran bindings.
80 - Fixed MPI_COMM_SPAWN to start spawning new processes in slots that
81   (according to Open MPI) are not already in use.  
82 - Added capability to "mpirun a.out" (without specifying -np) that
83   will run on all currently-allocated resources (e.g., within a batch
84   job such as SLURM, Torque, etc.).
85 - Fix a bug with one particular case of MPI_BCAST.  Thanks to Doug
86   Gregor for identifying the problem.
87 - Ensure that the shared memory mapped file is only created when there
88   is more than one process on a node.
89 - Fixed problems with BProc stdin forwarding.
90 - Fixed problem with MPI_TYPE_INDEXED datatypes.  Thanks to Yven
91   Fournier for identifying this problem.
92 - Fix some thread safety issues in MPI attributes and the openib BTL.
93 - Fix the BProc allocator to not potentially use the same resources
94   across multiple ORTE universes.
95 - Fix gm resource leak.
96 - More latency reduction throughout the code base.
97 - Make the TM PLS (PBS Pro, Torque, Open PBS) more scalable, and fix
98   some latent bugs that crept in v1.1.  Thanks to the Thunderbird crew
99   at Sandia National Laboratories and Martin Schaffoner for access to
100   testing facilities to make this happen.
101 - Added new command line options to mpirun:
102   --nolocal: Do not run any MPI processes on the same node as mpirun
103     (compatibility with the OSC mpiexec launcher)
104   --nooversubscribe: Abort if the number of processes requested would
105     cause oversubscription
106   --quiet / -q: do not show spurious status messages
107   --version / -V: show the version of Open MPI
108 - Fix bus error in XGrid process starter.  Thanks to Frank from the
109   Open MPI user's list for identifying the problem.
110 - Fix data size mismatches that caused memory errors on PPC64
111   platforms during the startup of the openib BTL.
112 - Allow propagation of SIGUSR1 and SIGUSR2 signals from mpirun to
113   back-end MPI processes.
114 - Add missing MPI::Is_finalized() function.
120 - Various MPI datatype fixes, optimizations.
121 - Fixed various problems on the SPARC architecture (e.g., not
122   correctly aligning addresses within structs).
123 - Improvements in various run-time error messages to be more clear
124   about what they mean and where the errors are occurring.
125 - Various fixes to mpirun's handling of --prefix.
126 - Updates and fixes for Cray/Red Storm support.
127 - Major improvements to the Fortran 90 MPI bindings:
128   - General improvements in compile/linking time and portability
129     between different F90 compilers.
130   - Addition of "trivial", "small" (the default), and "medium"
131     Fortran 90 MPI module sizes (v1.0.x's F90 module was
132     equivalent to "medium").  See the README file for more
133     explanation.
134   - Fix various MPI F90 interface functions and constant types to
135     match.  Thanks to Michael Kluskens for pointing out the problems
136     to us.
137 - Allow short messagees to use RDMA (vs. send/receive semantics) to a
138   limited number peers in both the mvapi and openib BTL components.
139   This reduces communication latency over IB channels.
140 - Numerous performance improvements throughout the entire code base.
141 - Many minor threading fixes.
142 - Add a define OMPI_SKIP_CXX to allow the user to skip the mpicxx.h from
143   being included in mpi.h. It allows the user to compile C code with a CXX
144   compiler without including the CXX bindings.
145 - PERUSE support has been added. In order to activate it add
146   --enable-peruse to the configure options. All events described in
147   the PERUSE 2.0 draft are supported, plus one Open MPI
148   extension. PERUSE_COMM_REQ_XFER_CONTINUE allow to see how the data
149   is segmented internally, using multiple interfaces or the pipeline
150   engine. However, this version only support one event of each type
151   simultaneously attached to a communicator.
152 - Add support for running jobs in heterogeneous environments.
153   Currently supports environments with different endianness and
154   different representations of C++ bool and Fortran LOGICAL.
155   Mismatched sizes for other datatypes is not supported.
156 - Open MPI now includes an implementation of the MPI-2 One-Sided
157   Communications specification.
158 - Open MPI is now configurable in cross-compilation environments.
159   Several Fortran 77 and Fortran 90 tests need to be pre-seeded with
160   results from a config.cache-like file.
161 - Add --debug option to mpirun to generically invoke a parallel debugger.
164 1.0.3 (unreleased; all fixes included in 1.1)
165 ---------------------------------------------
167 - Fix a problem noted by Chris Hennes where MPI_INFO_SET incorrectly
168   disallowed long values.
169 - Fix a problem in the launch system that could cause inconsistent
170   launch behavior, particularly when launching large jobs.
171 - Require that the openib BTL find <sysfs/libsysfs.h>.  Thanks to Josh
172   Aune for the suggestion.
173 - Include updates to support the upcoming Autoconf 2.60 and Libtool
174   2.0.  Thanks to Ralf Wildenhues for all the work!
175 - Fix bug with infinite loop in the "round robin" process mapper.
176   Thanks to Paul Donohue for reporting the problem.
177 - Enusre that memory hooks are removed properly during MPI_FINALIZE.
178   Thanks to Neil Ludban for reporting the problem.
179 - Various fixes to the included support for ROMIO.
180 - Fix to ensure that MPI_LONG_LONG and MPI_LONG_LONG_INT are actually
181   synonyms, as defined by the MPI standard.  Thanks to Martin Audet
182   for reporting this.
183 - Fix Fortran 90 configure tests to properly utilize LDFLAGS and LIBS.
184   Thanks to Terry Reeves for reporting the problem.
185 - Fix shared memory progression in asynchronous progress scenarios.
186   Thanks to Mykael Bouquey for reporting the problem.
187 - Fixed back-end operations for predefined MPI_PROD for some
188   datatypes.  Thanks to Bert Wesarg for reporting this.
189 - Adapted configure to be able to handle Torque 2.1.0p0's (and above)
190   new library name.  Thanks to Brock Palen for pointing this out and
191   providing access to a Torque 2.1.0p0 cluster to test with.
192 - Fixed situation where mpirun could set a shell pipeline's stdout
193   to non-blocking, causing the shell pipeline to prematurely fail.
194   Thanks to Darrell Kresge for figuring out what was happening.
195 - Fixed problems with leave_pinned that could cause Badness with the
196   mvapi BTL.
197 - Fixed problems with MPI_FILE_OPEN and non-blocking MPI-2 IO access.
198 - Fixed various InfiniBand port matching issues during startup.
199   Thanks to Scott Weitzenkamp for identifying these problems.
200 - Fixed various configure, build and run-time issues with ROMIO.
201   Thanks to Dries Kimpe for bringing them to our attention.
202 - Fixed error in MPI_COMM_SPLIT when dealing with intercommunicators.
203   Thanks to Bert Wesarg for identifying the problem.
204 - Fixed backwards handling of "high" parameter in MPI_INTERCOMM_MERGE.
205   Thanks to Michael Kluskens for pointing this out to us.
206 - Fixed improper handling of string arguments in Fortran bindings
207   for MPI-IO functionality
208 - Fixed segmentation fault with 64 bit applications on Solaris when
209   using the shared memory transports.
210 - Fixed MPI_COMM_SELF attributes to free properly at the beginning of
211   MPI_FINALIZE.  Thanks to Martin Audet for bringing this to our
212   attention.
213 - Fixed alignment tests for cross-compiling to not cause errors with
214   recent versions of GCC.
217 1.0.2
218 -----
220 - Fixed assembly race condition on AMD64 platforms.
221 - Fixed residual .TRUE. issue with copying MPI attributes set from
222   Fortran.
223 - Remove unnecessary logic from Solaris pty I/O forwarding.  Thanks to
224   Francoise Roch for bringing this to our attention.
225 - Fixed error when count = 0 was given for multiple completion MPI
226   functions (MPI_TESTSOME, MPI_TESTANY, MPI_TESTALL, MPI_WAITSOME,
227   MPI_WAITANY, MPI_WAITALL).
228 - Better handling in MPI_ABORT for when peer processes have already
229   died, especially under some resource managers.
230 - Random updates to README file, to include notes about the Portland
231   compilers.
232 - Random, small threading fixes to prevent deadlock.
233 - Fixed a problem with handling long mpirun app files.  Thanks to Ravi
234   Manumachu for identifying the problem.
235 - Fix handling of strings in several of the Fortran 77 bindings.
236 - Fix LinuxPPC assembly issues.  Thanks to Julian Seward for reporting 
237   the problem.
238 - Enable pty support for standard I/O forwarding on platforms that
239   have ptys but do not have openpty().  Thanks to Pierre Valiron for
240   bringing this to our attention.
241 - Disable inline assembly for PGI compilers to avoid compiler errors.
242   Thanks to Troy Telford for bringing this to our attention.
243 - Added MPI_UNSIGNED_CHAR and MPI_SIGNED_CHAR to the allowed reduction
244   types.
245 - Fix a segv in variable-length message displays on Opterons running
246   Solaris.  Thanks to Pierre Valiron for reporting the issue.
247 - Added MPI_BOOL to the intrinsic reduction operations MPI_LAND,
248   MPI_LOR, MPI_LXOR.  Thanks to Andy Selle for pointing this out to us.
249 - Fixed TCP BTL network matching logic during MPI_INIT; in some cases
250   on multi-NIC nodes, a NIC could get paired with a NIC on another
251   network (typically resulting in deadlock).  Thanks to Ken Mighell
252   for pointing this out to us.
253 - Change the behavior of orterun (mpirun, mpirexec) to search for
254   argv[0] and the cwd on the target node (i.e., the node where the
255   executable will be running in all systems except BProc, where the
256   searches are run on the node where orterun is invoked).
257 - Fix race condition in shared memory transport that could cause
258   crashes on machines with weak memory consistency models (including
259   POWER/PowerPC machines).
260 - Fix warnings about setting read-only MCA parameters on bproc systems.
261 - Change the exit status set by mpirun when an application process is
262   killed by a signal.  The exit status is now set to signo + 128, which
263   conforms with the behavior of (almost) all shells.
264 - Correct a datatype problem with the convertor when partially
265   unpacking data. Now we can position the convertor to any position
266   not only on the predefined types boundaries. Thanks to Yvan Fournier
267   for reporting this to us.
268 - Fix a number of standard I/O forwarding issues, including the
269   ability to background mpirun and a loss of data issue when
270   redirecting mpirun's standard input from a file.
271 - Fixed bug in ompi_info where rcache and bml MCA parameters would not
272   be displayed.
273 - Fixed umask issues in the session directory.  Thanks to Glenn Morris
274   for reporting this to us.
275 - Fixed tcsh-based LD_LIBRARY_PATH issues with --prefix.  Thanks to
276   Glen Morris for identifying the problem and suggesting the fix.
277 - Removed extraneous \n's when setting PATH and LD_LIBRARY_PATH in the
278   rsh startup.  Thanks to Glen Morris for finding these typos.
279 - Fixed missing constants in MPI C++ bindings.
280 - Fixed some errors caused by threading issues.
281 - Fixed openib BTL flow control logic to not overrun the number of
282   send wqes available.
283 - Update to match newest OpenIB user-level library API.  Thanks to
284   Roland Dreier for submitting this patch.
285 - Report errors properly when failing to register memory in the openib
286   BTL.
287 - Reduce memory footprint of openib BTL.
288 - Fix parsing problem with mpirun's "-tv" switch.  Thanks to Chris
289   Gottbrath for supplying the fix.
290 - Fix Darwin net/if.h configure warning.
291 - The GNU assembler unbelievably defaults to making stacks executable.
292   So when using gas, add flags to explicitly tell it to not make
293   stacks executable (lame but necessary).
294 - Add missing MPI::Request::Get_status() methods.  Thanks to Bill
295   Saphir for pointing this out to us.
296 - Improved error messages on memory registration errors (e.g., when
297   using high-speed networks).
298 - Open IB support now checks firmware for how many outstanding RDMA
299   requests are supported.  Thanks to Mellanox for pointing this out to
300   us.
301 - Enable printing of stack traces in MPI processes upon SIGBUS,
302   SIGSEGV, and SIGFPE if the platform supports it.
303 - Fixed F90 compilation support for the Lahey compiler.
304 - Fixed issues with ROMIO shared library support.
305 - Fixed internal accounting problems with rsh support.
306 - Update to GNU Libtool 1.5.22.
307 - Fix error in configure script when setting CCAS to ias (the Intel
308   assembler).
309 - Added missing MPI::Intercomm collectives.
310 - Fixed MPI_IN_PLACE handling for Fortran collectives.
311 - Fixed some more C++ const_cast<> issues.  Thanks for Martin Audet
312   (again) for bringing this to our attention.
313 - Updated ROMIO with the version from MPICH 1.2.7p1, marked as version
314   2005-06-09.
315 - Fixes for some cases where the use of MPI_BOTTOM could cause
316   problems.
317 - Properly handle the case where an mVAPI does not have shared receive
318   queue support (such as the one shipped by SilverStorm / Infinicon
319   for OS X).
322 1.0.1
323 -----
325 - Fixed assembly on Solaris AMD platforms.  Thanks to Pierre Valiron
326   for bringing this to our attention.
327 - Fixed long messages in the send-to-self case.
328 - Ensure that when the "leave_pinned" option is used, the memory hooks
329   are also enabled.  Thanks to Gleb Natapov for pointing this out.
330 - Fixed compile errors for IRIX.
331 - Allow hostfiles to have integer host names (for BProc clusters).
332 - Fixed a problem with message matching of out-of-order fragments in
333   multiple network device scenarios.
334 - Converted all the C++ MPI bindings to use proper const_cast<>'s
335   instead of old C-style casts to get rid of const-ness.  Thanks to
336   Martin Audet for raising the issue with us.
337 - Converted MPI_Offset to be a typedef instead of a #define because it
338   causes problems for some C++ parsers.  Thanks to Martin Audet for
339   bringing this to our attention.
340 - Improved latency of TCP BTL.
341 - Fixed index value in MPI_TESTANY to be MPI_UNDEFINED if some
342   requests were not MPI_REQUEST_NULL, but no requests finished.
343 - Fixed several Fortran MPI API implementations that incorrectly used
344   integers instead of logicals or address-sized integers.
345 - Fix so that Open MPI correctly handles the Fortran value for .TRUE.,
346   regardless of what the Fortran compiler's value for .TRUE. is.
347 - Improved scalability of MX startup.
348 - Fix datatype offset handling in the coll basic component's
349   MPI_SCATTERV implementation.
350 - Fix EOF handling on stdin.
351 - Fix missing MPI_F_STATUS_IGNORE and MPI_F_STATUSES_IGNORE
352   instanatiations.  Thanks to Anthony Chan for pointing this out.
353 - Add a missing value for MPI_WIN_NULL in mpif.h.
354 - Bring over some fixes for the sm btl that somehow didn't make it
355   over from the trunk before v1.0.  Thanks to Beth Tibbitts and Bill
356   Chung for helping identify this issue.
357 - Bring over some fixes for the iof that somehow didn't make it over
358   from the trunk before v1.0.
359 - Fix for --with-wrapper-ldflags handling.  Thanks to Dries Kimpe for
360   pointing this out to us.
366 Initial public release.