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.
134 lines
5.4 KiB
134 lines
5.4 KiB
2 years ago
|
<!-------- @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
|
||
|
------->
|
||
|
|
||
|
<HTML>
|
||
|
<HEAD>
|
||
|
<META NAME="sandia.approved" CONTENT="SAND99-1376">
|
||
|
<META NAME="author" CONTENT="Jim Teresco, jdteres@sandia.gov">
|
||
|
<TITLE> Zoltan Developer's Guide: HIER</TITLE>
|
||
|
</HEAD>
|
||
|
<BODY BGCOLOR="#FFFFFF">
|
||
|
|
||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_rib.html">Next</a> | <a href="dev_test_script.html">Previous</a></i></b></div>
|
||
|
|
||
|
|
||
|
<H2>
|
||
|
<A NAME="HIER"></A>Appendix: Hierarchical Partitioning (HIER)</H2>
|
||
|
|
||
|
|
||
|
<H3>
|
||
|
Outline of Algorithm</H3>
|
||
|
|
||
|
<P>Zoltan's hierarchical balancing automates the creation of hierarchical
|
||
|
partitions. The implementation of Hierarchical Partitioning (HIER) in Zoltan is
|
||
|
due to Jim Teresco (Williams College), with many suggestions and ideas
|
||
|
from the entire Zoltan team.<P>
|
||
|
|
||
|
The hierarchical balancing implementation utilizes a lightweight
|
||
|
intermediate structure and a set of callback functions that permit an
|
||
|
automated and efficient hierarchical balancing which can use any of
|
||
|
the procedures available within Zoltan without modification and in any
|
||
|
combination. Hierachical balancing is invoked by an application the
|
||
|
same way as other Zoltan procedures. Since Zoltan is data-structure
|
||
|
neutral, it operates on generic "objects" and interfaces with
|
||
|
applications through callback functions.<P>
|
||
|
|
||
|
A hierarchical balancing step begins by building an intermediate
|
||
|
structure using the application-supplied callbacks. The initial
|
||
|
structure is computed using <B>Zoltan_Build_Graph</B> to build the
|
||
|
same structure that is used to support partitioning using the Parmetis
|
||
|
and Jostle libraries. The hierarchical balancing procedure then
|
||
|
provides its own callback functions to allow existing Zoltan
|
||
|
procedures to be used to query and update the intermediate structure
|
||
|
at each level of a hierarchical balancing. The structure is augmented
|
||
|
to keep track of objects and their needed information during the
|
||
|
procedure. After all levels of the hierarchical balancing have been
|
||
|
completed, Zoltan's usual migration arrays are constructed and
|
||
|
returned to the application. Thus, only lightweight objects are
|
||
|
migrated internally between levels, not the (larger and more costly)
|
||
|
application data. More details about the fields of the intermediate
|
||
|
structure and how the are used can be found in the Zoltan distribution
|
||
|
in <I>hier/README</I>.<P>
|
||
|
|
||
|
<BR>
|
||
|
|
||
|
<H3>
|
||
|
Data Structure Definitions</H3>
|
||
|
|
||
|
<P>There is one major data structure in HIER, defined in
|
||
|
<i>hier/hier.h</i>. The <I>struct HierPartParamsStruct</I> includes
|
||
|
all information needed by the hierarchical balancing procedures. The
|
||
|
fields are documented in comments in the structure definition.
|
||
|
|
||
|
<BR>
|
||
|
|
||
|
<H3>
|
||
|
Parameters</H3>
|
||
|
|
||
|
<P>The parameters used by HIER and their default values are described in the
|
||
|
<a href="../ug_html/ug_alg_hier.html">HIER section</a> of the <B><A HREF="../ug_html/ug.html">Zoltan User's
|
||
|
Guide</A></B>. These can be set by use of the <b>Zoltan_Hier_Set_Param</b> subroutine
|
||
|
in the file <i>hier/hier.c</i>.
|
||
|
|
||
|
<BR>
|
||
|
|
||
|
<H3>
|
||
|
Main Routine</H3>
|
||
|
|
||
|
<P>The main routine for HIER is <b>Zoltan_Hier</b> in the file <i>hier/hier.c</i>.
|
||
|
|
||
|
<BR>
|
||
|
<BR>
|
||
|
<BR>
|
||
|
|
||
|
<P>
|
||
|
<HR WIDTH="100%">
|
||
|
<BR>[<A HREF="dev.html">Table of
|
||
|
Contents</A> | <a href="dev_rib.html">Next:
|
||
|
Recursive Inertial Bisection (RIB)</a> | <A HREF="dev_test_script.html">
|
||
|
Previous: Using the Test Script</A> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||
|
</BODY>
|
||
|
</HTML>
|