1
1
Граф коммитов

13 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
270cc11156 opal hotel: only delete events that have not yet fired
The eviction callback, for convenience (and to avoid code
duplication), use to call opal_hotel_checkout().  However,
opal_hotel_checkout() deletes the eviction event -- which is fine to
do when opal_hotel_checkout() is invoked by the application.  But when
it's invoked by the same event that it's deleting, it can cause Bad
Things to happen.

For simplicity, instead of invoking opal_hotel_checkout() from the
eviction callback, just duplicate the checkout logic into the eviction
callback function (and skip the delete-the-evict-event part).

For good measure, put a comment in all three places where the checkout
logic occurs (because it's inlined): don't change this logic without
changing all 3 places.

Finally, also add a line in the docs for opal_hotel_init() warning
users from calling opal_hotel_checkout() from their eviction
callback.
2016-01-13 10:59:06 -08:00
Ralph Castain
cf6137b530 Integrate PMIx 1.0 with OMPI.
Bring Slurm PMI-1 component online
Bring the s2 component online

Little cleanup - let the various PMIx modules set the process name during init, and then just raise it up to the ORTE level. Required as the different PMI environments all pass the jobid in different ways.

Bring the OMPI pubsub/pmi component online

Get comm_spawn working again

Ensure we always provide a cpuset, even if it is NULL

pmix/cray: adjust cray pmix component for pmix

Make changes so cray pmix can work within the integrated
ompi/pmix framework.

Bring singletons back online. Implement the comm_spawn operation using pmix - not tested yet

Cleanup comm_spawn - procs now starting, error in connect_accept

Complete integration
2015-08-29 16:04:10 -07:00
Ralph Castain
61fb067f14 Update the opal_hotel class to support a given event base instead of defaulting to using opal_event_base 2015-07-11 06:42:23 -07:00
Ralph Castain
1f8de276de Consolidate all the QOS changes into one clean commit 2015-05-06 19:48:42 -07:00
Ralph Castain
9514858067 As Rolf pointed out, this patch wasn't needed on the trunk - just the 1.7 branch. Sigh
This commit was SVN r30544.
2014-02-03 21:40:56 +00:00
Ralph Castain
4d533c81fb Minor cleanup required when configuring with an external libevent. Thanks to Orion Poplawski for the patch!
cmr=v1.7.4:reviewer=ompi-gk1.7

This commit was SVN r30543.
2014-02-03 21:03:05 +00:00
Jeff Squyres
bdb45a2e4f Add an oh-so-slightly faster variant of the hotel "checkin" action
(since this is used in the fast path) for when you ''know'' that there
will be a room available:

 * Don't do the last_unoccupied_room check
 * Return void

This commit was SVN r28757.
2013-07-11 20:00:37 +00:00
Ralph Castain
5d7a93c032 Add the ability to use an external version of libevent. Clearly not recommended at this time. I've verified that it works in limited scenarios, but more thorough testing and performance impacts need to be assessed.
Interesting how many includes had to be fixed here and there to fill in missing dependencies :-)

This commit was SVN r28411.
2013-04-29 17:02:37 +00:00
Jeff Squyres
3d05c5cca3 There's no point in having a separate opal_hotel_finalize() function
-- just move that functionality into the hotel destructor.

This commit was SVN r27555.
2012-11-02 14:00:54 +00:00
Jeff Squyres
e72c74a549 Fix backwards asserts in the OPAL hotel code.
This commit was SVN r27462.
2012-10-22 18:05:39 +00:00
Jeff Squyres
e497894c4d Gah!! We inlined some of the functionality, so we need these structs
to be defined.  Put comments in there indicating that they're private
and should not be used by public consumers.

This commit was SVN r27075.
2012-08-16 18:42:23 +00:00
Jeff Squyres
01256c36c6 Gah -- meant to make these changes before committing to SVN. :-\
Hide some struct declarations in the .c file to emphasize that they
are not part of the public opal_hotel interface.

This commit was SVN r27068.
2012-08-16 17:37:57 +00:00
Jeff Squyres
96f640a762 Add new "opal_hotel" class. Abstractly speaking, this class does the
following:

 * Provides a fixed number of resource slots (i.e., "hotel rooms").
 * Allows one thing to occupy a resource slot at a time (i.e., each
   hotel room can have an occupant check in to that room).
 * Resource slots can be vacated at any time (i.e., occupants can
   voluntarily check out of their hotel room).
 * Resource slots can be occupied for a specific maximum amount of
   time.  If that time expires, the occupant is forcibly evicted and
   the upper layer is notified via (libevent) callback (i.e., the maid
   will kick an occupant of out of their room when their reservation
   is over).

This class can be to be used for things like retransmission schemes
for unreliable transports.  For example, a message sent on an
unreliable transport can be checked in to a hotel room.  If an ACK for
that message is received, the message can be checked out.  But if the
ACK is never received, the message will eventually be evicted from its
room and the upper layer will be notified that the message failed to
check out in time (i.e., that an ACK for that message was not received
in time).

Code using this class is currently being developed off-trunk, but will
be coming to SVN soon.

This commit was SVN r27067.
2012-08-16 17:29:55 +00:00