You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
861 lines
39 KiB
861 lines
39 KiB
<!-------- @HEADER
|
|
!
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!
|
|
! Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
|
|
! Copyright 2012 Sandia Corporation
|
|
!
|
|
! Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
|
! the U.S. Government retains certain rights in this software.
|
|
!
|
|
! Redistribution and use in source and binary forms, with or without
|
|
! modification, are permitted provided that the following conditions are
|
|
! met:
|
|
!
|
|
! 1. Redistributions of source code must retain the above copyright
|
|
! notice, this list of conditions and the following disclaimer.
|
|
!
|
|
! 2. Redistributions in binary form must reproduce the above copyright
|
|
! notice, this list of conditions and the following disclaimer in the
|
|
! documentation and/or other materials provided with the distribution.
|
|
!
|
|
! 3. Neither the name of the Corporation nor the names of the
|
|
! contributors may be used to endorse or promote products derived from
|
|
! this software without specific prior written permission.
|
|
!
|
|
! THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
|
|
! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
|
|
! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
!
|
|
! Questions? Contact Karen Devine kddevin@sandia.gov
|
|
! Erik Boman egboman@sandia.gov
|
|
!
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!
|
|
! @HEADER
|
|
------->
|
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
|
<meta name="sandia.approved" content="SAND99-1376">
|
|
<meta name="author" content="karen devine, kddevin@sandia.gov">
|
|
<title> Zoltan Developer's Guide: Load Balancing Data Structures</title>
|
|
|
|
</head>
|
|
<body bgcolor="#FFFFFF">
|
|
|
|
<div align=right><b><i><a href="dev.html">Zoltan Developer's Guide</a>
|
|
| <a href="dev_services.html">Next</a> | <a href="dev_lb_types.html">Previous</a></i></b></div>
|
|
|
|
<h2>
|
|
<a NAME="interface_structs"></a>Data Structures</h2>
|
|
The <b>Zoltan_Struct</b> data structure is the main data structure for interfacing
|
|
between Zoltan and the application. The application
|
|
creates an <b>Zoltan_Struct</b> data structure through a call to <b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.
|
|
Fields of the data structure are then set through calls from the application
|
|
to interface routines such as <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
and <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>.
|
|
The fields of the <b>Zoltan_Struct</b> data structure are listed and described
|
|
in the <a href="#Zoltan_Struct">table</a> below. See the <a href="../ug_html/ug.html">Zoltan
|
|
User's Guide</a> for descriptions of the function types used in the <b>Zoltan_Struct</b>.
|
|
<p>A <b>Zoltan_Struct</b> data structure <i>zz</i> is passed from the application
|
|
to Zoltan in the call to <b><a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</a></b>.
|
|
This data structure is passed to the individual load-balancing routines.
|
|
The <i>zz->LB.Data_Structure</i> pointer field should point to the main data
|
|
structures of the particular load-balancing algorithm so that the data
|
|
structures may be preserved for future calls to <b><a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</a></b>
|
|
and so that separate instances of the same load-balancing algorithm (with
|
|
different <b>Zoltan_Struct</b> structures) can be used by the application.
|
|
<br>
|
|
<center><table BORDER WIDTH="90%" NOSAVE >
|
|
<tr>
|
|
<th><a NAME="Zoltan_Struct"></a>Fields of Zoltan_Struct</th>
|
|
|
|
<th>Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>MPI_Comm <i>Communicator</i></td>
|
|
|
|
<td>The MPI communicator to be used by the Zoltan structure; set
|
|
by
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Proc</i></td>
|
|
|
|
<td>The rank of the processor within <i>Communicator</i>; set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Num_Proc</i></td>
|
|
|
|
<td>The number of processors in <i>Communicator</i>; set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Create">Zoltan_Create</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Num_GID</i></td>
|
|
|
|
<td>The number of array entries used to represent a
|
|
<a href="dev_lb_types.html">global ID</a>.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_param.html#NUM_GID_ENTRIES">NUM_GID_ENTRIES</a>.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Num_LID</i></td>
|
|
|
|
<td>The number of array entries used to represent a
|
|
<a href="dev_lb_types.html">local ID</a>.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_param.html#NUM_LID_ENTRIES">NUM_LID_ENTRIES</a>.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i><a href="../ug_html/ug_param.html#Debug Levels in Zoltan">Debug_Level</a></i></td>
|
|
|
|
<td>A flag indicating the amount of debugging information that should be
|
|
printed by Zoltan.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Fortran</i></td>
|
|
|
|
<td>A flag indicating whether or not the structure was created by a call
|
|
from Fortran.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>PARAM_LIST *<i> Params</i></td>
|
|
|
|
<td>A linked list of string pairs. The first item in each pair is the name
|
|
of a modifiable parameter. The second string is the new value the parameter
|
|
should adopt. These string pairs are read upon invocation of a Zoltan
|
|
algorithm and the appropriate parameter changes are made. This design allows
|
|
for different Zoltan structures to have different parameter settings.</td>
|
|
</tr>
|
|
|
|
<tr VALIGN=TOP NOSAVE>
|
|
<td NOSAVE>int <i>Deterministic</i></td>
|
|
|
|
<td>Flag indicating whether algorithms used should be forced to be deterministic;
|
|
used to obtain completely reproducible results. Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_param.html#DETERMINISTIC">DETERMINISTIC</a>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Obj_Weight_Dim</i></td>
|
|
|
|
<td>Number of weights per object.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_param.html#OBJ_WEIGHT_DIM">OBJ_WEIGHT_DIM</a>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Edge_Weight_Dim</i></td>
|
|
|
|
<td>For graph algorithms, number of weights per edge.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_param.html#EDGE_WEIGHT_DIM">EDGE_WEIGHT_DIM</a>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Timer</i></td>
|
|
|
|
<td> Timer type that is currently active.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_param.html#TIMER">TIMER</a>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_EDGES">ZOLTAN_NUM_EDGES_FN</a>
|
|
*<i> Get_Num_Edges</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the number
|
|
of edges associated with a given object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Edges_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Num_Edges_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Num_Edges</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Edges_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_EDGE_LIST_FN">ZOLTAN_EDGE_LIST_FN</a>
|
|
*<i> Get_Edge_List</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns a given
|
|
object's neighbors along its edges. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Edge_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Edge_List_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Edge_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Edge_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_GEOM_FN">ZOLTAN_NUM_GEOM_FN</a>
|
|
*<i> Get_Num_Geom</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the number
|
|
of geometry values needed to describe the positions of objects. Set in
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Geom_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Num_Geom_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Num_Geom</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Geom_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_GEOM_FN">ZOLTAN_GEOM_FN</a>
|
|
*<i> Get_Geom</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns a given
|
|
object's geometry information (e.g., coordinates). Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Geom_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Geom_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Geom</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Geom_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_OBJ_FN">ZOLTAN_NUM_OBJ_FN</a>
|
|
*<i> Get_Num_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the number
|
|
of objects assigned to the processor before load balancing. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Num_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Num_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_OBJ_LIST_FN">ZOLTAN_OBJ_LIST_FN</a>
|
|
*<i> Get_Obj_List</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns arrays
|
|
of objects assigned to the processor before load balancing. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Obj_List_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Obj_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_OBJ_FN">ZOLTAN_FIRST_OBJ_FN</a>
|
|
*<i> Get_First_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the first
|
|
object assigned to the processor before load balancing. Used with <i>Get_Next_Obj</i>
|
|
as an iterator over all objects. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_First_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_First_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_OBJ_FN">ZOLTAN_NEXT_OBJ_FN</a>
|
|
*<i> Get_Next_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that, given an object
|
|
assigned to the processor, returns the next object assigned to the processor
|
|
before load balancing. Used with <i>Get_First_Obj</i> as an iterator over
|
|
all objects. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Next_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Next_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_BORDER_OBJ_FN">ZOLTAN_NUM_BORDER_OBJ_FN</a>
|
|
*<i> Get_Num_Border_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the number
|
|
of objects sharing a subdomain border with a given processor. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Border_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Num_Border_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Num_Border_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Border_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_BORDER_OBJ_LIST_FN">ZOLTAN_BORDER_OBJ_LIST_FN</a>
|
|
*<i> Get_Border_Obj_List</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns arrays
|
|
of objects that share a subdomain border with a given processor. Set in
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Border_Obj_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Border_Obj_List_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Border_Obj_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Border_Obj_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_BORDER_OBJ_FN">ZOLTAN_FIRST_BORDER_OBJ_FN</a>
|
|
*<i> Get_First_Border_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the first
|
|
object sharing a subdomain border with a given processor. Used with <i>Get_Next_Border_Obj</i>
|
|
as an iterator over objects along borders. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Border_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_First_Border_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_First_Border_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Border_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_BORDER_OBJ_FN">ZOLTAN_NEXT_BORDER_OBJ_FN</a>
|
|
*<i> Get_Next_Border_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that, given an object,
|
|
returns the next object sharing a subdomain border with a given processor.
|
|
Used with <i>Get_First_Border_Obj</i> as an iterator over objects along
|
|
borders. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Border_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Next_Border_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Next_Border_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Border_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_COARSE_OBJ_FN">ZOLTAN_NUM_COARSE_OBJ_FN</a>
|
|
*<i> Get_Num_Coarse_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the number
|
|
of objects in the initial coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Coarse_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Num_Coarse_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Num_Coarse_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Coarse_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_COARSE_OBJ_LIST_FN">ZOLTAN_COARSE_OBJ_LIST_FN</a>
|
|
*<i> Get_Coarse_Obj_List</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns arrays
|
|
of objects in the initial coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Coarse_Obj_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Coarse_Obj_List_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Coarse_Obj_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Coarse_Obj_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_COARSE_OBJ_FN">ZOLTAN_FIRST_COARSE_OBJ_FN</a>
|
|
*<i> Get_First_Coarse_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the first
|
|
object of the initial coarse grid. Used with <i>Get_Next_Coarse_Obj</i>
|
|
as an iterator over all objects in the coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Coarse_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_First_Coarse_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_First_Coarse_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_First_Coarse_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_COARSE_OBJ_FN">ZOLTAN_NEXT_COARSE_OBJ_FN</a>
|
|
*<i> Get_Next_Coarse_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that, given an object
|
|
in the initial coarse grid, returns the next object in the coarse grid.
|
|
Used with <i>Get_First_Coarse_Obj</i> as an iterator over all objects in
|
|
the coarse grid. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Coarse_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Next_Coarse_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Next_Coarse_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Next_Coarse_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_CHILD_FN">ZOLTAN_NUM_CHILD_FN</a>
|
|
*<i> Get_Num_Child</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the number
|
|
of refinement children of an object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Child_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Num_Child_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Num_Child</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Num_Child_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_CHILD_LIST_FN">ZOLTAN_CHILD_LIST_FN</a>
|
|
*<i> Get_Child_List</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns arrays
|
|
of objects that are refinement children of a given object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Child_List_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Child_List</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_List_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_lb.html#ZOLTAN_CHILD_WEIGHT_FN">ZOLTAN_CHILD_WEIGHT_FN</a>
|
|
*<i> Get_Child_Weight</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the weight
|
|
of an object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_Weight_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Child_Weight_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Child_Weight</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Child_Weight_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_OBJ_SIZE_FN">ZOLTAN_OBJ_SIZE_FN</a>
|
|
*<i> Get_Obj_Size</i></td>
|
|
|
|
<td>A pointer to an application-registered function that returns the size
|
|
(in bytes) of data objects to be migrated. Called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>.
|
|
Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_Size_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Get_Obj_Size_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Get_Obj_Size</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Obj_Size_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_PACK_OBJ_FN">ZOLTAN_PACK_OBJ_FN</a>
|
|
*<i> Pack_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that packs all data
|
|
for a given object into a communication buffer provided by the migration
|
|
tools in preparation for data-migration communication. Called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
|
|
for each object to be exported. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pack_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Pack_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Pack_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pack_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_UNPACK_OBJ_FN">ZOLTAN_UNPACK_OBJ_FN</a>
|
|
*<i> Unpack_Obj</i></td>
|
|
|
|
<td>A pointer to an application-registered function that unpacks all data
|
|
for a given object from a communication buffer after the communication
|
|
for data migration is completed. Called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
|
|
for each imported object. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Unpack_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Unpack_Obj_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Unpack_Obj</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Unpack_Obj_Fn</a></b>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td VALIGN=TOP>ZOLTAN_LB <i>LB</i></td>
|
|
|
|
<td>A structure with data used by the load-balancing tools. See the <a href="#LB_Fields">table</a>
|
|
below.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>ZOLTAN_MIGRATE <i>Migrate</i></td>
|
|
|
|
<td>A structure with data used by the migration tools. See the <a href="#Migrate_Fields">table</a>
|
|
below.</td>
|
|
</tr>
|
|
|
|
<caption ALIGN=BOTTOM><i>Fields of the </i><b>Zoltan_Struct</b><i> data structure.</i></caption>
|
|
</table></center>
|
|
|
|
<p>Each <b>Zoltan_Struct</b> data structure has a <b>ZOLTAN_LB</b> sub-structure.
|
|
The <b>ZOLTAN_LB</b> structure contains data used by the load-balancing tools,
|
|
including pointers to specific load-balancing methods and load-balancing data
|
|
structures.
|
|
The fields of the <b>ZOLTAN_LB</b> structure are listed and described
|
|
in in the following <a href="#LB_Fields">table</a>.
|
|
<br>
|
|
<center><table BORDER WIDTH="90%" NOSAVE >
|
|
<tr>
|
|
<th><a NAME="LB_Fields"></a>Fields of ZOLTAN_LB</th>
|
|
|
|
<th>Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void *<i> Data_Structure</i></td>
|
|
|
|
<td>The <a href="dev_add_struct.html">data structure</a> used by the selected load-balancing algorithm; this
|
|
pointer is cast by the algorithm to the appropriate data type.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>double <i>Imbalance_Tol</i></td>
|
|
|
|
<td>The degree of load balance which is considered acceptable.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_alg.html#IMBALANCE_TOL">IMBALANCE_TOL</a>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Num_Global_Parts</i></td>
|
|
<td>
|
|
The total number of parts to be generated.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_alg.html#NUM_GLOBAL_PARTS">NUM_GLOBAL_PARTS</a> or through
|
|
summation of
|
|
<a href="../ug_html/ug_alg.html#NUM_LOCAL_PARTS">NUM_LOCAL_PARTS</a>
|
|
parameters.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Num_Local_Parts</i></td>
|
|
<td>
|
|
The number of parts to be generated on this processor.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_alg.html#NUM_LOCAL_PARTS">NUM_LOCAL_PARTS</a> or (roughly) through
|
|
division of the
|
|
<a href="../ug_html/ug_alg.html#NUM_GLOBAL_PARTS">NUM_GLOBAL_PARTS</a>
|
|
parameter by the number of processors.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Return_Lists</i></td>
|
|
|
|
<td>A flag indicating whether the application wants import and/or export
|
|
lists returned by <a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition"><b>Zoltan_LB_Partition</b></a>.
|
|
Set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>ZOLTAN_LB_METHOD <i>Method</i></td>
|
|
|
|
<td>An enumerated type designating which load-balancing algorithm should
|
|
be used with this Zoltan structure;
|
|
set via a call to
|
|
<b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_alg.html#LB_METHOD">LB_METHOD</a>.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>LB_FN *<i> LB_Fn</i></td>
|
|
|
|
<td>A pointer to the load-balancing function specified by <i>Method</i>.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>ZOLTAN_LB_FREE_DATA_FN <i>*Free_Structure</i></td>
|
|
<td> Pointer to a function that frees the Data_Structure memory.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>ZOLTAN_LB_POINT_ASSIGN_FN <i>*Point_Assign</i></td>
|
|
<td> Pointer to the function that performs
|
|
<a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Point_Assign">Zoltan_LB_Point_Assign</a> for the particular load-balancing method.
|
|
</td>
|
|
</tr>
|
|
|
|
<td VALIGN=TOP>ZOLTAN_LB_BOX_ASSIGN_FN <i>*Box_Assign</i></td>
|
|
<td> Pointer to the function that performs
|
|
<a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Box_Assign">Zoltan_LB_Box_Assign</a> for the particular load-balancing method.
|
|
</td>
|
|
</tr>
|
|
|
|
<caption ALIGN=BOTTOM><i>Fields of the </i><b>ZOLTAN_LB</b><i> data structure.</i></caption>
|
|
</table></center>
|
|
|
|
|
|
<p>Each <b>Zoltan_Struct</b> data structure has a <b>ZOLTAN_MIGRATE</b> sub-structure.
|
|
The <b>ZOLTAN_MIGRATE</b> structure contains data used by the migration tools,
|
|
including pointers to pre- and post-processing routines. These pointers
|
|
are set through the interface routine <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
and are used in <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>.
|
|
The fields of the <b>ZOLTAN_MIGRATE</b> structure are listed and described
|
|
in in the following <a href="#Migrate_Fields">table</a>.
|
|
<br>
|
|
<center><table BORDER WIDTH="90%" NOSAVE >
|
|
<tr>
|
|
<th><a NAME="Migrate_Fields"></a>Fields of ZOLTAN_MIGRATE</th>
|
|
|
|
<th>Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>int <i>Auto_Migrate</i></td>
|
|
|
|
<td>A flag indicating whether Zoltan should perform
|
|
auto-migration for the application. If true, Zoltan
|
|
calls <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
|
|
to move objects to their new processors; if false, data migration is left
|
|
to the user. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a></b>
|
|
for <a href="../ug_html/ug_alg.html#AUTO_MIGRATE">AUTO_MIGRATE</a>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_PRE_MIGRATE_PP_FN">ZOLTAN_PRE_MIGRATE_PP_FN</a>
|
|
*<i> Pre_Migrate_PP</i></td>
|
|
|
|
<td>A pointer to an application-registered function that performs pre-processing
|
|
for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
|
|
before data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_PP_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Pre_Migrate_PP_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Pre_Migrate_PP</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_PP_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_MID_MIGRATE_PP_FN">ZOLTAN_MID_MIGRATE_PP_FN</a>
|
|
*<i> Mid_Migrate_PP</i></td>
|
|
|
|
<td>A pointer to an application-registered function that performs processing
|
|
between the packing and unpacking operations in <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>.
|
|
Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_PP_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Mid_Migrate_PP_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Mid_Migrate_PP</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_PP_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr NOSAVE>
|
|
<td VALIGN=TOP NOSAVE><a href="../ug_html/ug_query_mig.html#ZOLTAN_POST_MIGRATE_PP_FN">ZOLTAN_POST_MIGRATE_PP_FN</a>
|
|
*<i>Post_Migrate_PP</i></td>
|
|
|
|
<td>A pointer to an application-registered function that performs post-processing
|
|
for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Migrate">Zoltan_Migrate</a></b>
|
|
after data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_PP_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr NOSAVE>
|
|
<td VALIGN=TOP NOSAVE>void *<i>Post_Migrate_PP_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Post_Migrate_PP</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_PP_Fn</a></b>. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_PRE_MIGRATE_FN">ZOLTAN_PRE_MIGRATE_FN</a>
|
|
*<i> Pre_Migrate</i></td>
|
|
|
|
<td>A pointer to an application-registered function that performs pre-processing
|
|
for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Help_Migrate">Zoltan_Help_Migrate</a></b>
|
|
before data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_Fn</a></b>.
|
|
Maintained for backward compatibility with Zoltan v1.3 interface.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Pre_Migrate_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Pre_Migrate</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Pre_Migrate_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP><a href="../ug_html/ug_query_mig.html#ZOLTAN_MID_MIGRATE_FN">ZOLTAN_MID_MIGRATE_FN</a>
|
|
*<i> Mid_Migrate</i></td>
|
|
|
|
<td>A pointer to an application-registered function that performs processing
|
|
between the packing and unpacking operations in <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Help_Migrate">Zoltan_Help_Migrate</a></b>.
|
|
Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_Fn</a></b>.
|
|
Maintained for backward compatibility with Zoltan v1.3 interface.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td VALIGN=TOP>void <i>*Mid_Migrate_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Mid_Migrate</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Mid_Migrate_Fn</a></b>.</td>
|
|
</tr>
|
|
|
|
<tr NOSAVE>
|
|
<td VALIGN=TOP NOSAVE><a href="../ug_html/ug_query_mig.html#ZOLTAN_POST_MIGRATE_FN">ZOLTAN_POST_MIGRATE_FN</a>
|
|
*<i>Post_Migrate</i></td>
|
|
|
|
<td>A pointer to an application-registered function that performs post-processing
|
|
for data migration. The function is called by <b><a href="../ug_html/ug_interface_mig.html#Zoltan_Help_Migrate">Zoltan_Help_Migrate</a></b>
|
|
after data migration is performed. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_Fn</a></b>.
|
|
Maintained for backward compatibility with Zoltan v1.3 interface.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr NOSAVE>
|
|
<td VALIGN=TOP NOSAVE>void *<i>Post_Migrate_Data</i></td>
|
|
|
|
<td>A pointer to data provided by the user that will be passed to the function
|
|
pointed to by <i>Post_Migrate</i>. Set in <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Fn">Zoltan_Set_Fn</a></b>
|
|
or <b><a href="../ug_html/ug_interface_init.html#Zoltan_Set_Specific_Fn">Zoltan_Set_Post_Migrate_Fn</a></b>. </td>
|
|
</tr>
|
|
|
|
|
|
<caption ALIGN=BOTTOM><i>Fields of the </i><b>ZOLTAN_MIGRATE</b><i> data structure.</i></caption>
|
|
</table></center>
|
|
|
|
<p>For each pointer to an application registered function in the
|
|
<b>Zoltan_Struct</b>
|
|
and <b>ZOLTAN_MIGRATE</b> data structures there is also a pointer to a Fortran
|
|
application registered function, of the form ZOLTAN_FUNCNAME_FORT_FN *<i>Get_Funcname_Fort</i>.
|
|
These are for use within the Fortran interface. The Zoltan routines
|
|
should invoke the usual application registered function regardless of whether
|
|
the Zoltan structure was created from C or Fortran.
|
|
|
|
|
|
|
|
<hr WIDTH="100%">
|
|
<br>[<a href="dev.html">Table of Contents</a> | <a href="dev_services.html">Next:
|
|
Services</a> | <a href="dev_lb_types.html">Previous:
|
|
ID Data Types</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
|
</body>
|
|
</html>
|
|
|