- 27 Jan, 2014 1 commit
-
-
Resets MPIDI_TAG_UB back to 0x7fffffff. This value was changed a while back, but the change should have happened at the MPI layer instead of the CH3 layer. This resets the value to allow CH3 to use the tag space. Instead, the value is now set in the MPI layer during initthread. This means that it will be safe regardless of the device being used. This prevents a collision that was occurring on the pamid device where the values for MPIR_TAG_ERROR_BIT and the MPIR_Process.attr.tagged_coll_mask values were the same. Fixes #2008 Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 31 Oct, 2013 1 commit
-
-
Also includes random fixes to `-Wshorten-64-to-32` warnings which might need to be teased out. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 01 Aug, 2013 1 commit
-
-
Because CH3 layer needs to know if shared memory region is allocated in lower layer. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 28 Jul, 2013 1 commit
-
-
Add "alloc_shm" to window's info arguments and initialize it to FALSE. In MPID_Win_allocate, if "alloc_shm" is set to true, call ALLOCATE_SHARED, otherwise call ALLOCATE. Free window memory only when SHM region is not allocated, therwise it is already freed in MPIDI_CH3I_SHM_Win_free. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 25 Jul, 2013 2 commits
-
-
These macros are used to manipulate the error bit that has been added to the tag space to propagate error notification on top of other communication. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
The highest bit of tag space will now be reserved for failure notification. We are far above the required 32767, so this shouldn't be a problem. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 07 May, 2013 3 commits
-
-
James Dinan authored
Myrank was caching win_ptr->comm_ptr->rank, so we now use that directly rather than caching it in the MPID_Win object. Reviewer: balaji
-
James Dinan authored
Several fields of MPID_Win were not used above the ADI. These have been moved to CH3 to reduce clutter. Downstream devices should redefine these fields in MPID_DEV_WIN_DECL if they are needed. Reviewer: balaji
-
James Dinan authored
-
- 01 Apr, 2013 1 commit
-
-
Ralf Gunter authored
Message transfers now respect the communicator-specific threshold. This change has not been carefully checked for impact on our shared-memory ping-pong latency. Reviewed-by: goodell
-
- 21 Feb, 2013 2 commits
-
-
James Dinan authored
The single_op_opt flag in the request object was previously used to track whether an operation is a lock-op-unlock type, for the purposes of completion. Tracking this state has been merged into the packet header flags, so the single_op_opt flag is no longer needed. Reviewer: goodell
-
James Dinan authored
Added a flags field to MPID_Request that we can use to stash flags from suspended RMA ops and retrieve them later when we complete the operation. Reviewer: goodell
-
- 06 Feb, 2013 1 commit
-
-
James Dinan authored
Prior to this patch, a lock entry was enqueued in the RMA ops list when Win_lock was called. This patch adds a new state tracking mechanism, which we use to record the synchronization state with respect to each RMA target. This new mechanism absorbs tracking of lock operation and the lock state at the target. It significantly simplifies the RMA synchronization and ops list processing. Reviewer: goodell
-
- 11 Jan, 2013 1 commit
-
-
James Dinan authored
Communication operations on shared memory windows now perform the op directly on the shared buffer. This requried the addition of a per-window interprocess mutex to ensure that atomics and accumulates are performed atomically. Reviewer: buntinas
-
- 17 Dec, 2012 1 commit
-
-
Darius Buntinas authored
[svn-r10770] removed channel_private field in VC and used MPIDI_CH3_VC_DECL macro which is overridden by channel. Reviewed by Dinan
-
- 27 Nov, 2012 3 commits
-
-
James Dinan authored
This removes macro copy-paste clutter that was left around from when this state moved from MPID_Win into a separate structure. Reviewer: goodell
-
James Dinan authored
Added an additional error check and better documentation of how the state is tracked and updated for Fence. Reviewer: goodell
-
James Dinan authored
This refinement to the existing PSCW state tracking more cleanly captures the PSCW state and further restricts erroneous usage. Reviewer: goodell
-
- 08 Nov, 2012 5 commits
-
-
James Dinan authored
-
James Dinan authored
-
James Dinan authored
This fixes the performance regression that was introduced by concatenation of per-target lists. Reviewer: goodell
-
James Dinan authored
Moved fence_issued and start_assert MPID_Win members into CH3. These should not be a required part of the ADI, since they are not needed above the ADI and implementations should be free to choose different mechanisms for tracking the state of synchronization operations. Reviewer: buntinas
-
James Dinan authored
This patch adds code to track the RMA epoch state of the local process. Currently, we are tracking the synchronization states that are allowed by MPICH; in the future, we may want to restrict this to only states that are allowed by the standard. The addition of epoch tracking has several benefits: * It allows us to detect synchronization errors (implemented in this patch). * It allows us to implement lock_all more efficiently (implemented in this patch). * It will allow us to distinguish between active and passive target epochs and avoid O(p) op list concatenation (future patch). Reviewer: balaji
-
- 05 Nov, 2012 5 commits
-
-
James Dinan authored
Updated RMA code to remove trailing "_e" and "_s" on enum and struct type names to match the MPICH style. Reviewer: goodell
-
James Dinan authored
Reviewer: goodell
-
James Dinan authored
Updated RMA implementation to track the passive target status individually, for each target. Includes new implementation for lock/unlock_all. Lock_all is currently unoptimized, see #1734 for future plans. Reviewer: buntinas
-
James Dinan authored
The use of a dense array is a temporary measure to support the reference implementation. This will be much improved by ticket #1735. Reviewer: goodell
-
James Dinan authored
In this patch, I have refactored the RMA ops list again to use the MPL UTList doubly-linked list and to treat the list as a proper object. This should set us up to work with multiple lists, as we will soon have one list per target. Doubly-linking the list is a big help in terms of maintainability (no more prevNext pointers) and flexibility (better implementation of request-based ops and other optimizations). Reviewer: goodell
-
- 25 Oct, 2012 1 commit
-
-
James Dinan authored
Implementation of MPI-3 window info query routines. Reviewer: balaji
-
- 23 Oct, 2012 1 commit
-
-
Pavan Balaji authored
No reviewer.
-
- 20 Oct, 2012 2 commits
-
-
James Dinan authored
This commit implements MPI-3 RMA's flush and flush_all operations. Reviewer: buntinas
-
James Dinan authored
When enabled, this mode of operation immediately requests the lock when MPI_Win_lock is called. Currently, this is enabled by setting the MPICH_RMA_LOCK_IMMED environment variable. In the future, we can also make this mode of operation available though an info/assert. This capability is needed to implement MPI-3's flush operations. Reviewer: buntinas
-
- 11 Oct, 2012 1 commit
-
-
James Dinan authored
Reviewer: goodell
-
- 10 Oct, 2012 1 commit
-
-
David Goodell authored
By setting "indent-tabs-mode:nil" we should hopefully begin to slowly squeeze out hard tabs from the source without a disruptive (to downstream projects) whitespace-fixing change. No reviewer.
-
- 08 Aug, 2012 1 commit
-
-
James Dinan authored
This adds the win_fns table to ch3, which allows the channel to override the default implementation of window creation routines provided by ch3. This also pushes the implementation of shared memory windows down into Nemesis, includes window functions for sock, and contains multiple improvements to the window creation functions code. Reviewer: buntinas
-
- 31 Jul, 2012 1 commit
-
-
Darius Buntinas authored
[svn-r10070] fixed up the collective function override mechanism and it's usage in ch3. Fixes #1634. Reviewed by goodell@
-
- 25 Jul, 2012 1 commit
-
-
James Dinan authored
Nemesis. In MPI-3, ch3 will require shared memory in order to support MPI_Win_allocate_shared().
-
- 24 Jul, 2012 1 commit
-
-
James Dinan authored
yet implemented below the ADI level.
-
- 15 Apr, 2012 1 commit
-
-
David Goodell authored
Without this change we are vulnerable to a nasty bit of compiler behavior. MPIDI_CH3_PktGeneric_t sometimes included padding between the "kind" and "pktptrs" fields. Then whole-structure assignments using the generic packet (e.g., ch3_istartmsg.c:96) of buffers that are actually MPIDI_CH3_Pkt_t unions under the hood will can fail to copy key parts of the MPIDI_CH3_Pkt_t. This specifically manifested itself for #1599 by transmitting garbage "source_win_handle" values in a LOCK_GRANTED packet, which in turn caused segfaults. Removing this second type and directly using the actual packet union eliminates this source of bugs. The minor downside is that the mpidpkt.h header becomes more tightly integrated into the rest of the device. Reviewed by buntinas@.
-
- 09 Mar, 2012 1 commit
-
-
James Dinan authored
Forum ticket #286) and updates MPI_Intercomm_create to use a collectives tag space which does not conflict with point-to-point communication (MPI Forum ticket #305). In addition, this fixes a deadlock bug in context id allocation and adds several regression tests (comm_dup_deadlock.c exercises this specific bug). Reviewer: David Goodell
-