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.
		
		
		
		
		
			
		
			
				
					
					
						
							133 lines
						
					
					
						
							5.4 KiB
						
					
					
				
			
		
		
	
	
							133 lines
						
					
					
						
							5.4 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
 | |
| -------> 
 | |
| 
 | |
| <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>
 | |
| 
 |