The UD BTL isn't gone - the latest version is in my afriedle-ud branch. This version on the trunk was very old, ompi_ignore'd, lacked performance, and probably contained bugs. The maintained version on my branch is working solid, and will eventually come back, but not for v1.2.
This commit was SVN r12144.
Fix the problem observed by multiple people that comm_spawned children were (once again) being mapped onto the same nodes as their parents. This was caused by going through the RAS a second time, thus overwriting the mapper's bookkeeping that told RMAPS where it had left off.
To solve this - and to continue moving forward on the ORTE development - we introduce the concept of attributes to control the behavior of the RM frameworks. I defined the attributes and a list of attributes as new ORTE data types to make it easier for people to pass them around (since they are now fundamental to the system, and therefore we will be packing and unpacking them frequently). Thus, all the functions to manipulate attributes can be implemented and debugged in one place.
I used those capabilities in two places:
1. Added an attribute list to the rmgr.spawn interface.
2. Added an attribute list to the ras.allocate interface. At the moment, the only attribute I modified the various RAS components to recognize is the USE_PARENT_ALLOCATION one (as defined in rmgr_types.h).
So the RAS components now know how to reuse an allocation. I have debugged this under rsh, but it now needs to be tested on a wider set of platforms.
This commit was SVN r12138.
* Update comments in some MPI_FILE_* functions to reflect that the
MPI specs have different page numbers in the ps and pdf (woof!).
* Update comments to say "Retain" where we meant retain (not "return)
* Add a check in MPI_ERRHANDLER_FREE to raise an MPI exception if the
user attempts to free an intrinsic errhandler *and* the refcount is
1 (meaning that it would actually free the intrinsic). This
protects erroneous programs from segv'ing.
* Remove lengthy comment from comm_get_errhandler.c which is no
longer valid (because of the MPI-2 errata that says that users *do*
have to call MPI_ERRHANDLER_FREE).
This commit was SVN r12128.
The following SVN revision numbers were found above:
r12122 --> open-mpi/ompi@407b3cb788
The following Trac tickets were found above:
Ticket 502 --> https://svn.open-mpi.org/trac/ompi/ticket/502
MPI::SEEK_* because iostreams (well, ios_base, but I don't think that
should be included directly) can use SEEK_* as values in an enum, which
means that 'const int' is bad for them.
* Remove now useless comments in the cxx example programs
* include iostream after mpi.h so that our examples work with other MPI
implementations that don't try to be as friendly with the constants.
Refs trac:387
This commit was SVN r12125.
The following Trac tickets were found above:
Ticket 387 --> https://svn.open-mpi.org/trac/ompi/ticket/387
* Fix MPI-2 page number in comments for a specific reference in the
spec
* Allow getting/setting the errhandler on MPI_FILE_NULL
* Allow freeing of intrinsic errhandlers, per MPI-2 errata (if you GET
an errhandler on a communicator, you must be able to FREE it, even
if it's an intrinsic).
Thanks to Lisandro Dalcin for reporting these problems.
This commit was SVN r12122.
some issues with the C #defines SEEK_{SET, END, POS}. The workaround
involves some hackery that should work in almost every common use case
for the C stdio constants (and all the legal issues of the MPI constants).
The one issue is that the C stdio constants are now const ints instead
of #defines, which means that #ifdef checks will fail for the constants.
Behavior can be disabled at either configure time or build time.
Refs trac:387
This commit was SVN r12121.
The following Trac tickets were found above:
Ticket 387 --> https://svn.open-mpi.org/trac/ompi/ticket/387
where a window was in both the passive and active side of a lock sequence.
Refs trac:488
This commit was SVN r12112.
The following Trac tickets were found above:
Ticket 488 --> https://svn.open-mpi.org/trac/ompi/ticket/488
Just follow inc_num and you will understand. Now _resize will grow the list to match
the required number of elements as described in the comment in the .h file.
This commit was SVN r12074.
constrained:
* Make sure we always have a number of eager fragments available
that scales with the number of processes communicating with
a given proc over shared memory
* Use FREE_LIST_GET instead of FREE_LIST_WAIT to return an
error to the PML when resource exhaustion occurs
* Don't dereference the frag during alloc unless we're sure
it's not NULL
Reviewed by: Galen
Refs trac:413
This commit was SVN r12053.
The following Trac tickets were found above:
Ticket 413 --> https://svn.open-mpi.org/trac/ompi/ticket/413
then use broadcast in order to wake them up. If there is only one then use signal
(which is supposed to be faster) and of course if there are no threads
waiting then just continue.
This commit was SVN r12049.
Doing pointer math properly (e.g., incrementing by the right amount)
helps you not overflow buffers, cause random chaos, and contribute to
the heat death of the universe. Sigh.
This commit was SVN r12015.
The following Trac tickets were found above:
Ticket 236 --> https://svn.open-mpi.org/trac/ompi/ticket/236
recvbuf in MPI_GATHER).
* Minor style updates (constants on the left of == and !=)
* Fix a minor buglet that crept in r11904: had a recvbuf where it
should have been recvcount. Thankfully, this would have only
affected erroneous programs. ;-)
This commit was SVN r11980.
The following SVN revision numbers were found above:
r11904 --> open-mpi/ompi@17539dc154
The following Trac tickets were found above:
Ticket 338 --> https://svn.open-mpi.org/trac/ompi/ticket/338
compute the hetero flag a little bit different. The hetero flag is now
attached to a convertor if and only if we can use the optimized conversion
functions. It's a little bit broader than before (the 2 architectures
has to be identical).
This commit was SVN r11962.
First, move the OPAL_THREAD_LOCK out to the same level as its corresponding UNLOCK. It was possible to hit the UNLOCK without ever acquiring the lock.
Since the OPAL_THREAD_ADD64() is now protected by this lock, we can just do the decrement non-atomically.
This commit was SVN r11958.
Don't try to acquire ompi_request_lock here, which in all cases is already held. Avoids deadlock that occurs even when threads are enabled and we're running a THREAD_SINGLE app.
Reviewed by Galen.
This commit was SVN r11957.
The following Trac tickets were found above:
Ticket 183 --> https://svn.open-mpi.org/trac/ompi/ticket/183
conversion function are more complex and costly than a simple memcpy. Therefore,
we want to decrease as much as possible the usage of these functions.
We now check not only th HOMOGENEOUS flag on the datatype or convertor, but the
bits indicating a type is in use. If a communication transfert a type having the
same representation on both peers we can use the optimized version of the conversion.
In same time we build a more accurate conversion table for each master convertor,
based on the minimum differences between the 2 architectures.
This commit was SVN r11945.
remove requirements on .la files on wrapper scripts
Ticket: #374
extend compilers to support 32 bit and 64 bit in one version of the wrapper
Submitted by: Dan Lacher
Reviewed by: Rolf Vandevaart
This commit was SVN r11908.
with the use of MPI_IN_PLACE, and make some optimization checks more
correct. Thanks to Lisandro Dalcin for reporting the problems.
This commit was SVN r11904.
The following Trac tickets were found above:
Ticket 430 --> https://svn.open-mpi.org/trac/ompi/ticket/430
something went wrong. A positiv number > 0 is however a correct value (in
contrary to orte_rml.recv_buffer, which really returns ORTE_SUCCESS or an
error code).
Note: this part of the code is correct on 1.1 and 1.2 branch, no need to move
this change patch to the release branches.
This commit was SVN r11897.
install-exec-hook is not only wrong, it can cause ordering issues such
as trying to put sym links to man pages in directories that do not yet
exist.
This commit was SVN r11893.
I have added a new MCA param (hey, you can't have too many!) called OMPI_MCA_orte_timing. If set to anything other than zero, the system will report out critical timing loops. At the moment, this includes three measurements:
1. Time spent going through the RDS->RAS->RMAPS, setting up triggers, etc. prior to calling the actual PLS launch function. This is reported out as time to setup job.
2. Time spent in MPI_Init from start of that function (well, right after opal_init) to the place where we send all of our info the registry. Reported out as time from start to exec_compound_cmd
3. Time actually spent executing the compound cmd. Reported out as time to exec_compound_cmd.
A few additional timing points will be added shortly.
These may eventually be removed or (better) setup with a conditional compile flag.
This commit was SVN r11892.