Zoltan User's Guide  |  Next  |  Previous

Backward Compatibility with Previous Versions of Zoltan

As new features have been added to Zoltan, backward compatibility with previous versions of Zoltan has been maintained. Thus, users of previous versions of Zoltan can upgrade to a new version without changing their application source code. Modifications to application source code are needed only if the applications use new Zoltan functionality.

Enhancements to the Zoltan interface are described below.

Versions 3.8 and higher
Versions 3.6 and higher
Versions 3.2 and higher
Versions 3.1 and higher
Versions 3.0 and higher
Versions 1.5 and higher
Versions 1.3 and higher


Backward Compatibility: Versions 3.8 and higher


Backward Compatibility: Versions 3.6 and higher


Backward Compatibility: Versions 3.2 and higher

Interfaces to Zoltan_Color, Zoltan_Order and Zoltan_LB_Eval have changed.

The Zoltan native build environment, while still distributed, will no longer be supported. Users should use the autotools or CMake systems. Builds of the Zoltan F90 interface are supported in both autotools and CMake.


Backward Compatibility: Versions 3.1 and higher

Terminology referring to partitions and parts was clarified. A "partition" describes the entire layout of the data across processes. A "part" is a subset of the data assigned to a single process. A partition is made up of many parts; the set of all the parts is a partition.

We applied this naming convention more consistently throughout Zoltan. Old parameters NUM_GLOBAL_PARTITIONS and NUM_LOCAL_PARTITIONS have been more accurately renamed NUM_GLOBAL_PARTS and NUM_LOCAL_PARTS. Old query functions ZOLTAN_PARTITIONS_MULTI_FN and ZOLTAN_PARTITION_FN have been more accurately renamed ZOLTAN_PART_MULTI_FN and ZOLTAN_PART_FN. However, in both cases, the old naming convention still works in the Zoltan library.


Backward Compatibility: Versions 3.0 and higher

A new naming convention was implemented to better categorize partitioning methods. For more details, see parameters
LB_METHOD,
LB_APPROACH,
GRAPH_PACKAGE, and
HYPERGRAPH_PACKAGE.
Former valid values of LB_METHOD should continue to work. In particular, values of LB_METHOD for geometric partitioners RCB, RIB, HSFC, and REFTREE are unchanged.

The default graph partitioner has been changed from ParMETIS to Zoltan PHG. This change was made to provide graph partitioning capability without reliance on the third-party library ParMETIS.

Because Zoltan is designed primarily for dynamic load balancing, The default partitioning approach LB_APPROACH is now "repartition." This change affects only Zoltan's hypergraph partitioner PHG.


Backward Compatibility: Versions 1.5 and higher

The ability to generate more parts than processors was added to Zoltan in version 1.5. Thus, Zoltan's partitioning and migration routines were enhanced to return and use both part assignments and processor assignments. New interface and query functions were added to support this additional information. All former Zoltan parameters apply to the new functions as they did to the old; new parameters NUM_GLOBAL_PARTS and NUM_LOCAL_PARTS apply only to the new functions.

The table below lists the Zoltan function that uses both part and processor information, along with the analogous function that returns only processor information. Applications requiring only one part per processor can use either version of the functions.

Function with Part and Processor info (v1.5 and higher) Function with only Processor info (v1.3 and higher)
Zoltan_LB_Partition Zoltan_LB_Balance
Zoltan_LB_Point_PP_Assign Zoltan_LB_Point_Assign
Zoltan_LB_Box_PP_Assign Zoltan_LB_Box_Assign
Zoltan_Invert_Lists Zoltan_Compute_Destinations
Zoltan_Migrate Zoltan_Help_Migrate
ZOLTAN_PRE_MIGRATE_PP_FN ZOLTAN_PRE_MIGRATE_FN
ZOLTAN_MID_MIGRATE_PP_FN ZOLTAN_MID_MIGRATE_FN
ZOLTAN_POST_MIGRATE_PP_FN ZOLTAN_POST_MIGRATE_FN

To continue using the v1.3 partition functions, no changes to C or Fortran90 applications are needed. Zoltan interfaces from versions earlier than 1.3 are also still supported (see below), requiring no changes to application programs.

