Changes between Version 8 and Version 9 of Public/User_Guide/TAMPI_NAM
- Timestamp:
- Mar 3, 2021, 7:44:51 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Public/User_Guide/TAMPI_NAM
v8 v9 41 41 // Computation and communication tasks declaring 42 42 // dependencies on the blocks they process 43 gaussSeidelSolver(.. .);43 gaussSeidelSolver(..all blocks in current rank..); 44 44 45 45 if (t % namSnapshotFreq == 0) { … … 54 54 {{{#!c 55 55 void namSaveMatrix(int namSnapshotId, MPI_Win namWindow, ...) { 56 // Compute destination offset inNAM region57 int snapshotOffset = namSnapshotId*sizeof(..all blocks ..);56 // Compute snapshot offset inside NAM region 57 int snapshotOffset = namSnapshotId*sizeof(..all blocks in current rank..); 58 58 59 59 // Open RMA access epoch to write the NAM window for this timestep 60 #pragma oss task in(..all blocks ..) inout(namWindow)60 #pragma oss task in(..all blocks in current rank..) inout(namWindow) 61 61 { 62 62 MPI_Request request; … … 66 66 67 67 // Write all blocks from the current rank to NAM subregions concurrently 68 for (B : all blocks ) {68 for (B : all blocks in current rank) { 69 69 #pragma oss task in(..block B..) in(namWindow) 70 70 { 71 MPI_Put(/* origin */..block B..,72 /* target rank */currentRank,73 /* target offset */ snapshotOffset + B,74 /* target window */ namWindow);71 MPI_Put(/* source data */ ..block B.., 72 /* target rank */ currentRank, 73 /* target offset */ snapshotOffset + B, 74 /* target window */ namWindow); 75 75 } 76 76 } 77 77 78 78 // Close RMA access epoch to write the NAM window for this timestep 79 #pragma oss task in(..all blocks ..) inout(namWindow)79 #pragma oss task in(..all blocks in current rank..) inout(namWindow) 80 80 { 81 81 MPI_Request request;