Zoltan Developer's Guide  |  Next  |  Previous

Part Remapping

Part remapping can be incorporated into load-balancing algorithms. The part remapping algorithm works as follows:



int Zoltan_LB_Remap (struct Zoltan_Struct *zz, int *new_map, int num_obj, int *procs, int *old_parts, int *new_parts, int export_list_flag);

Zoltan_LB_Remap remaps computed part (or processor) numbers in an attempt to maximize the amount of data that does not have to be migrated to the new decomposition. It is incorporated directly into partitioning algorithms, and should be called after the new decomposition is computed but before return lists (import or export lists) are created. Zoltan_LB_Remap should be invoked when Zoltan parameter REMAP is one. Even when REMAP is one, remapping is not done under a number of conditions; these conditions are listed with the description of REMAP.
 
Arguments:
    zz A pointer to the Zoltan_Struct used in the partitioning algorithm.
    new_map Upon return, a flag indicating whether remapping was actually done. Remapping is not done under a number of conditions (described with parameter REMAP) or when the computed remap gives a worse or equivalent result than the decomposition computed by the partitioning algorithm.
    num_obj Input: the number of objects the processor knows about after computing the decomposition. If the partitioning algorithm computes export lists, num_obj is the number of objects stored on the processor; if it computes import lists, num_obj is the number of objects that will be stored on the processor in the new decomposition.
    procs Upon input: an array of size num_obj containing processor assignments for the objects; if export_list_flag == 1, procs contains processor assignments in the NEW decomposition (computed by the partitioner); otherwise, procs contains processor assignments in the OLD decomposition (input by the application). Upon return, procs contains remapped processor assignments for the NEW decomposition, regardless of the value of export_list_flag.
    old_parts Upon input: an array of size num_obj containing part assignments for the objects in the OLD decomposition (input by the application).
    new_parts Upon input: an array of size num_obj containing part assignments for the objects in the NEW decomposition (computed by the partitioning algorithm). Upon return: new_parts contains remapped part assignments in the NEW decomposition.
    export_list_flag Flag indicating whether the partitioning algorithm computes export lists or import lists. The procedure for building the bipartite graph depends on whether the partitioning algorithm knows export or import information.
Returned Value:
    int Error code.


[Table of Contents  |  Next:  Migration Tools  |  Previous:  Adding new parameters  |  Privacy and Security]