1. 30 Jun, 2014 5 commits
    • Xin Zhao's avatar
      Add CVAR (# of completed reqs) to control when to stop in RMA GC function · dda458a1
      Xin Zhao authored
      
      
      Add a CVAR to let the user specify the threshold for number of
      completed requests the runtime finds before it stops trying to
      find more completed requests in garbage collection function. It
      may make the runtime to find more completed requests, but may also
      cause significant overhead due to visiting too many requests.
      
      Note that the default value is set to 1 in order to be in
      accordance with the performance of original implementation.
      
      Note that in garbage collection function, if runtime finds a chain
      of completed RMA requests, it will temporarily ignore this CVAR
      and try to find continuous completed requests as many as possible,
      until it meets an incomplete request.
      Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
      dda458a1
    • Xin Zhao's avatar
      Simplify RMA requests completion function · 7dbdc413
      Xin Zhao authored
      
      
      Originally rma_list_complete() function traverses the
      operation list to clean up completed requests, which is
      what rma_list_gc() is doing now. So we simplify
      rma_list_complete() function by deleting the code of
      traversing loop and just invoking rma_list_gc() in
      rma_list_complete().
      Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
      7dbdc413
    • Xin Zhao's avatar
      Separate progress engine code from garbage collection · da7700a0
      Xin Zhao authored
      
      
      Currently the code of poking progress engine to complete
      requests and the code of cleanning up completed requests
      are mixed up in one function rma_list_gc(), which is not
      a clear code structure. We move the code of poking progress
      engine out of rma_list_gc() and encapsule the code into
      a separate function so that rma_list_gc() only does garbage
      collection work.
      Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
      da7700a0
    • Xin Zhao's avatar
      Rename RMA request gc and complete function · 73f6a4b3
      Xin Zhao authored
      
      
      Rename RMAListPartialComplete to rma_list_gc
      and rename RMAListComplete to rma_list_complete.
      Declare both functions as inline function.
      Add error handling code for both functions.
      Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
      73f6a4b3
    • Xin Zhao's avatar
      Rename static functions in RMA code · 33b7d251
      Xin Zhao authored
      
      
      Static functions should not have name starting with prefix "MPIDI_CH3I_".
      We delete those prefix in function names as well as in state names.
      Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
      33b7d251
  2. 22 May, 2014 1 commit
    • Wesley Bland's avatar
      Make handling of request cleanup more uniform · 1e171ff6
      Wesley Bland authored
      
      
      There are quite a few places where the request cleanup is done via:
      
      MPIU_Object_set_ref(req, 0);
      MPIDI_CH3_Request_destroy(req);
      
      when it should be:
      
      MPID_Request_release(req);
      
      This makes the handling more uniform so requests are cleaned up by releasing
      references rather than hitting them with the destroy hammer.
      
      Fixes #1664
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      1e171ff6
  3. 19 Dec, 2013 1 commit
  4. 17 Dec, 2013 1 commit
  5. 15 Nov, 2013 4 commits
    • Xin Zhao's avatar
      Fix #1701 - cleanup code for zero-size data transfer. · dc9275be
      Xin Zhao authored
      
      
      Delete code for zero-size data transfer in packet handlers
      of Put/Accumulate/Accumulate_Immed/Get_AccumulateResp/GetResp/
      LockPutUnlock/LockAccumUnlock, because they are redundant.
      
      (Note that packet handlers of LockPutUnlock and LockAccumUnlock
      are for single operation optimization in passive RMA)
      
      Zero-size data transfer has already been handled when issuing
      RMA operations (L146, L258, L369 in src/mpid/ch3/src/ch3u_rma_ops.c
      and L50 in src/mpid/ch3/src/ch3u_rma_acc_ops.c). RMA operation
      routines will directly exit if data size is zero.
      Signed-off-by: default avatarWesley Bland <wbland@mcs.anl.gov>
      dc9275be
    • Antonio J. Pena's avatar
      Revert Fixed --enabled-debuginfo segfaults tt#1932 · b9531d3d
      Antonio J. Pena authored
      This reverts commit 676c29f9.
      b9531d3d
    • Antonio J. Pena's avatar
      Fixed --enabled-debuginfo segfaults tt #1932 · 676c29f9
      Antonio J. Pena authored
      
      
      Addresses #1932. Includes:
        - MPI_Bsend/MPI_Ibsend
        - Several collectives
        - Some RMA operations
        - MPI_Dist_graph_create
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      676c29f9
    • Xin Zhao's avatar
      Fix ticket-1960: delete redundant MPIU_Assert. · 0b126663
      Xin Zhao authored
      
      
      MPIU_Assert at L2311 checks if rma_ops_list is empty before exiting
      MPIDI_Win_flush. It causes /test/mpi/threads/rma/multirma to fail
      because while one thread is executing the loop of poking progress
      engine at L2293 ~ L2302, another thread may enqueue new RMA operations
      to rma_ops_list.
      
      rma_ops_list has already been checked for empty before exiting
      MPIDI_CH3I_Do_passive_target_rma (L2724) to ensure that all enqueued
      operations are issued out, therefore it does not need to be checked
      again here.
      Signed-off-by: default avatarWesley Bland <wbland@mcs.anl.gov>
      0b126663
  6. 31 Oct, 2013 1 commit
  7. 26 Oct, 2013 1 commit
  8. 26 Sep, 2013 11 commits
  9. 08 Aug, 2013 1 commit
  10. 01 Aug, 2013 1 commit
    • Xin Zhao's avatar
      When judging if origin and target process are on the same node, using... · c7bc4694
      Xin Zhao authored and Pavan Balaji's avatar Pavan Balaji committed
      
      When judging if origin and target process are on the same node, using vc->node_id flag instead of vc->ch.is_local flag.
      
      Flag 'is_local' is not correct because it is defined in nemesis, not in CH3.
      Flag 'node_id' is defined in CH3.
      
      Note that for ch3:sock, even if origin and target are on the same node, they are not within the same SHM region.
      Currently ch3:sock is filtered out by checking shm_allocated flag first. In future we need to figure out a way to
      check if origin and target are within the same "SHM comm".
      Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@mcs.anl.gov>
      c7bc4694
  11. 28 Jul, 2013 3 commits
  12. 18 Jul, 2013 2 commits
  13. 17 May, 2013 1 commit
    • Pavan Balaji's avatar
      Make parameter names consistent. · fa950cb5
      Pavan Balaji authored
      All CH3 parameters start with CH3_ now.  All nemesis parameters start
      with NEMESIS_.  For netmod specific parameters, we use
      NEMESIS_<netmod>_.
      
      Reviewed by Charles Archer @ IBM.
      fa950cb5
  14. 14 May, 2013 1 commit
  15. 07 May, 2013 1 commit
  16. 06 May, 2013 1 commit
  17. 21 Feb, 2013 4 commits
    • James Dinan's avatar
      Remove unnecessary flush for empty epochs · 402bc161
      James Dinan authored
      I initially added a conservative flush message for empty epochs (mostly
      for documentation purposes).  This is not needed in the current
      implementation, since ops are not issued eagerly.  If/when eager ops are
      implemented, this patch should be reverted and additional window state
      tracking for this case should be added.  In the meantime, I am removing
      this code to improve performance.
      
      Reviewer: goodell
      402bc161
    • James Dinan's avatar
      Finished adding memory fences for shr mem win · 7dee7463
      James Dinan authored
      This patch adds a few missing memory fences to the window
      synchronization operations for shared memory windows.  This closes
      ticket #1729.
      
      Reviewer: goodell
      7dee7463
    • James Dinan's avatar
      Cleaned up error names for CH3 RMA implementation · 64b60170
      James Dinan authored
      Moved RMA errors used in the CH3 RMA implementation into the ch3
      errnames.txt file.
      
      Reviewer: goodell
      64b60170
    • James Dinan's avatar
      Implemented lock op piggybacking for MODE_NOCHECK · 223fce45
      James Dinan authored
      When the MPI_MODE_NOCHECK assertion is given to a passive target lock
      operation, we defer acquisition of the lock and piggyback the request on
      the first RMA op to the target.  This eliminates a round-trip
      lock-request message.
      
      Reviewer: goodell
      223fce45