!Subfront initialization functions |
... |
! Initialize Zoltan library |
Zoltan_Initialize() |
Zoltan_handle=Zoltan_Create(Subfront_Comm) |
Zoltan_Set_Param(Zoltan_handle,"LB_METHOD", "RCB") |
|
! Initialize bubbles as per fixed-mapping strategy |
Initial_Bubble_Distribution() |
|
! Zoltan RCB bubble partitioning, it returns |
! Number of bubbles to import/export and their IDs, |
! process IDs for import/export, boolean flag showing |
! whether partition was updated |
Zoltan_LB_Partition(...) |
|
! Initial bubble redistribution and load balancing |
do for each bubble to be exported |
Deallocate bubble memory and data structures |
end do |
|
do for each bubble to be imported |
Allocate bubble memory and initialize data structures |
end do |
|
! Subfront main loop |
do for each timestep |
! Subfront calculations |
... |
! Dynamic load balancing and bubble redistribution |
if iteration==load balancing iteration |
Zoltan_LB_Partition(...) |
if partition updated |
do for each bubble to be exported |
Send bubble to the appropriate process |
Deallocate bubble memory and data structures |
end do |
do for each bubble to be imported |
Allocate bubble memory |
Receive bubble from appropriate process |
Initialize bubble data structures |
end do |
end if |
end if |
end do |