DISPATCH
|
Keep track of neighbor ranks and their loads, by sending and receiving short messages, storing the info in a linked list. More...
Data Types | |
type | load_balance_t |
Variables | |
type(load_balance_t), public | load_balance |
Keep track of neighbor ranks and their loads, by sending and receiving short messages, storing the info in a linked list.
When nbor lists are generated by init_all_nbors, an nbor_info_t data type is added for each neighbor rank. Part of the data type is a mesg_t data type with a buffer for receiving load balance messages from neighbor ranks. THe first receive request is issued when the data type is first allocated. The nbor_info_listrecv procedure checks the list for completed messages, unpack them, and issues new receive requests.
With respect to critical regions: The nbor_info list is essentially static, except it can change if a new boundary patch is added, which has a neighbor rank that was not on the list before. If load balancing is handled by one patch at a time, inside a critical region, then no other critical regaion shouls be needed.