Hi, I am doing the following thing.
Step 1. Create DM object and get global vector 'V' using DMGetGlobalVector. Step 2. Doing some parallel operations on V. Step 3. I am using VecScatterCreateToAll on V to create a sequential vector 'V_SEQ' using VecScatterBegin/End with SCATTER_FORWARD. Step 4. I am performing an expensive operation on V_SEQ and outputting the updated V_SEQ. Step 5. I am using VecScatterBegin/End with SCATTER_REVERSE (global and sequential flipped) to get V that is updated with new values from V_SEQ. Step 6. I continue using this new V on the rest of the parallelized program. Question: Suppose I have n MPI processes, is the expensive operation in Step 4 repeated n times? If yes, is there a workaround such that the operation in Step 4 is performed only once? I would like to follow the same structure as steps 1 to 6 with step 4 only performed once. Thanks, Vysakh Venugopal --- Vysakh Venugopal Ph.D. Candidate Department of Mechanical Engineering University of Cincinnati, Cincinnati, OH 45221-0072