To use the new v1.5 partitioning functions:


Backward Compatibility: Versions 1.3 and higher

Versions of Zoltan before version 1.3 used a different naming convention for the Zoltan interface and query functions. All functions in Zoltan v.1.3 and above are prefixed with Zoltan_; earlier versions were prefixed with LB_.

Zoltan versions 1.3 and above maintain backward compatibility with the earlier Zoltan interface. Thus, applications that used earlier versions of Zoltan can continue using Zoltan without changing their source code.

Only two changes are needed to build the application with Zoltan v.1.3 and higher:

While it is not necessary for application developers to modify their source code to use Zoltan v.1.3 and above, those who want to update their source code should do the following in their application source files:

Backward Compatilibity Index for Interface and Query Functions

Name in Earlier Zoltan Versions Name in Zoltan Version 1.3 and higher
LB_BORDER_OBJ_LIST_FN ZOLTAN_BORDER_OBJ_LIST_FN
LB_Balance Zoltan_LB_Balance
LB_Box_Assign Zoltan_LB_Box_Assign
LB_CHILD_LIST_FN ZOLTAN_CHILD_LIST_FN
LB_CHILD_WEIGHT_FN ZOLTAN_CHILD_WEIGHT_FN
LB_COARSE_OBJ_LIST_FN ZOLTAN_COARSE_OBJ_LIST_FN
LB_Compute_Destinations Zoltan_Compute_Destinations
LB_Create Zoltan_Create
LB_Destroy Zoltan_Destroy
LB_EDGE_LIST_FN ZOLTAN_EDGE_LIST_FN
LB_Eval Zoltan_LB_Eval
LB_FIRST_BORDER_OBJ_FN ZOLTAN_FIRST_BORDER_OBJ_FN
LB_FIRST_COARSE_OBJ_FN ZOLTAN_FIRST_COARSE_OBJ_FN
LB_FIRST_OBJ_FN ZOLTAN_FIRST_OBJ_FN
LB_Free_Data Zoltan_LB_Free_Data
LB_GEOM_FN ZOLTAN_GEOM_FN
LB_Help_Migrate Zoltan_Help_Migrate
LB_Initialize Zoltan_Initialize
LB_MID_MIGRATE_FN ZOLTAN_MID_MIGRATE_FN
LB_NEXT_BORDER_OBJ_FN ZOLTAN_NEXT_BORDER_OBJ_FN
LB_NEXT_COARSE_OBJ_FN ZOLTAN_NEXT_COARSE_OBJ_FN
LB_NEXT_OBJ_FN ZOLTAN_NEXT_OBJ_FN
LB_NUM_BORDER_OBJ_FN ZOLTAN_NUM_BORDER_OBJ_FN
LB_NUM_CHILD_FN ZOLTAN_NUM_CHILD_FN
LB_NUM_COARSE_OBJ_FN ZOLTAN_NUM_COARSE_OBJ_FN
LB_NUM_EDGES_FN ZOLTAN_NUM_EDGES_FN
LB_NUM_GEOM_FN ZOLTAN_NUM_GEOM_FN
LB_NUM_OBJ_FN ZOLTAN_NUM_OBJ_FN
LB_OBJ_LIST_FN ZOLTAN_OBJ_LIST_FN
LB_OBJ_SIZE_FN ZOLTAN_OBJ_SIZE_FN
LB_PACK_OBJ_FN ZOLTAN_PACK_OBJ_FN
LB_POST_MIGRATE_FN ZOLTAN_POST_MIGRATE_FN
LB_PRE_MIGRATE_FN ZOLTAN_PRE_MIGRATE_FN
LB_Point_Assign Zoltan_LB_Point_Assign
LB_Set_Fn Zoltan_Set_Fn
LB_Set_<lb_fn_type>_Fn Zoltan_Set_<zoltan_fn_type>_Fn
LB_Set_Method Zoltan_Set_Param with parameter LB_METHOD
LB_Set_Param Zoltan_Set_Param
LB_UNPACK_OBJ_FN ZOLTAN_UNPACK_OBJ_FN

[Table of Contents  | Next:  References  |  Previous:  Release Notes  |  Privacy and Security]