3.1.13. MPI action items¶
Action items to ensure correct handling of AMR task under MPI:
- Ensure that new AMR tasks added are created with a valid nbor list = one that may be used to fill its guard zones in the first update. [x]
- Ensure that new AMR tasks are immediately added to the ready queue, since there is no other mechanism to put them there, and since they are indeed ready to be updated. [x]
- Ensure proper handling of
bits%init_nbors
, which should trigger a call toinit_nbors()
fromtask_list_t%update()
, after its call totask%update()
, and before its call toload_balance
for active tasks, and a similar call toinit_nbors()
from thetask_mesh_t%unpack()
procedure for virtual tasks. [x] - Ensure that the nbors of a new task, as well as of task to be removed, get
their
bits%init_nbors
set, and that that bit travels with boundary tasks as is acted upon by thetask_mesg_t%unpack()
procedure when it unpacks virtual tasks. [x] - Ensure that any
add_nbor_xxx()
call is accompanied by acheck_ready()
call of that task link. This is done by adding acheck_nbors()
to the end of theinit_nbors()
call that possible added a new task. [x] - Ensure that no locking of other task links occur. The choice is made by
not setting
omp_lock%links
in task%refine, and to make this choice permanent, all section of the code withif (omp_lock%links) ...
should be removed. [x] - In addition one should search explicitly for
%lock%set
in the code. [ ]