mirror of
https://github.com/PhasicFlow/phasicFlow.git
synced 2025-06-12 16:26:23 +00:00
Zoltan is added as thirdParty package
This commit is contained in:
8
.gitignore
vendored
8
.gitignore
vendored
@ -37,11 +37,15 @@
|
|||||||
*.out
|
*.out
|
||||||
*.app
|
*.app
|
||||||
|
|
||||||
# directories
|
# Exclude specific directories wherever they appear
|
||||||
build/**
|
build/**
|
||||||
include/**
|
include/**
|
||||||
bin/**
|
bin/**
|
||||||
lib/**
|
lib/**
|
||||||
|
**/build/
|
||||||
|
**/include/
|
||||||
|
**/bin/
|
||||||
|
**/lib/
|
||||||
test*/**
|
test*/**
|
||||||
**/**notnow
|
**/**notnow
|
||||||
doc/code-documentation/
|
doc/code-documentation/
|
||||||
@ -61,3 +65,5 @@ doc/DTAGS
|
|||||||
**/[0-9]*.[0-9][0-9][0-9][0-9][0-9][0-9][0-9]
|
**/[0-9]*.[0-9][0-9][0-9][0-9][0-9][0-9][0-9]
|
||||||
**/[0-9]*.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
|
**/[0-9]*.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
|
||||||
**/VTK
|
**/VTK
|
||||||
|
|
||||||
|
|
||||||
|
11
thirdParty/README.md
vendored
Normal file
11
thirdParty/README.md
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Third-party packages used in PhasicFlow
|
||||||
|
|
||||||
|
This folder contains the third-party packages that are used by PhasicFlow. Since the source code is under the main directory of the project, they are downloaded with the source code. But this does not mean that these packages are maintained by PhasicFlow or they are a part of the project.
|
||||||
|
|
||||||
|
## [Zoltan](./Zoltan/)
|
||||||
|
This package is used for space-decomposition and load balancing for MPI execution of the code.
|
||||||
|
|
||||||
|
## Thrust
|
||||||
|
This package is a parallel library developed by NVIDIA. It is built for either CUDA or OpenMP depending of the type of build.
|
||||||
|
|
||||||
|
|
133
thirdParty/Zoltan/CMakeLists.txt
vendored
Normal file
133
thirdParty/Zoltan/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# A) Define the package
|
||||||
|
#
|
||||||
|
|
||||||
|
TRIBITS_PACKAGE(Zoltan)
|
||||||
|
|
||||||
|
#
|
||||||
|
# B) Set up package-specific options
|
||||||
|
#
|
||||||
|
|
||||||
|
TRIBITS_ADD_OPTION_AND_DEFINE( ${PACKAGE_NAME}_ENABLE_UINT_IDS
|
||||||
|
UNSIGNED_INT_GLOBAL_IDS
|
||||||
|
"typedef unsigned int ZOLTAN_ID_TYPE"
|
||||||
|
OFF )
|
||||||
|
|
||||||
|
TRIBITS_ADD_OPTION_AND_DEFINE( ${PACKAGE_NAME}_ENABLE_ULONG_IDS
|
||||||
|
UNSIGNED_LONG_GLOBAL_IDS
|
||||||
|
"typedef unsigned long ZOLTAN_ID_TYPE"
|
||||||
|
OFF )
|
||||||
|
|
||||||
|
TRIBITS_ADD_OPTION_AND_DEFINE( ${PACKAGE_NAME}_ENABLE_ULLONG_IDS
|
||||||
|
UNSIGNED_LONG_LONG_GLOBAL_IDS
|
||||||
|
"typedef unsigned long long ZOLTAN_ID_TYPE"
|
||||||
|
OFF )
|
||||||
|
|
||||||
|
TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_HUND
|
||||||
|
HAVE_ZOLTAN_HUND
|
||||||
|
"Enable support for HUND in ${PACKAGE_NAME}."
|
||||||
|
OFF )
|
||||||
|
|
||||||
|
TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_KNUTH_HASH
|
||||||
|
HAVE_ZOLTAN_KNUTH_HASH
|
||||||
|
"Enable support for Knuth's hash function in ${PACKAGE_NAME}."
|
||||||
|
OFF )
|
||||||
|
|
||||||
|
TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_F90INTERFACE
|
||||||
|
BUILD_ZOLTAN_F90_INTERFACE
|
||||||
|
"Enable build of F90 interface to ${PACKAGE_NAME}."
|
||||||
|
OFF )
|
||||||
|
|
||||||
|
TRIBITS_ADD_OPTION_AND_DEFINE(${PACKAGE_NAME}_ENABLE_PURIFY
|
||||||
|
HAVE_PURIFY
|
||||||
|
"Enable work-arounds to purify bugs."
|
||||||
|
OFF )
|
||||||
|
|
||||||
|
OPTION(${PACKAGE_NAME}_ENABLE_CPPDRIVER
|
||||||
|
"Enable C++ driver for ${PACKAGE_NAME}."
|
||||||
|
${${PROJECT_NAME}_ENABLE_CXX} )
|
||||||
|
|
||||||
|
IF (${PROJECT_NAME}_ENABLE_CXX)
|
||||||
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_IGNORE_CXX_SEEK")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(${PROJECT_NAME}_ENABLE_Fortran AND BUILD_ZOLTAN_F90_INTERFACE)
|
||||||
|
|
||||||
|
# Special Fortran compiler-specific flags
|
||||||
|
IF (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI")
|
||||||
|
SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DPGI")
|
||||||
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPGI")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF (${CMAKE_Fortran_COMPILER_ID} MATCHES "LAHEY")
|
||||||
|
SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DFUJITSU")
|
||||||
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFUJITSU")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(ZOLTAN_BUILD_ZFDRIVE YES)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
#
|
||||||
|
# C) Add the libraries, tests, and examples
|
||||||
|
#
|
||||||
|
|
||||||
|
IF (NOT TPL_ENABLE_MPI)
|
||||||
|
ADD_SUBDIRECTORY(siMPI)
|
||||||
|
SET(ZOLTAN_BUILD_ZFDRIVE NO)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
ADD_SUBDIRECTORY(src)
|
||||||
|
|
||||||
|
TRIBITS_ADD_TEST_DIRECTORIES(src/driver)
|
||||||
|
|
||||||
|
IF(ZOLTAN_BUILD_ZFDRIVE)
|
||||||
|
# CMAKE version > 2.6.4 is needed; earlier versions use C++ compiler to link
|
||||||
|
# fdriver, while fdriver needs F90.
|
||||||
|
TRIBITS_ADD_TEST_DIRECTORIES(src/fdriver)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
TRIBITS_ADD_TEST_DIRECTORIES(test)
|
||||||
|
|
||||||
|
TRIBITS_ADD_EXAMPLE_DIRECTORIES(example)
|
||||||
|
|
||||||
|
TRIBITS_EXCLUDE_FILES(
|
||||||
|
test/ch_brack2_3
|
||||||
|
test/ch_bug
|
||||||
|
test/ch_degenerate
|
||||||
|
test/ch_degenerateAA
|
||||||
|
test/ch_drake
|
||||||
|
test/ch_grid20x19
|
||||||
|
test/ch_hammond
|
||||||
|
test/ch_hammond2
|
||||||
|
test/ch_hughes
|
||||||
|
test/ch_nograph
|
||||||
|
test/ch_onedbug
|
||||||
|
test/ch_random
|
||||||
|
test/ch_serial
|
||||||
|
test/ch_slac
|
||||||
|
test/hg_cage10
|
||||||
|
test/hg_diag500_4
|
||||||
|
test/hg_ewgt
|
||||||
|
test/hg_felix
|
||||||
|
test/hg_ibm03
|
||||||
|
test/hg_ml27
|
||||||
|
test/hg_nograph
|
||||||
|
test/hg_vwgt
|
||||||
|
test/nem_ti_20k
|
||||||
|
test/nem_ti_4k
|
||||||
|
test/misc_siefert
|
||||||
|
test/th
|
||||||
|
test/bin
|
||||||
|
doc/Zoltan_html/tu_html
|
||||||
|
src/ZoltanComponent
|
||||||
|
src/driver_old
|
||||||
|
src/fdriver_old
|
||||||
|
)
|
||||||
|
|
||||||
|
#
|
||||||
|
# D) Do standard postprocessing
|
||||||
|
#
|
||||||
|
|
||||||
|
TRIBITS_PACKAGE_POSTPROCESS()
|
45
thirdParty/Zoltan/COPYRIGHT_AND_LICENSE
vendored
Normal file
45
thirdParty/Zoltan/COPYRIGHT_AND_LICENSE
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* @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
|
||||||
|
*/
|
17
thirdParty/Zoltan/Disclaimer
vendored
Normal file
17
thirdParty/Zoltan/Disclaimer
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
Zoltan Library for Parallel Applications
|
||||||
|
|
||||||
|
Neither Sandia, the government, the DOE, nor any of their employees, makes
|
||||||
|
any warranty, express or implied, or assumes any legal liability or
|
||||||
|
responsibility for the accuracy, completeness, or usefulness of any
|
||||||
|
information, apparatus, product, or process disclosed, or represents that
|
||||||
|
its use would not infringe privately owned rights. This information is made
|
||||||
|
available on an "AS-IS" basis.
|
||||||
|
ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
EXCLUDED HEREUNDER.
|
||||||
|
Neither Sandia nor the Government, nor their agents, officers and employees
|
||||||
|
shall be liable for any loss, damage (including, incidental, consequential
|
||||||
|
and special), injury or other casualty of whatsoever kind, or by whomsoever
|
||||||
|
caused, to the person or property of anyone arising out of or resulting from
|
||||||
|
this information, or the accuracy and validity of this information.
|
251
thirdParty/Zoltan/Known_Problems
vendored
Normal file
251
thirdParty/Zoltan/Known_Problems
vendored
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
Problems existing in Zoltan.
|
||||||
|
This file was last updated on $Date$
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
ERROR CONDITIONS IN ZOLTAN
|
||||||
|
When a processor returns from Zoltan to the application due to an error
|
||||||
|
condition, other processors do not necessarily return the same condition.
|
||||||
|
In fact, other processors may not know that the processor has quit Zoltan,
|
||||||
|
and may hang in a communication (waiting for a message that is not sent
|
||||||
|
due to the error condition). The parallel error-handling capabilities of
|
||||||
|
Zoltan will be improved in future releases.
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
RCB/RIB ON ASCI RED
|
||||||
|
On ASCI Red, the number of context IDs (e.g., MPI Communicators) is limited
|
||||||
|
to 8192. The environment variable MPI_REUSE_CONTEXT_IDS must be set to
|
||||||
|
reuse the IDs; setting this variable, however, slows performance.
|
||||||
|
An alternative is to set Zoltan_Parameter TFLOPS_SPECIAL to "1". With
|
||||||
|
TFLOPS_SPECIAL set, communicators in RCB/RIB are not split and, thus, the
|
||||||
|
application is less likely to run out of context IDs. However, ASCI Red
|
||||||
|
also has a bug that is exposed by TFLOPS_SPECIAL; when messages that use
|
||||||
|
MPI_Send/MPI_Recv within RCB/RIB exceed the MPI_SHORT_MSG_SIZE, MPI_Recv
|
||||||
|
hangs. We do not expect these conditions to exist on future platforms and,
|
||||||
|
indeed, plan to make TFLOPS_SPECIAL obsolete in future versions of Zoltan
|
||||||
|
rather than re-work it with MPI_Irecv. -- KDD 10/5/2004
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
ERROR CONDITIONS IN OCTREE, PARMETIS AND JOSTLE
|
||||||
|
On failure, OCTREE, ParMETIS and Jostle methods abort rather than return
|
||||||
|
error codes.
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
ZOLTAN_INITIALIZE BUT NO ZOLTAN_FINALIZE
|
||||||
|
If Zoltan_Initialize calls MPI_Init, then MPI_Finalize
|
||||||
|
will never be called because there is no Zoltan_Finalize routine.
|
||||||
|
If the application uses MPI and calls MPI_Init and MPI_Finalize,
|
||||||
|
then there is no problem.
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
HETEROGENEOUS ENVIRONMENTS
|
||||||
|
Some parts of Zoltan currently assume that basic data types like
|
||||||
|
integers and real numbers (floats) have identical representation
|
||||||
|
on all processors. This may not be true in a heterogeneous
|
||||||
|
environment. Specifically, the unstructured (irregular) communication
|
||||||
|
library is unsafe in a heterogeneous environment. This problem
|
||||||
|
will be corrected in a future release of Zoltan for heterogeneous
|
||||||
|
systems.
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
F90 ISSUES
|
||||||
|
Pacific Sierra Research (PSR) Vastf90 is not currently supported due to bugs
|
||||||
|
in the compiler with no known workarounds. It is not known when or if this
|
||||||
|
compiler will be supported.
|
||||||
|
|
||||||
|
N.A.Software FortranPlus is not currently supported due to problems with the
|
||||||
|
query functions. We anticipate that this problem can be overcome, and support
|
||||||
|
will be added soon.
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
PROBLEMS EXISTING IN PARMETIS
|
||||||
|
(Reported to the ParMETIS development team at the University of Minnesota,
|
||||||
|
metis@cs.umn.edu)
|
||||||
|
|
||||||
|
Name: Free-memory write in PartGeomKway
|
||||||
|
Version: ParMETIS 3.1.1
|
||||||
|
Symptom: Free-memory write reported by Purify and Valgrind for graphs with
|
||||||
|
no edges.
|
||||||
|
Description:
|
||||||
|
For input graphs with no (or, perhaps, few) edges, Purify and Valgrind
|
||||||
|
report writes to already freed memory as shown below.
|
||||||
|
FMW: Free memory write:
|
||||||
|
* This is occurring while in thread 22199:
|
||||||
|
SetUp(void) [setup.c:80]
|
||||||
|
PartitionSmallGraph(void) [weird.c:39]
|
||||||
|
ParMETIS_V3_PartGeomKway [gkmetis.c:214]
|
||||||
|
Zoltan_ParMetis [parmetis_interface.c:280]
|
||||||
|
Zoltan_LB [lb_balance.c:384]
|
||||||
|
Zoltan_LB_Partition [lb_balance.c:91]
|
||||||
|
run_zoltan [dr_loadbal.c:581]
|
||||||
|
main [dr_main.c:386]
|
||||||
|
__libc_start_main [libc.so.6]
|
||||||
|
_start [crt1.o]
|
||||||
|
* Writing 4 bytes to 0xfcd298 in the heap.
|
||||||
|
* Address 0xfcd298 is at the beginning of a freed block of 4 bytes.
|
||||||
|
* This block was allocated from thread -1781075296:
|
||||||
|
malloc [rtlib.o]
|
||||||
|
GKmalloc(void) [util.c:151]
|
||||||
|
idxmalloc(void) [util.c:100]
|
||||||
|
AllocateWSpace [memory.c:28]
|
||||||
|
ParMETIS_V3_PartGeomKway [gkmetis.c:123]
|
||||||
|
Zoltan_ParMetis [parmetis_interface.c:280]
|
||||||
|
Zoltan_LB [lb_balance.c:384]
|
||||||
|
Zoltan_LB_Partition [lb_balance.c:91]
|
||||||
|
run_zoltan [dr_loadbal.c:581]
|
||||||
|
main [dr_main.c:386]
|
||||||
|
__libc_start_main [libc.so.6]
|
||||||
|
_start [crt1.o]
|
||||||
|
* There have been 10 frees since this block was freed from thread 22199:
|
||||||
|
GKfree(void) [util.c:168]
|
||||||
|
Mc_MoveGraph(void) [move.c:92]
|
||||||
|
ParMETIS_V3_PartGeomKway [gkmetis.c:149]
|
||||||
|
Zoltan_ParMetis [parmetis_interface.c:280]
|
||||||
|
Zoltan_LB [lb_balance.c:384]
|
||||||
|
Zoltan_LB_Partition [lb_balance.c:91]
|
||||||
|
run_zoltan [dr_loadbal.c:581]
|
||||||
|
main [dr_main.c:386]
|
||||||
|
__libc_start_main [libc.so.6]
|
||||||
|
_start [crt1.o]
|
||||||
|
Reported: Reported 8/31/09 http://glaros.dtc.umn.edu/flyspray/task/50
|
||||||
|
Status: Reported 8/31/09
|
||||||
|
|
||||||
|
Name: PartGeom limitation
|
||||||
|
Version: ParMETIS 3.0, 3.1
|
||||||
|
Symptom: inaccurate number of partitions when # partitions != # processors
|
||||||
|
Description:
|
||||||
|
ParMETIS method PartGeom produces decompositions with #-processor
|
||||||
|
partitions only. Zoltan parameters NUM_GLOBAL_PARTITIONS and
|
||||||
|
NUM_LOCAL_PARTITIONS will be ignored.
|
||||||
|
Reported: Not yet reported.
|
||||||
|
Status: Not yet reported.
|
||||||
|
|
||||||
|
Name: vsize array freed in ParMetis
|
||||||
|
Version: ParMETIS 3.0 and 3.1
|
||||||
|
Symptom: seg. fault, core dump at runtime
|
||||||
|
Description:
|
||||||
|
When calling ParMETIS_V3_AdaptiveRepart with the vsize parameter,
|
||||||
|
ParMetis will try to free the vsize array even if it was
|
||||||
|
allocated in Zoltan. Zoltan will then try to free vsize again
|
||||||
|
later, resulting in a fatal error. As a temporary fix,
|
||||||
|
Zoltan will never call ParMetis with the vsize parameter.
|
||||||
|
Reported: 11/25/2003.
|
||||||
|
Status: Acknowledged by George Karypis.
|
||||||
|
|
||||||
|
Name: ParMETIS_V3_AdaptiveRepart and ParMETIS_V3_PartKWay crash
|
||||||
|
for zero-sized partitions.
|
||||||
|
Version: ParMETIS 3.1
|
||||||
|
Symptom: run-time error "killed by signal 8" on DEC. FPE, divide-by-zero.
|
||||||
|
Description:
|
||||||
|
Metis divides by partition size; thus, zero-sized partitions
|
||||||
|
cause a floating-point exception.
|
||||||
|
Reported: 9/9/2003.
|
||||||
|
Status: ?
|
||||||
|
|
||||||
|
Name: ParMETIS_V3_AdaptiveRepart dies for zero-sized partitions.
|
||||||
|
Version: ParMETIS 3.0
|
||||||
|
Symptom: run-time error "killed by signal 8" on DEC. FPE, divide-by-zero.
|
||||||
|
Description:
|
||||||
|
ParMETIS_V3_AdaptiveRepart divides by partition size; thus, zero-sized
|
||||||
|
partitions cause a floating-point exception. This problem is exhibited in
|
||||||
|
adaptive-partlocal3 tests. The tests actually run on Sun and Linux machines
|
||||||
|
(which don't seem to care about the divide-by-zero), but cause an FPE
|
||||||
|
signal on DEC (Compaq) machines.
|
||||||
|
Reported: 1/23/2003.
|
||||||
|
Status: Fixed in ParMetis 3.1, but new problem appeared (see above).
|
||||||
|
|
||||||
|
Name: ParMETIS_V3_AdaptiveRepart crashes when no edges.
|
||||||
|
Version: ParMETIS 3.0
|
||||||
|
Symptom: Floating point exception, divide-by-zero.
|
||||||
|
Description:
|
||||||
|
Divide-by-zero in ParMETISLib/adrivers.c, function Adaptive_Partition,
|
||||||
|
line 40.
|
||||||
|
Reported: 1/23/2003.
|
||||||
|
Status: Fixed in ParMetis 3.1.
|
||||||
|
|
||||||
|
Name: Uninitialized memory read in akwayfm.c.
|
||||||
|
Version: ParMETIS 3.0
|
||||||
|
Symptom: UMR warning.
|
||||||
|
Description:
|
||||||
|
UMR in ParMETISLib/akwayfm.c, function Moc_KWayAdaptiveRefine, near line 520.
|
||||||
|
Reported: 1/23/2003.
|
||||||
|
Status: Fixed in ParMetis 3.1.
|
||||||
|
|
||||||
|
Name: Memory leak in wave.c
|
||||||
|
Version: ParMETIS 3.0
|
||||||
|
Symptom: Some memory not freed.
|
||||||
|
Description:
|
||||||
|
Memory leak in ParMETISLib/wave.c, function WavefrontDiffusion;
|
||||||
|
memory for the following variables is not always freed:
|
||||||
|
solution, perm, workspace, cand
|
||||||
|
We believe the early return near line 111 causes the problem.
|
||||||
|
Reported: 1/23/2003.
|
||||||
|
Status: Fixed in ParMetis 3.1.
|
||||||
|
|
||||||
|
Name: tpwgts ignored for small graphs.
|
||||||
|
Version: ParMETIS 3.0
|
||||||
|
Symptom: incorrect output (partitioning)
|
||||||
|
Description:
|
||||||
|
When using ParMETIS_V3_PartKway to partition into partitions
|
||||||
|
of unequal sizes, the input array tpwgts is ignored and
|
||||||
|
uniform-sized partitions are computed. This bug shows up when
|
||||||
|
(a) the number of vertices is < 10000 and (b) only one weight
|
||||||
|
per vertex is given (ncon=1).
|
||||||
|
Reported: Reported to George Karypis and metis@cs.umn.edu on 2002/10/30.
|
||||||
|
Status: Fixed in ParMetis 3.1.
|
||||||
|
|
||||||
|
|
||||||
|
Name: AdaptiveRepart crashes on partless test.
|
||||||
|
Version: ParMETIS 3.0
|
||||||
|
Symptom: run-time segmentation violation.
|
||||||
|
Description:
|
||||||
|
ParMETIS_V3_AdaptiveRepart crashes with a SIGSEGV if
|
||||||
|
the input array _part_ contains any value greater then
|
||||||
|
the desired number of partitions, nparts. This shows up
|
||||||
|
in Zoltan's "partless" test cases.
|
||||||
|
Reported: Reported to George Karypis and metis@cs.umn.edu on 2002/12/02.
|
||||||
|
Status: Fixed in ParMetis 3.1.
|
||||||
|
|
||||||
|
|
||||||
|
Name: load imbalance tolerance
|
||||||
|
Version: ParMETIS 2.0
|
||||||
|
Symptom: missing feature
|
||||||
|
Description:
|
||||||
|
The load imbalance parameter UNBALANCE_FRACTION can
|
||||||
|
only be set at compile-time. With Zoltan it is
|
||||||
|
necessary to be able to set this parameter at run-time.
|
||||||
|
Reported: Reported to metis@cs.umn.edu on 19 Aug 1999.
|
||||||
|
Status: Fixed in version 3.0.
|
||||||
|
|
||||||
|
|
||||||
|
Name: no edges
|
||||||
|
Version: ParMETIS 2.0
|
||||||
|
Symptom: segmentation fault at run time
|
||||||
|
Description:
|
||||||
|
ParMETIS crashes if the input graph has no edges and
|
||||||
|
ParMETIS_PartKway is called. We suspect all the graph based
|
||||||
|
methods crash. From the documentation it is unclear if
|
||||||
|
a NULL pointer is a valid input for the adjncy array.
|
||||||
|
Apparently, the bug occurs both with NULL as input or
|
||||||
|
a valid pointer to an array.
|
||||||
|
Reported: Reported to metis@cs.umn.edu on 5 Oct 1999.
|
||||||
|
Status: Fixed in version 3.0.
|
||||||
|
|
||||||
|
|
||||||
|
Name: no vertices
|
||||||
|
Version: ParMETIS 2.0, 3.0, 3.1
|
||||||
|
Symptom: segmentation fault at run time
|
||||||
|
Description:
|
||||||
|
ParMETIS may crash if a processor owns no vertices.
|
||||||
|
The extent of this bug is not known (which methods are affected).
|
||||||
|
Again, it is unclear if NULL pointers are valid input.
|
||||||
|
Reported: Reported to metis@cs.umn.edu on 6 Oct 1999.
|
||||||
|
Status: Fixed in 3.0 and 3.1 for the graph methods, but not the geometric methods.
|
||||||
|
New bug report sent on 2003/08/20.
|
||||||
|
|
||||||
|
|
||||||
|
Name: partgeom bug
|
||||||
|
Version: ParMETIS 2.0
|
||||||
|
Symptom: floating point exception
|
||||||
|
Description:
|
||||||
|
For domains where the global delta_x, delta_y, or delta_z (in 3D)
|
||||||
|
is zero (e.g., all nodes lie along the y-axis), a floating point
|
||||||
|
exception can occur when the partgeom algorithm is used.
|
||||||
|
Reported: kirk@cs.umn.edu in Jan 2001.
|
||||||
|
Status: Fixed in version 3.0.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
370
thirdParty/Zoltan/Makefile.am
vendored
Normal file
370
thirdParty/Zoltan/Makefile.am
vendored
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
# @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
|
||||||
|
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## Options to automake (rarely used - don't worry about it)
|
||||||
|
## #######################################################################
|
||||||
|
AUTOMAKE_OPTIONS = foreign
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## Aclocal command (rarely used - don't worry about it)
|
||||||
|
## #######################################################################
|
||||||
|
ACLOCAL_AMFLAGS = -I config
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## Additional files to be included in distribution for 'make dist'
|
||||||
|
## #######################################################################
|
||||||
|
ZOLTAN_TESTS = \
|
||||||
|
test/test_zoltan \
|
||||||
|
test/runtests \
|
||||||
|
test/ctest_zoltan.pl \
|
||||||
|
test/ch_simple \
|
||||||
|
test/hg_simple
|
||||||
|
|
||||||
|
ZOLTAN_DOCS = \
|
||||||
|
doc/Zoltan_html/Zoltan.html \
|
||||||
|
doc/Zoltan_html/Zoltan_FAQ.html \
|
||||||
|
doc/Zoltan_html/Zoltan_bugreport.html \
|
||||||
|
doc/Zoltan_html/Zoltan_cite.html \
|
||||||
|
doc/Zoltan_html/Zoltan_construction.html \
|
||||||
|
doc/Zoltan_html/Zoltan_phil.html \
|
||||||
|
doc/Zoltan_html/Zoltan_pubs.html \
|
||||||
|
doc/Zoltan_html/dev_html/brack3d.png \
|
||||||
|
doc/Zoltan_html/dev_html/dev.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_add.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_add_interface.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_add_lb.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_add_memory.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_add_params.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_add_remap.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_add_struct.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_cpp.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_degenerate.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_dist.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_dist_compile.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_dist_cvs.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_dist_dir.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_driver.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_fortran.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_hier.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_hsfc.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_intro.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_intro_coding.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_intro_philosophy.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_intro_sqe.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_lb.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_lb_interface.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_lb_structs.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_lb_types.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_mig.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_parmetis.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_phg.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_rcb.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_refs.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_reftree.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_rib.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services_debug.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services_hash.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services_objlist.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services_parallel.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services_params.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services_time.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_services_zoltantimer.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_test_script.html \
|
||||||
|
doc/Zoltan_html/dev_html/dev_view.html \
|
||||||
|
doc/Zoltan_html/dev_html/film2d.png \
|
||||||
|
doc/Zoltan_html/dev_html/hammondMesh.png \
|
||||||
|
doc/Zoltan_html/dev_html/hammondPoints.png \
|
||||||
|
doc/Zoltan_html/dev_html/zdrive.inp \
|
||||||
|
doc/Zoltan_html/ug_html/figures/arrow.gif \
|
||||||
|
doc/Zoltan_html/ug_html/figures/HGFigure.gif \
|
||||||
|
doc/Zoltan_html/ug_html/figures/hierexample.fig \
|
||||||
|
doc/Zoltan_html/ug_html/figures/hierexample.gif \
|
||||||
|
doc/Zoltan_html/ug_html/figures/Z.gif \
|
||||||
|
doc/Zoltan_html/ug_html/ug.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_block.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_geom.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_graph.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_hier.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_hsfc.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_hypergraph.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_jostle.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_oct.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_parkway.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_parmetis.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_patoh.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_phg.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_ptscotch.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_random.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_rcb.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_reftree.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_rib.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_alg_simple.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_backward.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_color.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_color_parallel.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_cpp.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_examples.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_examples_init.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_examples_lb.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_examples_mig.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_examples_query.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_fortran.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_graph_vs_hg.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_index.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_interface.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_interface_augment.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_interface_color.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_interface_init.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_interface_lb.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_interface_mig.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_interface_order.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_intro.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_order.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_order_parmetis.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_order_ptscotch.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_param.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_query.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_query_lb.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_query_mig.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_refs.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_release.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_usage.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_util.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_util_comm.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_util_dd.html \
|
||||||
|
doc/Zoltan_html/ug_html/ug_util_mem.html
|
||||||
|
|
||||||
|
ZOLTAN_SAMPLE = \
|
||||||
|
SampleConfigurationScripts/mac_osX_no_fortran \
|
||||||
|
SampleConfigurationScripts/linux_with_purify_zoltan_only \
|
||||||
|
SampleConfigurationScripts/mac_osX_zoltan_only \
|
||||||
|
SampleConfigurationScripts/linux_zoltan_only \
|
||||||
|
SampleConfigurationScripts/linux_trilinos_runtests \
|
||||||
|
SampleConfigurationScripts/linux_zoltan_dist \
|
||||||
|
SampleConfigurationScripts/mac_osX_zoltan_dist
|
||||||
|
|
||||||
|
|
||||||
|
ZOLTAN_CMAKE = \
|
||||||
|
CMakeLists.txt \
|
||||||
|
src/CMakeLists.txt \
|
||||||
|
src/driver/CMakeLists.txt \
|
||||||
|
src/fdriver/CMakeLists.txt \
|
||||||
|
test/CMakeLists.txt \
|
||||||
|
test/ch_simple/CMakeLists.txt \
|
||||||
|
test/hg_simple/CMakeLists.txt \
|
||||||
|
cmake/Dependencies.cmake \
|
||||||
|
cmake/Zoltan_config.h.in
|
||||||
|
|
||||||
|
EXTRA_DIST = config/generate-makeoptions.pl \
|
||||||
|
README.html README.txt \
|
||||||
|
config/strip_dup_incl_paths.pl config/strip_dup_libs.pl \
|
||||||
|
config/replace-install-prefix.pl config/string-replace.pl \
|
||||||
|
config/token-replace.pl \
|
||||||
|
Disclaimer GNU_Lesser_GPL.txt Known_Problems VERSION \
|
||||||
|
$(ZOLTAN_DOCS) $(ZOLTAN_SAMPLE) $(ZOLTAN_TESTS)
|
||||||
|
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## Tools in the auxillary directory
|
||||||
|
## #######################################################################
|
||||||
|
AUX_DIST = config/install-sh config/missing config/mkinstalldirs
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## Files to be deleted by 'make maintainer-clean'
|
||||||
|
## #######################################################################
|
||||||
|
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 autom4te.cache/* \
|
||||||
|
configure config.status config.log \
|
||||||
|
src/common/config-h.in src/common/stamp-h.in \
|
||||||
|
$(AUX_DIST)
|
||||||
|
|
||||||
|
#The following line helps the test harness recover from build errors.
|
||||||
|
|
||||||
|
all-local:
|
||||||
|
@echo ""
|
||||||
|
@echo "Trilinos package zoltan built successfully."
|
||||||
|
@echo ""
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## Subdirectories to be make'd recursively
|
||||||
|
## #######################################################################
|
||||||
|
|
||||||
|
#We now build tests and examples through separate make targets, rather than
|
||||||
|
#during "make". We still need to conditionally include the test and example
|
||||||
|
#in SUBDIRS, even though BUILD_TESTS and BUILD_EXAMPLES will never be
|
||||||
|
#defined, so that the tests and examples are included in the distribution
|
||||||
|
#tarball.
|
||||||
|
|
||||||
|
#Add this later
|
||||||
|
if SUB_TEST
|
||||||
|
TEST_SUBDIR=
|
||||||
|
endif
|
||||||
|
|
||||||
|
if SUB_EXAMPLE
|
||||||
|
EXAMPLE_SUBDIR=example
|
||||||
|
endif
|
||||||
|
|
||||||
|
if BUILD_TESTS
|
||||||
|
tests: examples
|
||||||
|
@echo ""
|
||||||
|
@echo "Now building zoltan tests."
|
||||||
|
@echo ""
|
||||||
|
@echo "Zoltan tests use drivers and input files; no compilation necessary."
|
||||||
|
@echo ""
|
||||||
|
@echo "Finished building zoltan tests."
|
||||||
|
@echo ""
|
||||||
|
else
|
||||||
|
tests:
|
||||||
|
@echo "zoltan tests were disabled at configure time"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if BUILD_EXAMPLES
|
||||||
|
examples:
|
||||||
|
@echo ""
|
||||||
|
@echo "Now building zoltan examples."
|
||||||
|
@echo ""
|
||||||
|
cd $(top_builddir)/example && $(MAKE)
|
||||||
|
@echo ""
|
||||||
|
@echo "Finished building zoltan examples."
|
||||||
|
@echo ""
|
||||||
|
|
||||||
|
install-examples:
|
||||||
|
cd $(top_builddir)/example && $(MAKE) install
|
||||||
|
else
|
||||||
|
examples:
|
||||||
|
@echo "zoltan examples were disabled at configure time"
|
||||||
|
|
||||||
|
install-examples:
|
||||||
|
@echo "zoltan examples were disabled at configure time"
|
||||||
|
endif
|
||||||
|
|
||||||
|
clean-tests:
|
||||||
|
cd $(top_builddir)/test && $(MAKE) clean
|
||||||
|
|
||||||
|
clean-examples:
|
||||||
|
cd $(top_builddir)/example && $(MAKE) clean
|
||||||
|
|
||||||
|
everything:
|
||||||
|
$(MAKE) && $(MAKE) examples && $(MAKE) tests
|
||||||
|
|
||||||
|
clean-everything:
|
||||||
|
$(MAKE) clean-examples && $(MAKE) clean-tests && $(MAKE) clean
|
||||||
|
|
||||||
|
install-everything:
|
||||||
|
$(MAKE) install && $(MAKE) install-examples
|
||||||
|
|
||||||
|
if HAVE_MPI
|
||||||
|
SIMPI_SUBDIR=
|
||||||
|
else
|
||||||
|
SIMPI_SUBDIR=siMPI
|
||||||
|
endif
|
||||||
|
|
||||||
|
SUBDIRS = $(SIMPI_SUBDIR) src $(EXAMPLE_SUBDIR) $(TEST_SUBDIR)
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## The below targets allow you to use the new
|
||||||
|
## testharness to run the test suite as make targets
|
||||||
|
## #######################################################################
|
||||||
|
|
||||||
|
TRILINOS_HOME_DIR=@abs_top_srcdir@/../..
|
||||||
|
TRILINOS_BUILD_DIR=@abs_top_builddir@/../..
|
||||||
|
TRILINOS_MPI_MAX_PROC=4
|
||||||
|
TRILINOS_TEST_CATEGORY=INSTALL
|
||||||
|
|
||||||
|
runtests-serial :
|
||||||
|
$(PERL_EXE) $(TRILINOS_HOME_DIR)/commonTools/test/utilities/runtests \
|
||||||
|
--trilinos-dir=$(TRILINOS_HOME_DIR) \
|
||||||
|
--comm=serial \
|
||||||
|
--build-dir=$(TRILINOS_BUILD_DIR) \
|
||||||
|
--category=$(TRILINOS_TEST_CATEGORY) \
|
||||||
|
--output-dir=@abs_top_builddir@/test/runtests-results \
|
||||||
|
--verbosity=1 \
|
||||||
|
--packages=zoltan
|
||||||
|
|
||||||
|
runtests-mpi :
|
||||||
|
$(PERL_EXE) $(TRILINOS_HOME_DIR)/commonTools/test/utilities/runtests \
|
||||||
|
--trilinos-dir=$(TRILINOS_HOME_DIR) \
|
||||||
|
--comm=mpi \
|
||||||
|
--mpi-go=$(TRILINOS_MPI_GO) \
|
||||||
|
--build-dir=$(TRILINOS_BUILD_DIR) \
|
||||||
|
--max-proc=$(TRILINOS_MPI_MAX_PROC) \
|
||||||
|
--category=$(TRILINOS_TEST_CATEGORY) \
|
||||||
|
--output-dir=@abs_top_builddir@/test/runtests-results \
|
||||||
|
--verbosity=1 \
|
||||||
|
--packages=zoltan
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
## Export makefile stuff
|
||||||
|
## #######################################################################
|
||||||
|
|
||||||
|
if USING_EXPORT_MAKEFILES
|
||||||
|
|
||||||
|
install-exec-hook:
|
||||||
|
mkdir -p $(DESTDIR)$(includedir)
|
||||||
|
cp $(top_builddir)/Makefile.export.zoltan $(DESTDIR)$(includedir)/.
|
||||||
|
$(PERL_EXE) $(top_srcdir)/config/replace-install-prefix.pl \
|
||||||
|
--exec-prefix=$(exec_prefix) \
|
||||||
|
--my-export-makefile=Makefile.export.zoltan \
|
||||||
|
--my-abs-top-srcdir=@abs_top_srcdir@ \
|
||||||
|
--my-abs-incl-dirs=@abs_top_builddir@/src:@abs_top_srcdir@/src \
|
||||||
|
--my-abs-lib-dirs=@abs_top_builddir@/src
|
||||||
|
$(PERL_EXE) $(top_srcdir)/config/generate-makeoptions.pl $(top_builddir)/src/Makefile ZOLTAN > $(DESTDIR)$(includedir)/Makefile.export.zoltan.macros
|
||||||
|
|
||||||
|
uninstall-hook:
|
||||||
|
rm -f $(includedir)/Makefile.export.zoltan
|
||||||
|
rm -f $(includedir)/Makefile.export.zoltan.macros
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
install-exec-hook:
|
||||||
|
|
||||||
|
uninstall-hook:
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
## #######################################################################
|
||||||
|
|
80
thirdParty/Zoltan/Makefile.export.zoltan.in
vendored
Normal file
80
thirdParty/Zoltan/Makefile.export.zoltan.in
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
@HAVE_MPI_FALSE@SIMPI_INCDIR = -I@abs_top_srcdir@/siMPI/pyMPI/siMPI
|
||||||
|
@HAVE_MPI_FALSE@SIMPI_LIBS = -L@abs_top_builddir@/siMPI/pyMPI/siMPI -lsimpi
|
||||||
|
|
||||||
|
ZOLTAN_INCLUDES = -I@abs_top_builddir@/src/include -I@abs_top_srcdir@/src/include $(SIMPI_INCDIR)
|
||||||
|
|
||||||
|
#@BUILD_FORTRAN90DRIVER_TRUE@ZFORLIBS = @FCLIBS@
|
||||||
|
@USE_FORTRAN_TRUE@ZFLIBS = @FLIBS@
|
||||||
|
#The following line can be edited in the case that -lm is not available
|
||||||
|
@USE_FORTRAN_FALSE@ZFLIBS = -lm
|
||||||
|
#@BUILD_FORTRAN90DRIVER_FALSE@ZFORLIBS = $(ZFLIBS)
|
||||||
|
ZFORLIBS = $(ZFLIBS)
|
||||||
|
|
||||||
|
ZOLTAN_LIBS = @LDFLAGS@ -L@abs_top_builddir@/src -lzoltan @LIBS@ $(ZFORLIBS) $(SIMPI_LIBS)
|
||||||
|
|
||||||
|
ZOLTAN_LIBRARY_INCLUDES = -I@abs_top_builddir@/src/include -I@abs_top_srcdir@/src/include -I@abs_top_srcdir@/src/all -I@abs_top_srcdir@/src/coloring -I@abs_top_srcdir@/src/ha -I@abs_top_srcdir@/src/hier -I@abs_top_srcdir@/src/hsfc -I@abs_top_srcdir@/src/lb -I@abs_top_srcdir@/src/oct -I@abs_top_srcdir@/src/order -I@abs_top_srcdir@/src/par -I@abs_top_srcdir@/src/params -I@abs_top_srcdir@/src/tpls -I@abs_top_srcdir@/src/ccolamd -I@abs_top_srcdir@/src/phg -I@abs_top_srcdir@/src/rcb -I@abs_top_srcdir@/src/reftree -I@abs_top_srcdir@/src/timer -I@abs_top_srcdir@/src/Utilities/Communication -I@abs_top_srcdir@/src/Utilities/Timer -I@abs_top_srcdir@/src/Utilities/DDirectory -I@abs_top_srcdir@/src/Utilities/Memory -I@abs_top_srcdir@/src/Utilities/shared -I@abs_top_srcdir@/src/zz -I@abs_top_srcdir@/src/graph -I@abs_top_srcdir@/src/matrix -I@abs_top_srcdir@/src/simple $(SIMPI_INCDIR)
|
||||||
|
|
||||||
|
ZOLTAN_DEPS = @abs_top_builddir@/src/libzoltan.a
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Export MPI settings
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# MPI libraries
|
||||||
|
ZOLTAN_MPI_LIBS = @MPI_LIBS@
|
||||||
|
|
||||||
|
# MPI include path
|
||||||
|
ZOLTAN_MPI_INC = @MPI_INC@
|
||||||
|
|
||||||
|
# Path to MPI libraries
|
||||||
|
ZOLTAN_MPI_LIBDIR = @MPI_LIBDIR@
|
||||||
|
|
||||||
|
# Path to MPI root
|
||||||
|
ZOLTAN_MPI_DIR = @MPI_DIR@
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Export Fortran libraries
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# Fortran & standard math libs
|
||||||
|
#ZOLTAN_FCLIBS = @FCLIBS@
|
||||||
|
ZOLTAN_FLIBS = $(ZFLIBS)
|
||||||
|
|
||||||
|
# Extra libraries
|
||||||
|
ZOLTAN_EXTRA_LIBS = @LIBS@
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Export compiler settings
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# Extra definitions
|
||||||
|
ZOLTAN_DEFS = @DEFS@
|
||||||
|
|
||||||
|
# Fortran compilation flags
|
||||||
|
@BUILD_FORTRAN90DRIVER_TRUE@ZOLTAN_FCFLAGS = @FCFLAGS@
|
||||||
|
@USE_FORTRAN_TRUE@ZOLTAN_FFLAGS = @FFLAGS@
|
||||||
|
|
||||||
|
# C compilation flags
|
||||||
|
ZOLTAN_CFLAGS = @CFLAGS@
|
||||||
|
|
||||||
|
# C++ compilation flags
|
||||||
|
ZOLTAN_CXXFLAGS = @CXXFLAGS@
|
||||||
|
|
||||||
|
# linker flags
|
||||||
|
ZOLTAN_LDFLAGS = @LDFLAGS@
|
||||||
|
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Export the ranlib and archiver to be used
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
ZOLTAN_RANLIB = @RANLIB@
|
||||||
|
|
1073
thirdParty/Zoltan/Makefile.in
vendored
Normal file
1073
thirdParty/Zoltan/Makefile.in
vendored
Normal file
File diff suppressed because it is too large
Load Diff
94
thirdParty/Zoltan/README
vendored
Normal file
94
thirdParty/Zoltan/README
vendored
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
# @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
|
||||||
|
@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
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
INSTALLATION
|
||||||
|
------------
|
||||||
|
Instructions for building and installing Zoltan using CMAKE or Autotools
|
||||||
|
are at the following web site:
|
||||||
|
|
||||||
|
http://www.cs.sandia.gov/zoltan/ug_html/ug_usage.html
|
||||||
|
|
166
thirdParty/Zoltan/README.developer
vendored
Normal file
166
thirdParty/Zoltan/README.developer
vendored
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
# @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
|
||||||
|
lriesen@sandia.gov
|
||||||
|
November 29, 2010
|
||||||
|
|
||||||
|
Notes on typedefs that were just introduced in order to support 64-bit global counts and IDs:
|
||||||
|
|
||||||
|
ZOLTAN_ID_TYPE:
|
||||||
|
==============
|
||||||
|
|
||||||
|
A ZOLTAN_ID_TYPE is still the type that we use for global IDs passed in by the user. However now the ZOLTAN_ID_TYPE can be set at configuration time. It can be unsigned int, unsigned long, or unsigned long long. The default is unsigned int.
|
||||||
|
|
||||||
|
In CMake you can choose:
|
||||||
|
|
||||||
|
-D Zoltan_ENABLE_UINT_IDS:Bool=ON
|
||||||
|
-D Zoltan_ENABLE_ULONG_IDS:Bool=ON
|
||||||
|
-D Zoltan_ENABLE_ULLONG_IDS:Bool=ON
|
||||||
|
|
||||||
|
Using autoconf it's:
|
||||||
|
|
||||||
|
--with-id-type=uint
|
||||||
|
--with-id-type=ulong
|
||||||
|
--with-id-type=ullong
|
||||||
|
|
||||||
|
To print a ZOLTAN_ID_TYPE use ZOLTAN_ID_SPEC:
|
||||||
|
|
||||||
|
printf("GID: " ZOLTAN_ID_SPEC ", LID %d\n", my_gid, my_lid);
|
||||||
|
|
||||||
|
To send a ZOLTAN_ID_TYPE in an MPI message, use ZOLTAN_ID_MPI_TYPE:
|
||||||
|
|
||||||
|
MPI_Bcast(&gid, 1, ZOLTAN_ID_MPI_TYPE, 0, MPI_COMM_WORLD);
|
||||||
|
|
||||||
|
To silence compiler warnings, you can properly specify a constant of type ZOLTAN_ID_TYPE using ZOLTAN_ID_CONSTANT:
|
||||||
|
|
||||||
|
a = ZOLTAN_ID_CONSTANT(99)
|
||||||
|
|
||||||
|
ZOLTAN_GNO_TYPE:
|
||||||
|
===============
|
||||||
|
ZOLTAN_GNO_TYPE is a new typedef which Zoltan uses for global counts and for internal global IDs regardless of the definition of ZOLTAN_ID_TYPE. It is defined to be ssize_t, so it is signed and it will be 64 bits on a 64-bit architecture and 32 bits on a 32-bit architecture.
|
||||||
|
|
||||||
|
The MPI_Datatype for ZOLTAN_GNO_TYPE is returned by Zoltan_mpi_gno_type().
|
||||||
|
|
||||||
|
Any time that Zoltan creates a new problem from the application supplied problem it uses ZOLTAN_GNO_TYPE for the object IDs.
|
||||||
|
|
||||||
|
indextype and weighttype:
|
||||||
|
========================
|
||||||
|
|
||||||
|
At compile time, the Zoltan library defines indextype and weighttype to coincide with the third party graph libraries, if any, that it has been configured to work with.
|
||||||
|
|
||||||
|
The "indextype" will be the data type used by the third party library (TPL) for global IDs.
|
||||||
|
|
||||||
|
The "weighttype" will be the data type used by the TPL for weights.
|
||||||
|
|
||||||
|
Based on configure-time parameters, Zoltan will recognize and correcty set types for Metis, ParMetis, 32- or 64-bit Scotch or 32- or 64-bit PTScotch.
|
||||||
|
|
||||||
|
As a developer, it is important to know where the boundary is in the code for the use of Zoltan's types (ZOLTAN_ID_TYPE, ZOLTAN_GNO_TYPE, float) versus the types used by the TPL (indextype, weighttype). A simplified explanation is that indextype and weighttype are only used in source code that is in the "tpls" directory.
|
||||||
|
|
||||||
|
More specifically, it goes like this:
|
||||||
|
|
||||||
|
1. Zoltan calls the application query functions to obtain the graph using Zoltan's data types for IDs and weights.
|
||||||
|
|
||||||
|
2. Zoltan builds graph and matrix structures in Zoltan_ZG_Build using Zoltan's data types. (I suspect the "ZG" stands for "Zoltan Graph").
|
||||||
|
|
||||||
|
3. The graph is exported to the TPL data structures in Zoltan_ZG_Export. This is the point where arrays are converted if necessary to the data types used by the third party libraries. The C-structures with names like ZOLTAN_Third_* and others found in tpls/third_library.h use the indextype and weighttype data types.
|
||||||
|
|
||||||
|
4. Of course the TPL is called with indextype and weighttype objects.
|
||||||
|
|
||||||
|
5. Zoltan_Postprocess_Graph is called on the TPL structures and writes the ZOLTAN_Output_Part structure which uses Zoltan's data types.
|
||||||
|
|
||||||
|
6. Zoltan_Third_Export_User uses the ZOLTAN_Output_Part structure to write the part assignments to the structures returned to the user.
|
||||||
|
|
||||||
|
To print a indextype or weighttype use TPL_IDX_SPEC or TPL_WGT_SPEC respectively.
|
||||||
|
|
||||||
|
If the TPL weight type is a floating point type, then TPL_FLOAT_WEIGHT will be defined.
|
||||||
|
|
||||||
|
If the TPL weight type is an integral type, then TPL_INTEGRAL_WEIGHT will be defined.
|
||||||
|
|
||||||
|
Other useful TPL configuration macro definitions can be found in tpls/third_library_const.h.
|
||||||
|
|
||||||
|
Zoltan can be configured to use both Scotch and ParMetis as long as the 32-bit version of Scotch is used.
|
||||||
|
|
||||||
|
Assumptions:
|
||||||
|
===========
|
||||||
|
|
||||||
|
sizeof(ZOLTAN_GNO_TYPE) >= sizeof(ZOLTAN_ID_TYPE)
|
||||||
|
sizeof(ZOLTAN_ID_TYPE) >= sizeof(int)
|
||||||
|
|
||||||
|
Some changes to support 64-bit IDs:
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Zoltan_Map_Create() used to assume it was handling keys that were multiples of ZOLTAN_ID_TYPEs. Now you supply the number of bytes in the key, not the number of ZOLTAN_ID_TYPEs.
|
||||||
|
|
||||||
|
Because testing of this branch involves running large memory problems, I added the function Zoltan_write_linux_meminfo() which will write out the contents of /proc/meminfo on a Linux machine. The new function Zoltan_Memory_Get_Debug() returns the debug level set in mem.c by Zoltan_Memory_Debug(). zdrive has a new input option
|
||||||
|
|
||||||
|
zoltan memory debug level = n
|
||||||
|
|
||||||
|
which will set the debug level. Then after partitioning, zdrive checks the debug level and if there was an error and it is running on a linux machine it will dump out /proc/meminfo.
|
||||||
|
|
||||||
|
I modified the configure script to define HOST_LINUX on a linux machine.
|
||||||
|
|
||||||
|
I wrote three tests in tests/Large_Data that test PHG, RCB and RIB with arbitrarily large numbers of objects. They have signal handlers that call Zoltan_write_linux_meminfo() on a Linux machine. One test can be configured to use 64-bit IDs when it has less than 2*10^9 IDs.
|
||||||
|
|
||||||
|
Limitations:
|
||||||
|
===========
|
||||||
|
The reftree and oct methods have not been converted to support 64-bit global IDs and global numbers.
|
||||||
|
|
||||||
|
INTERESTING CHART:
|
||||||
|
=================
|
||||||
|
|
||||||
|
32 and 64 bit data models (ILP - integer/long/pointer):
|
||||||
|
|
||||||
|
type LP32 ILP32 ILP64 LLP64 LP64
|
||||||
|
|
||||||
|
char 8 8 8 8 8
|
||||||
|
short 16 16 16 16 16
|
||||||
|
_int32 32
|
||||||
|
int 16 32 64 32 32
|
||||||
|
long 32 32 64 32 64
|
||||||
|
long long 64
|
||||||
|
pointer 32 32 64 64 64
|
||||||
|
|
||||||
|
ILP32 is most widely used.
|
||||||
|
LP64 is most widely used.
|
||||||
|
|
||||||
|
LLP64 is ILP32 with new 64 bit int added to it - used for Win64.
|
38
thirdParty/Zoltan/README.md
vendored
Normal file
38
thirdParty/Zoltan/README.md
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Zoltan
|
||||||
|
Zoltan Dynamic Load Balancing and Graph Algorithm Toolkit -- Distribution site
|
||||||
|
|
||||||
|
The most up-to-date version of Zoltan is in the Trilinos framework at https://github.com/trilinos/Trilinos.
|
||||||
|
|
||||||
|
This site provides stand-alone releases of Zoltan, separate from Trilinos: https://github.com/sandialabs/Zoltan/releases. Stand-alone releases of Zoltan may lag the Trilinos repo code.
|
||||||
|
|
||||||
|
You can download individual releases of Zoltan from this site, or clone the Trilinos repository
|
||||||
|
https://github.com/trilinos/Trilinos to get the most up-to-date version of Zoltan. Individual releases are tarballs that can be unzipped and built with autotools/make.
|
||||||
|
|
||||||
|
Trilinos clones include Zoltan in directory Trilinos/packages/zoltan. In this directory, you can
|
||||||
|
build Zoltan separately from Trilinos using autotools/make. Or in the Trilinos repository,
|
||||||
|
you can build Zoltan using Trilinos' cmake system.
|
||||||
|
|
||||||
|
The main Zoltan page is https://sandialabs.github.io/Zoltan/
|
||||||
|
|
||||||
|
See https://sandialabs.github.io/Zoltan/ug_html/ug_usage.html
|
||||||
|
for details on building Zoltan.
|
||||||
|
|
||||||
|
Release history: https://sandialabs.github.io/Zoltan/ug_html/ug_release.html
|
||||||
|
* Version 3.90 (4/08/21; as in Trilinos v13; d328e0e2a8a5c48a4e01d6541cd8c0eb7f364823)
|
||||||
|
* Version 3.83 (1/28/16; as in Trilinos v12.6; aaf328db7e43001ee2d3148f72f12147e51c3293)
|
||||||
|
* Version 3.82 (5/1/15; as in Trilinos v12)
|
||||||
|
* Version 3.81 (11/06/14; as in Trilinos v11.12.2)
|
||||||
|
* Version 3.8 (10/28/13; as in Trilinos v10.11)
|
||||||
|
* Version 3.6 (11/2/11; as in Trilinos v10.8)
|
||||||
|
* Version 3.501 (5/12/11; as in Trilinos v10.6 with additions)
|
||||||
|
* Version 3.3 (7/31/10; as in Trilinos v10.4)
|
||||||
|
* Version 3.2 (10/5/09)
|
||||||
|
* Version 3.1 (9/30/08)
|
||||||
|
* Version 3.0 (5/30/07)
|
||||||
|
* Version 2.1 (10/05/06)
|
||||||
|
* Version 2.0 (7/17/06)
|
||||||
|
* Version 1.5 (5/29/03)
|
||||||
|
* Version 1.4 (6/18/02)
|
||||||
|
* Version 1.3 (3/27/02) -- the Original
|
||||||
|
|
||||||
|
Questions? Email zoltan-dev@software.sandia.gov
|
60
thirdParty/Zoltan/ReleaseNotes.txt
vendored
Normal file
60
thirdParty/Zoltan/ReleaseNotes.txt
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
Zoltan release notes for Trilinos v12.8
|
||||||
|
|
||||||
|
Improved robustness of RCB partitioner for problems where many objects have
|
||||||
|
weight = 0 (e.g., PIC codes). Convergence is faster and the stopping
|
||||||
|
criteria are more robust.
|
||||||
|
|
||||||
|
Fixed bug that occurred when RETURN_LIST=PARTS and (Num_GID > 1 or Num_LID > 1);
|
||||||
|
GIDs and LIDs are now copied correctly into return lists.
|
||||||
|
|
||||||
|
Fixed a bug related to struct padding in the siMPI serial MPI interface.
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Zoltan release notes for Trilinos v12.6
|
||||||
|
|
||||||
|
Minor code cleanup and bug fixes.
|
||||||
|
|
||||||
|
New Zoltan_Get_Fn interface returning pointers to callback functions.
|
||||||
|
See zoltan/src/include/zoltan.h for details.
|
||||||
|
|
||||||
|
Closest stand-alone Zoltan release is v3.83.
|
||||||
|
http://www.cs.sandia.gov/Zoltan
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Zoltan release notes for Trilinos v11.8
|
||||||
|
|
||||||
|
Revised Scotch TPL specification in Trilinos' CMake environment to link
|
||||||
|
with all libraries needed by Scotch v6.
|
||||||
|
|
||||||
|
Fixed bug in interface to ParMETIS v4 when multiple vertex weights are used.
|
||||||
|
Fixed bug in interface to Scotch when some processor has no vertices.
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Zoltan release notes for Trilinos v11.
|
||||||
|
|
||||||
|
Highlights are listed below; for more details, see
|
||||||
|
Trilinos/packages/zoltan/doc/Zoltan_html/ug_html/ug_release.html .
|
||||||
|
|
||||||
|
- Zoltan is now released under Trilinos' BSD license.
|
||||||
|
|
||||||
|
- The following Zoltan features are no longer supported in Trilinos v11:
|
||||||
|
+ Zoltan v1 interface (as described in Zoltan include file lbi_const.h)
|
||||||
|
+ Partitioning method OCTPART: use partitioning method HSFC instead.
|
||||||
|
|
||||||
|
|
||||||
|
- Hierarchical partitioning received several performance, interface and
|
||||||
|
testing improvements. An easier-to-use interface has been
|
||||||
|
added using simple parameters (HIER_ASSIST, PLATFORM_NAME, TOPOLOGY)
|
||||||
|
instead of callback functions; the callback function interface is still
|
||||||
|
supported.
|
||||||
|
|
||||||
|
- Memory usage in Zoltan Distributed Data Directories is improved, leading to
|
||||||
|
faster execution times for data directories and hierarchical partitioning.
|
||||||
|
|
||||||
|
- Compilation with gcc 4.7 is now supported.
|
||||||
|
|
||||||
|
- Zoltan supports PT-Scotch v5.1.12 and ParMETIS v4, as well as some older
|
||||||
|
versions of these TPLs.
|
31
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_gid_64_only
vendored
Executable file
31
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_gid_64_only
vendored
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/csh
|
||||||
|
# Sample script for building using CMAKE on linux workstation octopi.
|
||||||
|
# 64-bit, Zoltan only.
|
||||||
|
|
||||||
|
# Clean up the mess from previous configurations.
|
||||||
|
/bin/rm -r cmake* CMake* CPack* CTest* Dart* Trilinos* Testing packages Makefile OUT*
|
||||||
|
|
||||||
|
cmake \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:FILEPATH="/home/lriesen/projects/Trilinos/build" \
|
||||||
|
-D TPL_ENABLE_MPI:BOOL=ON \
|
||||||
|
-D CMAKE_C_FLAGS:STRING="-m64 -g -DZOLTAN_ID_TYPE_LONG -std=c99" \
|
||||||
|
-D CMAKE_CXX_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_Fortran_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||||
|
-D MPIEXEC_MAX_NUMPROCS:STRING=11 \
|
||||||
|
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
|
||||||
|
-D Trilinos_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Trilinos_VERBOSE_CONFIGURE:BOOL=ON \
|
||||||
|
-D Trilinos_ENABLE_Zoltan:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_TESTS:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_ParMETIS:BOOL=ON \
|
||||||
|
-D ParMETIS_INCLUDE_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/all/src/ParMETIS3_1" \
|
||||||
|
-D ParMETIS_LIBRARY_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/ParMETIS3_1" \
|
||||||
|
-D Zoltan_ENABLE_Scotch:BOOL=OFF \
|
||||||
|
-D Zoltan_ENABLE_PaToH:BOOL=OFF \
|
||||||
|
.. |& tee OUTPUT.CMAKE
|
||||||
|
|
||||||
|
make |& tee OUTPUT.MAKE
|
||||||
|
make install |& tee OUTPUT.INSTALL
|
||||||
|
|
36
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_only
vendored
Executable file
36
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_only
vendored
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/csh
|
||||||
|
# Sample script for building using CMAKE on linux workstation octopi.
|
||||||
|
# 64-bit, Zoltan only.
|
||||||
|
# Run in Trilinos/Obj_cmake.
|
||||||
|
|
||||||
|
# Clean up the mess from previous configurations.
|
||||||
|
/bin/rm -r cmake* CMake* CPack* CTest* Dart* Trilinos* Testing packages Makefile
|
||||||
|
|
||||||
|
cmake \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:FILEPATH="/Net/local/homes/kddevin/code/trilinos/Obj_cmake" \
|
||||||
|
-D TPL_ENABLE_MPI:BOOL=ON \
|
||||||
|
-D CMAKE_C_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_CXX_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_Fortran_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||||
|
-D MPI_EXEC_MAX_NUMPROCS:STRING=11 \
|
||||||
|
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
|
||||||
|
-D Trilinos_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Trilinos_VERBOSE_CONFIGURE:BOOL=ON \
|
||||||
|
-D Trilinos_ENABLE_Zoltan:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_TESTS:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_ParMETIS:BOOL=ON \
|
||||||
|
-D ParMETIS_INCLUDE_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/all/src/ParMETIS3_1" \
|
||||||
|
-D ParMETIS_LIBRARY_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/ParMETIS3_1" \
|
||||||
|
-D Zoltan_ENABLE_Scotch:BOOL=ON \
|
||||||
|
-D Scotch_INCLUDE_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/all/src/Scotch5" \
|
||||||
|
-D Scotch_LIBRARY_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/Scotch5" \
|
||||||
|
-D Zoltan_ENABLE_PaToH:BOOL=ON \
|
||||||
|
-D PaToH_LIBRARY_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/linux64/lib" \
|
||||||
|
-D PaToH_INCLUDE_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/linux64/PaToH" \
|
||||||
|
.. |& tee OUTPUT.CMAKE
|
||||||
|
|
||||||
|
make |& tee OUTPUT.MAKE
|
||||||
|
make install |& tee OUTPUT.INSTALL
|
||||||
|
|
42
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_only_purify
vendored
Executable file
42
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_only_purify
vendored
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/csh
|
||||||
|
# Sample script for building using CMAKE, LAM, and purify on octopi.
|
||||||
|
# 64-bit, Zoltan only.
|
||||||
|
# Run in Trilinos/Obj_pure.
|
||||||
|
|
||||||
|
# Clean up the mess from previous configurations.
|
||||||
|
/bin/rm -r cmake* CMake* CPack* CTest* Dart* Trilinos* Testing packages Makefile OUTPUT* include lib install*
|
||||||
|
set MPICCEXTRACOMP="`/opt/lam714-gcc346-pure/bin/mpicc --showme:compile`"
|
||||||
|
set MPICXXEXTRACOMP="`/opt/lam714-gcc346-pure/bin/mpiCC --showme:compile`"
|
||||||
|
set MPIEXTRALINK="`/opt/lam714-gcc346-pure/bin/mpiCC --showme:link`"
|
||||||
|
set PURIFY="/usr/local/rational/releases/PurifyPlus.7.0/i386_linux2/bin/purify"
|
||||||
|
set GCC="/usr/bin/gcc346"
|
||||||
|
set GCXX="/usr/bin/g++346"
|
||||||
|
|
||||||
|
/home/kddevin/cmake/bin/cmake \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:FILEPATH="/Net/local/homes/kddevin/code/Trilinos/Obj_pure" \
|
||||||
|
-D TPL_ENABLE_MPI:BOOL=ON \
|
||||||
|
-D MPI_USE_COMPILER_WRAPPERS:BOOL=OFF \
|
||||||
|
-D MPI_BIN_DIR:STRING="/opt/lam714-gcc346-pure/bin" \
|
||||||
|
-D CMAKE_C_COMPILER:STRING="$PURIFY" \
|
||||||
|
-D CMAKE_C_FLAGS:STRING="-best-effort -follow-child-processes=yes -cache-dir=/tmp/purify -chain-length=20 $GCC -m64 -g $MPICCEXTRACOMP" \
|
||||||
|
-D CMAKE_CXX_COMPILER:STRING="$PURIFY" \
|
||||||
|
-D CMAKE_CXX_FLAGS:STRING="-best-effort -follow-child-processes=yes -cache-dir=/tmp/purify -chain-length=20 $GCXX -m64 -g $MPICXXEXTRACOMP" \
|
||||||
|
-D Trilinos_EXTRA_LINK_FLAGS:STRING="$MPIEXTRALINK" \
|
||||||
|
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||||
|
-D MPI_EXEC_MAX_NUMPROCS:STRING=11 \
|
||||||
|
-D Trilinos_ENABLE_Fortran:BOOL=OFF \
|
||||||
|
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
|
||||||
|
-D Trilinos_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Trilinos_VERBOSE_CONFIGURE:BOOL=ON \
|
||||||
|
-D Trilinos_ENABLE_Zoltan:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_EXAMPLES:BOOL=OFF \
|
||||||
|
-D Zoltan_ENABLE_TESTS:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_ParMETIS:BOOL=ON \
|
||||||
|
-D ParMETIS_LIBRARY_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/linux64/lib/lam/ParMETIS3" \
|
||||||
|
-D ParMETIS_INCLUDE_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/all/src/ParMETIS3" \
|
||||||
|
-D Zoltan_ENABLE_Scotch:BOOL=ON \
|
||||||
|
-D Scotch_LIBRARY_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/linux64/lib/lam/Scotch5" \
|
||||||
|
-D Scotch_INCLUDE_DIRS:FILEPATH="/Net/local/proj/zoltan/arch/all/src/Scotch5" \
|
||||||
|
.. |& tee OUTPUT.CMAKE
|
||||||
|
|
||||||
|
make |& tee OUTPUT.MAKE
|
29
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_only_serial
vendored
Executable file
29
thirdParty/Zoltan/SampleCmakeScripts/linux_zoltan_only_serial
vendored
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/csh
|
||||||
|
# Sample script for building in serial mode using CMAKE on linux machine godel.
|
||||||
|
# 64-bit, Zoltan only.
|
||||||
|
# Run in Trilinos/Obj_cmake.
|
||||||
|
|
||||||
|
# Clean up the mess from previous configurations.
|
||||||
|
/bin/rm -r cmake* CMake* CPack* CTest* Dart* Trilinos* Testing packages Makefile
|
||||||
|
|
||||||
|
cmake \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:FILEPATH="/home/kddevin/code/Trilinos/Obj_cmake_serial" \
|
||||||
|
-D TPL_ENABLE_MPI:BOOL=OFF \
|
||||||
|
-D CMAKE_C_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_CXX_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_Fortran_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||||
|
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
|
||||||
|
-D Trilinos_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Trilinos_VERBOSE_CONFIGURE:BOOL=ON \
|
||||||
|
-D Trilinos_ENABLE_Zoltan:BOOL=ON \
|
||||||
|
-D Trilinos_EXTRA_LINK_FLAGS:STRING="-lsimpi" \
|
||||||
|
-D Zoltan_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_TESTS:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_ParMETIS:BOOL=ON \
|
||||||
|
-D ParMETIS_INCLUDE_DIRS:FILEPATH="/home/kddevin/code/ParMETIS3_1_siMPI" \
|
||||||
|
-D ParMETIS_LIBRARY_DIRS:FILEPATH="/home/kddevin/code/ParMETIS3_1_siMPI" \
|
||||||
|
.. |& tee OUTPUT.CMAKE
|
||||||
|
|
||||||
|
make |& tee OUTPUT.MAKE
|
||||||
|
make install |& tee OUTPUT.INSTALL
|
57
thirdParty/Zoltan/SampleCmakeScripts/mac_osX_zoltan_only
vendored
Executable file
57
thirdParty/Zoltan/SampleCmakeScripts/mac_osX_zoltan_only
vendored
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#!
|
||||||
|
# Sample script for building using CMAKE on Karen's Mac OS X system.
|
||||||
|
# 64-bit, Zoltan only.
|
||||||
|
# TPLs = ParMETIS, Scotch and PaToH.
|
||||||
|
# Run in Trilinos/Obj_cmake.
|
||||||
|
|
||||||
|
# Clean up the mess from previous configurations.
|
||||||
|
/bin/rm -r cmake* CMake* CPack* CTest* Dart* Trilinos* Testing packages Makefile
|
||||||
|
|
||||||
|
setenv F77 /Users/kddevin/code/lib-m64/lam-7.1.4/bin/mpif77
|
||||||
|
|
||||||
|
cmake \
|
||||||
|
-D CMAKE_INSTALL_PREFIX:FILEPATH="/Users/kddevin/code/trilinos/Obj_cmake" \
|
||||||
|
-D TPL_ENABLE_MPI:BOOL=ON \
|
||||||
|
-D CMAKE_C_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_CXX_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_Fortran_FLAGS:STRING="-m64 -g" \
|
||||||
|
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
|
||||||
|
-D MPI_EXEC_MAX_NUMPROCS:STRING=11 \
|
||||||
|
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
|
||||||
|
-D Trilinos_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Trilinos_VERBOSE_CONFIGURE:BOOL=ON \
|
||||||
|
-D Trilinos_ENABLE_Zoltan:BOOL=ON \
|
||||||
|
-D Trilinos_EXTRA_LINK_FLAGS:STRING="-framework vecLib" \
|
||||||
|
-D Zoltan_ENABLE_EXAMPLES:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_TESTS:BOOL=ON \
|
||||||
|
-D Zoltan_ENABLE_ParMETIS:BOOL=ON \
|
||||||
|
-D ParMETIS_INCLUDE_DIRS:FILEPATH="/Users/kddevin/code/lib-m64/ParMETIS3_1" \
|
||||||
|
-D ParMETIS_LIBRARY_DIRS:FILEPATH="/Users/kddevin/code/lib-m64/ParMETIS3_1" \
|
||||||
|
-D Zoltan_ENABLE_Scotch:BOOL=ON \
|
||||||
|
-D Scotch_INCLUDE_DIRS:FILEPATH="/Users/kddevin/code/lib-m64/scotch_5.1/include" \
|
||||||
|
-D Scotch_LIBRARY_DIRS:FILEPATH="/Users/kddevin/code/lib-m64/scotch_5.1/lib" \
|
||||||
|
-D Zoltan_ENABLE_PaToH:BOOL=ON \
|
||||||
|
-D PaToH_INCLUDE_DIRS:FILEPATH="/Users/kddevin/code/lib-m64/PaToH/dist" \
|
||||||
|
-D PaToH_LIBRARY_DIRS:FILEPATH="/Users/kddevin/code/lib-m64/PaToH/dist" \
|
||||||
|
.. |& tee OUTPUT.CMAKE
|
||||||
|
|
||||||
|
make |& tee OUTPUT.MAKE
|
||||||
|
make install |& tee OUTPUT.INSTALL
|
||||||
|
|
||||||
|
#Other useful flags.
|
||||||
|
#-D Trilinos_ENABLE_Epetra:BOOL=ON \
|
||||||
|
#-D Trilinos_ENABLE_Tpetra:BOOL=ON \
|
||||||
|
#-D Trilinos_ENABLE_Isorropia:BOOL=ON \
|
||||||
|
#-D Trilinos_ENABLE_EpetraExt:BOOL=ON \
|
||||||
|
#-D Trilinos_ENABLE_Fortran:BOOL=OFF \
|
||||||
|
#-D MPI_EXTRA_LIBRARY:FILEPATH="" \
|
||||||
|
#-D CMAKE_CXX_COMPILER:FILEPATH="mpic++" \
|
||||||
|
#-D CMAKE_C_COMPILER:FILEPATH="mpicc" \
|
||||||
|
|
||||||
|
# NOTE: I hacked my version of CMAKE, as it had errors trying to find
|
||||||
|
# install_name_tool. I changed the following file to check for
|
||||||
|
# CMAKE_INSTALL_NAME_TOOL before running FIND_PROGRAM to find it.
|
||||||
|
# I don't know why it had problems only with install_name_tool, as the
|
||||||
|
# linker, ranlib, etc., were found with no difficulty.
|
||||||
|
# /Applications/CMake\ 2.6-2.app/Contents/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake
|
||||||
|
|
5
thirdParty/Zoltan/SampleConfigurationScripts/linux_trilinos_runtests
vendored
Executable file
5
thirdParty/Zoltan/SampleConfigurationScripts/linux_trilinos_runtests
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/tcsh
|
||||||
|
which lamboot
|
||||||
|
lamboot
|
||||||
|
make runtests-mpi TRILINOS_MPI_GO="'mpirun -np '"
|
||||||
|
|
34
thirdParty/Zoltan/SampleConfigurationScripts/linux_with_purify_zoltan_only
vendored
Executable file
34
thirdParty/Zoltan/SampleConfigurationScripts/linux_with_purify_zoltan_only
vendored
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
# Script for building Zoltan with purify on linux workstation octopi
|
||||||
|
# with openmpi.
|
||||||
|
# This is a 64-bit installation.
|
||||||
|
|
||||||
|
/bin/rm -r Makefile Makefile.export.zoltan OUTPUT.C OUTPUT.I OUTPUT.M config.cache config.log config.status* example/ include/ lib/ siMPI/ src/
|
||||||
|
|
||||||
|
set path=(/usr/local/bin $path)
|
||||||
|
setenv PURE_CC "purify -best-effort -follow-child-processes=yes -cache-dir=/tmp/purify -chain-length=20"
|
||||||
|
setenv CC "$PURE_CC gcc34 -Wall -Werror-implicit-function-declaration"
|
||||||
|
setenv CXX "$PURE_CC g++34 -Wall -Werror-implicit-function-declaration"
|
||||||
|
setenv CFLAGS "-m64 -g"
|
||||||
|
setenv CXXFLAGS "-m64 -g"
|
||||||
|
setenv CPPFLAGS "-m64 -g"
|
||||||
|
setenv FCFLAGS "-m64 -g"
|
||||||
|
setenv MPIINC `mpicc --showme:compile`
|
||||||
|
setenv MPILIB `mpicc --showme:link`
|
||||||
|
|
||||||
|
../configure -C \
|
||||||
|
--prefix=/Net/local/homes/kddevin/code/zoltan_v3.2/Obj_pure \
|
||||||
|
--enable-mpi \
|
||||||
|
--with-mpi-compilers=no \
|
||||||
|
--disable-fortran \
|
||||||
|
--with-gnumake \
|
||||||
|
--disable-zoltan-cppdriver \
|
||||||
|
--with-libs="$MPILIB" \
|
||||||
|
--with-incdirs="$MPIINC" \
|
||||||
|
|& tee OUTPUT.C
|
||||||
|
make everything |& tee OUTPUT.M
|
||||||
|
make install |& tee OUTPUT.I
|
||||||
|
|
||||||
|
# --with-parmetis \
|
||||||
|
# --with-parmetis-incdir="/Net/local/proj/zoltan/arch/all/src/ParMETIS3" \
|
||||||
|
# --with-parmetis-libdir="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/ParMETIS3_1" \
|
||||||
|
|
15
thirdParty/Zoltan/SampleConfigurationScripts/linux_zoltan_dist
vendored
Executable file
15
thirdParty/Zoltan/SampleConfigurationScripts/linux_zoltan_dist
vendored
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#Script for building the Zoltan tarball on a 64-bit Linux workstation
|
||||||
|
#with OpenMPI.
|
||||||
|
#This script builds the Zoltan tarball from the Zoltan package directory.
|
||||||
|
#Assuming running script from
|
||||||
|
#/Net/local/homes/kddevin/code/zoltan_v3.1/Obj_DIST.
|
||||||
|
set path=(/usr/local/bin $path)
|
||||||
|
setenv CFLAGS -m64
|
||||||
|
setenv CXXFLAGS -m64
|
||||||
|
setenv CPPFLAGS -m64
|
||||||
|
setenv FCFLAGS -m64
|
||||||
|
|
||||||
|
../configure -C \
|
||||||
|
--prefix=/Net/local/homes/kddevin/code/zoltan_v3.1/OBJ_DIST \
|
||||||
|
--with-gnumake |& tee OUTPUT.C
|
||||||
|
make dist |& tee OUTPUT.D
|
22
thirdParty/Zoltan/SampleConfigurationScripts/linux_zoltan_only
vendored
Executable file
22
thirdParty/Zoltan/SampleConfigurationScripts/linux_zoltan_only
vendored
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#Script for building Zoltan only on a 64-bit Linux workstation
|
||||||
|
#with OpenMPI.
|
||||||
|
#This script builds only Zoltan from the Zoltan package directory.
|
||||||
|
#Assuming running script from
|
||||||
|
#/Net/local/homes/kddevin/code/zoltan_v3.1/Obj_linux64.
|
||||||
|
set path=(/usr/local/bin $path)
|
||||||
|
setenv CFLAGS -m64
|
||||||
|
setenv CXXFLAGS -m64
|
||||||
|
setenv CPPFLAGS -m64
|
||||||
|
setenv FCFLAGS -m64
|
||||||
|
|
||||||
|
../configure -C \
|
||||||
|
--prefix=/Net/local/homes/kddevin/code/zoltan_v3.1/Obj_linux64 \
|
||||||
|
--with-parmetis \
|
||||||
|
--with-parmetis-incdir="/Net/local/proj/zoltan/arch/all/src/ParMETIS3_1" \
|
||||||
|
--with-parmetis-libdir="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/ParMETIS3_1" \
|
||||||
|
--with-scotch \
|
||||||
|
--with-scotch-incdir="/Net/local/proj/zoltan/arch/all/src/Scotch5" \
|
||||||
|
--with-scotch-libdir="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/Scotch5" \
|
||||||
|
--with-gnumake |& tee OUTPUT.C
|
||||||
|
make everything |& tee OUTPUT.M
|
||||||
|
make install |& tee OUTPUT.I
|
25
thirdParty/Zoltan/SampleConfigurationScripts/mac_osX_no_fortran
vendored
Executable file
25
thirdParty/Zoltan/SampleConfigurationScripts/mac_osX_no_fortran
vendored
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#Script for building Zoltan and Isorropia on a 64-bit Mac OS X
|
||||||
|
#with LAM MPI on a machine with NO FORTRAN COMPILER. Note the option
|
||||||
|
#--disable-fortran.
|
||||||
|
#This script builds only Zoltan but builds it from the top-level Trilinos
|
||||||
|
#directory.
|
||||||
|
#Assuming running script from /Users/kddevin/code/trilinos_v9.0/Obj_mac64.
|
||||||
|
set path=(/Users/kddevin/code/lib-m64/lam-7.1.4/bin $path)
|
||||||
|
setenv CC /Users/kddevin/code/lib-m64/lam-7.1.4/bin/mpicc
|
||||||
|
setenv CXX /Users/kddevin/code/lib-m64/lam-7.1.4/bin/mpic++
|
||||||
|
setenv FC /Users/kddevin/code/lib-m64/lam-7.1.4/bin/mpif77
|
||||||
|
setenv CFLAGS -m64
|
||||||
|
setenv CXXFLAGS -m64
|
||||||
|
setenv CPPFLAGS -m64
|
||||||
|
setenv FCFLAGS -m64
|
||||||
|
|
||||||
|
../configure -C \
|
||||||
|
--prefix=/Users/kddevin/code/trilinos_v9.0/Obj_mac64 \
|
||||||
|
--with-parmetis \
|
||||||
|
--with-parmetis-incdir="/Users/kddevin/code/lib-m64/ParMETIS3_1" \
|
||||||
|
--with-parmetis-libdir="/Users/kddevin/code/lib-m64/ParMETIS3_1" \
|
||||||
|
--with-libs="-framework vecLib" \
|
||||||
|
--with-gnumake \
|
||||||
|
--with-cxxflags="-DLAM_BUILDING" |& tee OUTPUT.C
|
||||||
|
make everything |& tee OUTPUT.M
|
||||||
|
make install |& tee OUTPUT.I
|
4
thirdParty/Zoltan/SampleConfigurationScripts/mac_osX_zoltan_dist
vendored
Executable file
4
thirdParty/Zoltan/SampleConfigurationScripts/mac_osX_zoltan_dist
vendored
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
# Since Mac OS X is case-insensitive, autoconf produces a bad Makefile.in
|
||||||
|
# Don't use Mac OS X until this bug is fixed.
|
||||||
|
|
||||||
|
echo "Due to bug in autoconf Makefile.in, do not make dist on a case-insensitive system."
|
18
thirdParty/Zoltan/SampleConfigurationScripts/mac_osX_zoltan_only
vendored
Executable file
18
thirdParty/Zoltan/SampleConfigurationScripts/mac_osX_zoltan_only
vendored
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#Script for building Zoltan only on a 64-bit Mac OS X with LAM mpi
|
||||||
|
#Assuming running this script from /Users/kddevin/code/zoltan_v3.1/OBJ_MAC64.
|
||||||
|
|
||||||
|
setenv CFLAGS -m64
|
||||||
|
setenv CXXFLAGS -m64
|
||||||
|
../configure \
|
||||||
|
--prefix=/Users/kddevin/code/zoltan_v3.1/OBJ_MAC64 \
|
||||||
|
--with-gnumake \
|
||||||
|
--with-parmetis \
|
||||||
|
--with-parmetis-incdir="/Users/kddevin/code/lib-m64/ParMETIS3_1" \
|
||||||
|
--with-parmetis-libdir="/Users/kddevin/code/lib-m64/ParMETIS3_1" \
|
||||||
|
--with-patoh \
|
||||||
|
--with-patoh-incdir="/Users/kddevin/code/lib-m64/PaToH/dist" \
|
||||||
|
--with-patoh-libdir="/Users/kddevin/code/lib-m64/PaToH/dist" \
|
||||||
|
|& tee OUTPUT.C
|
||||||
|
make everything |& tee OUTPUT.M
|
||||||
|
make install |& tee OUTPUT.I
|
||||||
|
|
2
thirdParty/Zoltan/VERSION
vendored
Normal file
2
thirdParty/Zoltan/VERSION
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
To determine the exact version number, type
|
||||||
|
grep ZOLTAN_VERSION_NUMBER src/include/zoltan.h
|
3
thirdParty/Zoltan/bootstrap-local
vendored
Executable file
3
thirdParty/Zoltan/bootstrap-local
vendored
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#! /bin/csh
|
||||||
|
setenv AUTOHEADER 'echo SkippingAutoHeader'
|
||||||
|
autoreconf -i -f -v
|
18
thirdParty/Zoltan/buildlib
vendored
Executable file
18
thirdParty/Zoltan/buildlib
vendored
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
rm -rf build/ include/ lib/
|
||||||
|
mkdir build
|
||||||
|
|
||||||
|
cd build
|
||||||
|
|
||||||
|
../configure \
|
||||||
|
--prefix=$HOME/PhasicFlow/phasicFlow-v-1.0/thirdParty/Zoltan/ \
|
||||||
|
--with-gnumake \
|
||||||
|
--with-id-type=uint
|
||||||
|
--disable-tests
|
||||||
|
--disable-examples
|
||||||
|
|
||||||
|
make everything -j4
|
||||||
|
make install
|
||||||
|
|
||||||
|
cd ../
|
8
thirdParty/Zoltan/cmake/Dependencies.cmake
vendored
Normal file
8
thirdParty/Zoltan/cmake/Dependencies.cmake
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
SET(LIB_REQUIRED_DEP_PACKAGES)
|
||||||
|
SET(LIB_OPTIONAL_DEP_PACKAGES)
|
||||||
|
SET(TEST_REQUIRED_DEP_PACKAGES)
|
||||||
|
SET(TEST_OPTIONAL_DEP_PACKAGES)
|
||||||
|
SET(LIB_REQUIRED_DEP_TPLS)
|
||||||
|
SET(LIB_OPTIONAL_DEP_TPLS MPI METIS ParMETIS PaToH Scotch Zlib CCOLAMD OVIS)
|
||||||
|
SET(TEST_REQUIRED_DEP_TPLS)
|
||||||
|
SET(TEST_OPTIONAL_DEP_TPLS)
|
74
thirdParty/Zoltan/cmake/Zoltan_config.h.in
vendored
Normal file
74
thirdParty/Zoltan/cmake/Zoltan_config.h.in
vendored
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
/* src/include/Zoltan_config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* KDD Copied F77 macros from packages/epetra/cmake/Epetra_config.h.in. */
|
||||||
|
/* Define to dummy `main' function (if any) required to link to the Fortran
|
||||||
|
libraries. */
|
||||||
|
#cmakedefine F77_DUMMY_MAIN
|
||||||
|
|
||||||
|
/* Define to a macro mangling the given C identifier (in lower and upper
|
||||||
|
case), which must not contain underscores, for linking with Fortran. */
|
||||||
|
#ifndef FC_FUNC
|
||||||
|
#define FC_FUNC@F77_FUNC@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* As FC_FUNC, but for C identifiers containing underscores. */
|
||||||
|
#ifndef FC_FUNC_
|
||||||
|
#define FC_FUNC_@F77_FUNC_@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define if F77 and FC dummy `main' functions are identical. */
|
||||||
|
#cmakedefine FC_DUMMY_MAIN_EQ_F77
|
||||||
|
|
||||||
|
/* ZOLTAN_ID_TYPE is unsigned int */
|
||||||
|
#cmakedefine UNSIGNED_INT_GLOBAL_IDS
|
||||||
|
|
||||||
|
/* ZOLTAN_ID_TYPE is unsigned long */
|
||||||
|
#cmakedefine UNSIGNED_LONG_GLOBAL_IDS
|
||||||
|
|
||||||
|
/* ZOLTAN_ID_TYPE is unsigned long long */
|
||||||
|
#cmakedefine UNSIGNED_LONG_LONG_GLOBAL_IDS
|
||||||
|
|
||||||
|
/* define if we want to use MPI */
|
||||||
|
#cmakedefine HAVE_MPI
|
||||||
|
|
||||||
|
/* Define if want to build with nemesis_exodus enabled */
|
||||||
|
#cmakedefine HAVE_NEMESIS_EXODUS
|
||||||
|
|
||||||
|
/* Define if want to build with parmetis enabled */
|
||||||
|
#cmakedefine HAVE_METIS
|
||||||
|
|
||||||
|
/* Define if want to build with parmetis enabled */
|
||||||
|
#cmakedefine HAVE_PARMETIS
|
||||||
|
|
||||||
|
/* Define if want to build with patoh enabled */
|
||||||
|
#cmakedefine HAVE_PATOH
|
||||||
|
|
||||||
|
/* Define if want to build with scotch enabled */
|
||||||
|
#cmakedefine HAVE_SCOTCH
|
||||||
|
|
||||||
|
/* Define if want to build with OVIS enabled */
|
||||||
|
#cmakedefine HAVE_OVIS
|
||||||
|
|
||||||
|
/* Define if want to build with OVIS enabled */
|
||||||
|
#cmakedefine HAVE_PURIFY
|
||||||
|
|
||||||
|
/* Define if DON'T want support for MPI TPL */
|
||||||
|
#ifndef HAVE_MPI
|
||||||
|
#define NO_MPI_TPL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define if want to build with zlib enabled */
|
||||||
|
#cmakedefine ZHAVE_GZIP
|
||||||
|
|
||||||
|
/* Use to have only filename when debugging memory */
|
||||||
|
#define SHORT_FILE
|
||||||
|
|
||||||
|
/* HUND support */
|
||||||
|
#cmakedefine HAVE_ZOLTAN_HUND
|
||||||
|
|
||||||
|
/* Revert to Old Hash function support */
|
||||||
|
#cmakedefine HAVE_ZOLTAN_KNUTH_HASH
|
||||||
|
|
||||||
|
#ifdef HAVE_ZOLTAN_HUND
|
||||||
|
#define CEDRIC_2D_PARTITIONS
|
||||||
|
#endif
|
50
thirdParty/Zoltan/config/ax_f90_module_case.m4
vendored
Normal file
50
thirdParty/Zoltan/config/ax_f90_module_case.m4
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
dnl Check case (upper or lower) of F90 module files.
|
||||||
|
dnl Also checks module suffix, but we return only ax_cv_f90_modulecase.
|
||||||
|
AC_DEFUN([AX_F90_MODULE_CASE],[
|
||||||
|
AC_CACHE_CHECK([fortran 90 module file suffix and case],
|
||||||
|
ax_cv_f90_modulecase,
|
||||||
|
[
|
||||||
|
rm -f conftest*
|
||||||
|
cat >conftest.f <<EOF
|
||||||
|
module conftest
|
||||||
|
integer n
|
||||||
|
parameter (n=1)
|
||||||
|
end module conftest
|
||||||
|
EOF
|
||||||
|
# SGI and absoft compilers generates module name in upper case!
|
||||||
|
testname="conftest"
|
||||||
|
modcase="lower"
|
||||||
|
echo "KDDKDD CASE 1" ${FC}
|
||||||
|
if ${FC} -c conftest.f > conftest.out 2>&1 ; then
|
||||||
|
FCMODSUFFIX=`ls conftest* | grep -v conftest.f | grep -v conftest.o`
|
||||||
|
echo "KDDKDD CASE 2" ${FCMODSUFFIX}
|
||||||
|
FCMODSUFFIX=`echo "${FCMODSUFFIX}" | sed -e 's/conftest\.//g'`
|
||||||
|
if test -z "${FCMODSUFFIX}" ; then
|
||||||
|
FCMODSUFFIX=`ls CONFTEST* 2>/dev/null \
|
||||||
|
| grep -v CONFTEST.f | grep -v CONFTEST.o`
|
||||||
|
FCMODSUFFIX=`echo "${FCMODSUFFIX}" | sed -e 's/CONFTEST\.//g'`
|
||||||
|
if test -n "${FCMODSUFFIX}" ; then
|
||||||
|
testname="CONFTEST"
|
||||||
|
modcase="upper"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -z "${FCMODSUFFIX}" ; then
|
||||||
|
AC_MSG_RESULT(unknown)
|
||||||
|
# Use mod if we can't figure it out
|
||||||
|
FCMODSUFFIX="mod"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(${FCMODSUFFIX})
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(unknown)
|
||||||
|
fi
|
||||||
|
#AC_SUBST(FCMODSUFFIX)
|
||||||
|
AC_MSG_CHECKING(for case of module names)
|
||||||
|
if test "${modcase}" = "lower" ; then
|
||||||
|
AC_MSG_RESULT(lower)
|
||||||
|
ax_cv_f90_modulecase="lower"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(upper)
|
||||||
|
ax_cv_f90_modulecase="upper"
|
||||||
|
fi
|
||||||
|
])])
|
67
thirdParty/Zoltan/config/ax_f90_module_flag.m4
vendored
Normal file
67
thirdParty/Zoltan/config/ax_f90_module_flag.m4
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.nongnu.org/autoconf-archive/ax_f90_module_flag.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_F90_MODULE_FLAG
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# Find Fortran 90 modules inclusion flag. The module inclusion flag is
|
||||||
|
# stored in the cached variable ax_f90_modflag. An error is triggered if
|
||||||
|
# the flag cannot be found. Supported are the -I GNU compilers flag, the
|
||||||
|
# -M SUN compilers flag, and the -p Absoft Pro Fortran compiler flag.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2009 Luc Maisonobe <luc@spaceroots.org>
|
||||||
|
# Copyright (c) 2009 Julian C. Cummings <cummings@cacr.caltech.edu>
|
||||||
|
# Copyright (c) 2009 Alexander Pletzer <pletzer@txcorp.com>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty provided the copyright notice
|
||||||
|
# and this notice are preserved.
|
||||||
|
|
||||||
|
AC_DEFUN([AX_F90_MODULE_FLAG],[
|
||||||
|
AC_CACHE_CHECK([fortran 90 modules inclusion flag],
|
||||||
|
ax_cv_f90_modflag,
|
||||||
|
[AC_LANG_PUSH(Fortran)
|
||||||
|
i=0
|
||||||
|
while test \( -f tmpdir_$i \) -o \( -d tmpdir_$i \) ; do
|
||||||
|
i=`expr $i + 1`
|
||||||
|
done
|
||||||
|
mkdir tmpdir_$i
|
||||||
|
cd tmpdir_$i
|
||||||
|
AC_COMPILE_IFELSE([
|
||||||
|
!234567
|
||||||
|
module conftest_module
|
||||||
|
contains
|
||||||
|
subroutine conftest_routine
|
||||||
|
write(*,'(a)') 'gotcha!'
|
||||||
|
end subroutine conftest_routine
|
||||||
|
end module conftest_module
|
||||||
|
],[],[])
|
||||||
|
cd ..
|
||||||
|
ax_cv_f90_modflag="not found"
|
||||||
|
for ax_flag in "-I " "-M" "-p"; do
|
||||||
|
if test "$ax_cv_f90_modflag" = "not found" ; then
|
||||||
|
ax_save_FCFLAGS="$FCFLAGS"
|
||||||
|
FCFLAGS="$ax_save_FCFLAGS ${ax_flag}tmpdir_$i"
|
||||||
|
AC_COMPILE_IFELSE([
|
||||||
|
!234567
|
||||||
|
program conftest_program
|
||||||
|
use conftest_module
|
||||||
|
call conftest_routine
|
||||||
|
end program conftest_program
|
||||||
|
],[ax_cv_f90_modflag="$ax_flag"],[])
|
||||||
|
FCFLAGS="$ax_save_FCFLAGS"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -fr tmpdir_$i
|
||||||
|
if test "$ax_cv_f90_modflag" = "not found" ; then
|
||||||
|
AC_MSG_ERROR([unable to find compiler flag for modules inclusion])
|
||||||
|
fi
|
||||||
|
AC_LANG_POP(Fortran)
|
||||||
|
])])
|
||||||
|
|
310
thirdParty/Zoltan/config/compile
vendored
Executable file
310
thirdParty/Zoltan/config/compile
vendored
Executable file
@ -0,0 +1,310 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2012-01-04.17; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
|
||||||
|
# Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
|
||||||
|
# We need space, tab and new line, in precisely that order. Quoting is
|
||||||
|
# there to prevent tools from complaining about whitespace usage.
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
|
file_conv=
|
||||||
|
|
||||||
|
# func_file_conv build_file lazy
|
||||||
|
# Convert a $build file to $host form and store it in $file
|
||||||
|
# Currently only supports Windows hosts. If the determined conversion
|
||||||
|
# type is listed in (the comma separated) LAZY, no conversion will
|
||||||
|
# take place.
|
||||||
|
func_file_conv ()
|
||||||
|
{
|
||||||
|
file=$1
|
||||||
|
case $file in
|
||||||
|
/ | /[!/]*) # absolute file, and not a UNC file
|
||||||
|
if test -z "$file_conv"; then
|
||||||
|
# lazily determine how to convert abs files
|
||||||
|
case `uname -s` in
|
||||||
|
MINGW*)
|
||||||
|
file_conv=mingw
|
||||||
|
;;
|
||||||
|
CYGWIN*)
|
||||||
|
file_conv=cygwin
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
file_conv=wine
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
case $file_conv/,$2, in
|
||||||
|
*,$file_conv,*)
|
||||||
|
;;
|
||||||
|
mingw/*)
|
||||||
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||||
|
;;
|
||||||
|
cygwin/*)
|
||||||
|
file=`cygpath -m "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
wine/*)
|
||||||
|
file=`winepath -w "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_wrapper cl arg...
|
||||||
|
# Adjust compile command to suit cl
|
||||||
|
func_cl_wrapper ()
|
||||||
|
{
|
||||||
|
# Assume a capable shell
|
||||||
|
lib_path=
|
||||||
|
shared=:
|
||||||
|
linker_opts=
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.[oO][bB][jJ])
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fo"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fe"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
-I*)
|
||||||
|
func_file_conv "${1#-I}" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l*)
|
||||||
|
lib=${1#-l}
|
||||||
|
found=no
|
||||||
|
save_IFS=$IFS
|
||||||
|
IFS=';'
|
||||||
|
for dir in $lib_path $LIB
|
||||||
|
do
|
||||||
|
IFS=$save_IFS
|
||||||
|
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||||
|
found=yes
|
||||||
|
set x "$@" "$dir/$lib.dll.lib"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/$lib.lib"; then
|
||||||
|
found=yes
|
||||||
|
set x "$@" "$dir/$lib.lib"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=$save_IFS
|
||||||
|
|
||||||
|
test "$found" != yes && set x "$@" "$lib.lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-L*)
|
||||||
|
func_file_conv "${1#-L}"
|
||||||
|
if test -z "$lib_path"; then
|
||||||
|
lib_path=$file
|
||||||
|
else
|
||||||
|
lib_path="$lib_path;$file"
|
||||||
|
fi
|
||||||
|
linker_opts="$linker_opts -LIBPATH:$file"
|
||||||
|
;;
|
||||||
|
-static)
|
||||||
|
shared=false
|
||||||
|
;;
|
||||||
|
-Wl,*)
|
||||||
|
arg=${1#-Wl,}
|
||||||
|
save_ifs="$IFS"; IFS=','
|
||||||
|
for flag in $arg; do
|
||||||
|
IFS="$save_ifs"
|
||||||
|
linker_opts="$linker_opts $flag"
|
||||||
|
done
|
||||||
|
IFS="$save_ifs"
|
||||||
|
;;
|
||||||
|
-Xlinker)
|
||||||
|
eat=1
|
||||||
|
linker_opts="$linker_opts $2"
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||||
|
func_file_conv "$1"
|
||||||
|
set x "$@" -Tp"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||||
|
func_file_conv "$1" mingw
|
||||||
|
set x "$@" "$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
if test -n "$linker_opts"; then
|
||||||
|
linker_opts="-link$linker_opts"
|
||||||
|
fi
|
||||||
|
exec "$@" $linker_opts
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
eat=
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file 'INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||||
|
func_cl_wrapper "$@" # Doesn't return...
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
# So we strip '-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no '-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# '.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
1522
thirdParty/Zoltan/config/config.guess
vendored
Executable file
1522
thirdParty/Zoltan/config/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1766
thirdParty/Zoltan/config/config.sub
vendored
Executable file
1766
thirdParty/Zoltan/config/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
688
thirdParty/Zoltan/config/depcomp
vendored
Executable file
688
thirdParty/Zoltan/config/depcomp
vendored
Executable file
@ -0,0 +1,688 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2011-12-04.11; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
|
||||||
|
# 2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by `PROGRAMS ARGS'.
|
||||||
|
object Object file output by `PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputting dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
cygpath_u="cygpath -u -f -"
|
||||||
|
if test "$depmode" = msvcmsys; then
|
||||||
|
# This is just like msvisualcpp but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvisualcpp
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = msvc7msys; then
|
||||||
|
# This is just like msvc7 but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvc7
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||||
|
## the command line argument order; so add the flags where they
|
||||||
|
## appear in depend2.am. Note that the slowdown incurred here
|
||||||
|
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||||
|
*) set fnord "$@" "$arg" ;;
|
||||||
|
esac
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
done
|
||||||
|
"$@"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say).
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||||
|
## The second -e expression handles DOS-style file names with drive letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the `deleted header file' problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" |
|
||||||
|
## Some versions of gcc put a space before the `:'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well. hp depmode also adds that space, but also prefixes the VPATH
|
||||||
|
## to the object. Take care to not repeat it in the output.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||||
|
tr '
|
||||||
|
' ' ' >> "$depfile"
|
||||||
|
echo >> "$depfile"
|
||||||
|
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> "$depfile"
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$base.u
|
||||||
|
tmpdepfile3=$dir.libs/$base.u
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$dir$base.u
|
||||||
|
tmpdepfile3=$dir$base.u
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
# Each line is of the form `foo.o: dependent.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||||
|
# That's a tab and a space in the [].
|
||||||
|
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
# The sourcefile does not contain any dependencies, so just
|
||||||
|
# store a dummy comment line, to avoid errors with the Makefile
|
||||||
|
# "include basename.Plo" scheme.
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
icc)
|
||||||
|
# Intel's C compiler understands `-MD -MF file'. However on
|
||||||
|
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||||
|
# ICC 7.0 will fill foo.d with something like
|
||||||
|
# foo.o: sub/foo.c
|
||||||
|
# foo.o: sub/foo.h
|
||||||
|
# which is wrong. We want:
|
||||||
|
# sub/foo.o: sub/foo.c
|
||||||
|
# sub/foo.o: sub/foo.h
|
||||||
|
# sub/foo.c:
|
||||||
|
# sub/foo.h:
|
||||||
|
# ICC 7.1 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using \ :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||||
|
sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp2)
|
||||||
|
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||||
|
# compilers, which have integrated preprocessors. The correct option
|
||||||
|
# to use with these is +Maked; it writes dependencies to a file named
|
||||||
|
# 'foo.d', which lands next to the object file, wherever that
|
||||||
|
# happens to be.
|
||||||
|
# Much of this is similar to the tru64 case; see comments there.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir.libs/$base.d
|
||||||
|
"$@" -Wc,+Maked
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
"$@" +Maked
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||||
|
# Add `dependent.h:' lines.
|
||||||
|
sed -ne '2,${
|
||||||
|
s/^ *//
|
||||||
|
s/ \\*$//
|
||||||
|
s/$/:/
|
||||||
|
p
|
||||||
|
}' "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in `foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||||
|
test "x$dir" = "x$object" && dir=
|
||||||
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# With Tru64 cc, shared objects can also be used to make a
|
||||||
|
# static library. This mechanism is used in libtool 1.4 series to
|
||||||
|
# handle both shared and static libraries in a single compilation.
|
||||||
|
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||||
|
#
|
||||||
|
# With libtool 1.5 this exception was removed, and libtool now
|
||||||
|
# generates 2 separate objects for the 2 libraries. These two
|
||||||
|
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||||
|
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.o.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
tmpdepfile4=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -eq 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||||
|
# That's a tab and a space in the [].
|
||||||
|
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
showIncludes=-Wc,-showIncludes
|
||||||
|
else
|
||||||
|
showIncludes=-showIncludes
|
||||||
|
fi
|
||||||
|
"$@" $showIncludes > "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||||
|
if test "$stat" = 0; then :
|
||||||
|
else
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The first sed program below extracts the file names and escapes
|
||||||
|
# backslashes for cygpath. The second sed program outputs the file
|
||||||
|
# name when reading, but also accumulates all include files in the
|
||||||
|
# hold buffer in order to output them again at the end. This only
|
||||||
|
# works with sed implementations that can handle large buffers.
|
||||||
|
sed < "$tmpdepfile" -n '
|
||||||
|
/^Note: including file: *\(.*\)/ {
|
||||||
|
s//\1/
|
||||||
|
s/\\/\\\\/g
|
||||||
|
p
|
||||||
|
}' | $cygpath_u | sort -u | sed -n '
|
||||||
|
s/ /\\ /g
|
||||||
|
s/\(.*\)/ \1 \\/p
|
||||||
|
s/.\(.*\) \\/\1:/
|
||||||
|
H
|
||||||
|
$ {
|
||||||
|
s/.*/ /
|
||||||
|
G
|
||||||
|
p
|
||||||
|
}' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7msys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for `:'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
tr ' ' '
|
||||||
|
' < "$tmpdepfile" | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no eat=no
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
if test $eat = yes; then
|
||||||
|
eat=no
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-arch)
|
||||||
|
eat=yes ;;
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
# makedepend may prepend the VPATH from the source file name to the object.
|
||||||
|
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||||
|
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||||
|
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||||
|
' | \
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove `-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E |
|
||||||
|
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||||
|
sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E 2>/dev/null |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||||
|
echo " " >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvcmsys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
88
thirdParty/Zoltan/config/generate-makeoptions.pl
vendored
Executable file
88
thirdParty/Zoltan/config/generate-makeoptions.pl
vendored
Executable file
@ -0,0 +1,88 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# This perl script graps a bunch of make macro definitions
|
||||||
|
# generated for Teuchos that can be used in other makefiles.
|
||||||
|
# This is dumped to stdout and can be redirected to build
|
||||||
|
# a makefile.
|
||||||
|
#
|
||||||
|
# Note, this script must be maintained to be current for
|
||||||
|
# the Teuchos makefile.
|
||||||
|
#
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
if( !((@ARGV) && scalar(@ARGV)==2) ) {
|
||||||
|
die "Error, this script takes two and only two arguments (makefile_name package_name).!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $makefile_name = shift;
|
||||||
|
my $package_name = shift;
|
||||||
|
|
||||||
|
#
|
||||||
|
# List the macros you want to grep and include in the output
|
||||||
|
#
|
||||||
|
my @macros =
|
||||||
|
(
|
||||||
|
"CC"
|
||||||
|
,"CXX"
|
||||||
|
,"F77"
|
||||||
|
,"FC"
|
||||||
|
,"CXXLD"
|
||||||
|
,"DEFS"
|
||||||
|
,"CPPFLAGS"
|
||||||
|
,"CFLAGS"
|
||||||
|
,"CXXFLAGS"
|
||||||
|
,"FFLAGS"
|
||||||
|
,"FCFLAGS"
|
||||||
|
,"LDFLAGS"
|
||||||
|
,"FLIBS"
|
||||||
|
,"BLAS_LIBS"
|
||||||
|
,"LAPACK_LIBS"
|
||||||
|
,"prefix"
|
||||||
|
,"AR"
|
||||||
|
,"ALTERNATE_AR"
|
||||||
|
,"libteuchos_a_AR"
|
||||||
|
,"RANLIB"
|
||||||
|
);
|
||||||
|
|
||||||
|
open FILE_IN, "<$makefile_name" || die "The file $makefile_name could not be opended for input\n";
|
||||||
|
my @makefile_name_array = <FILE_IN>;
|
||||||
|
close FILE_IN;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Find the above macros and append "${package_name}_" to the beginning.
|
||||||
|
#
|
||||||
|
my @new_macros;
|
||||||
|
my $add_next_line = 0;
|
||||||
|
foreach( @makefile_name_array ) {
|
||||||
|
my $line = $_;
|
||||||
|
if($add_next_line) {
|
||||||
|
push @new_macros, $line;
|
||||||
|
if( substr($line,-1,1) eq "\\" ) {
|
||||||
|
$add_next_line = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$add_next_line = 0;
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
#print "Line = $line";
|
||||||
|
foreach( @macros ) {
|
||||||
|
my $macro_search = "^${_} ";
|
||||||
|
#print "Macro search = \'$macro_search\'\n";
|
||||||
|
if( $line=~/$macro_search/ ) {
|
||||||
|
#print "Adding Macro!\n";
|
||||||
|
my $find_str = '\(CXX\)';
|
||||||
|
my $replace_str = "(${package_name}_CXX)";
|
||||||
|
$line=~s/$find_str/$replace_str/;
|
||||||
|
push @new_macros, "${package_name}_${line}";
|
||||||
|
if( substr($line,-2,1) eq "\\" ) {
|
||||||
|
$add_next_line = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$add_next_line = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print join("",@new_macros);
|
527
thirdParty/Zoltan/config/install-sh
vendored
Executable file
527
thirdParty/Zoltan/config/install-sh
vendored
Executable file
@ -0,0 +1,527 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
|
scriptversion=2011-01-19.21; # UTC
|
||||||
|
|
||||||
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
|
# following copyright and license.
|
||||||
|
#
|
||||||
|
# Copyright (C) 1994 X Consortium
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to
|
||||||
|
# deal in the Software without restriction, including without limitation the
|
||||||
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
# sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||||
|
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Except as contained in this notice, the name of the X Consortium shall not
|
||||||
|
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||||
|
# ings in this Software without prior written authorization from the X Consor-
|
||||||
|
# tium.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# FSF changes to this file are in the public domain.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# `make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch.
|
||||||
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
|
doit=${DOITPROG-}
|
||||||
|
if test -z "$doit"; then
|
||||||
|
doit_exec=exec
|
||||||
|
else
|
||||||
|
doit_exec=$doit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Put in absolute file names if you don't have them in your path;
|
||||||
|
# or use environment vars.
|
||||||
|
|
||||||
|
chgrpprog=${CHGRPPROG-chgrp}
|
||||||
|
chmodprog=${CHMODPROG-chmod}
|
||||||
|
chownprog=${CHOWNPROG-chown}
|
||||||
|
cmpprog=${CMPPROG-cmp}
|
||||||
|
cpprog=${CPPROG-cp}
|
||||||
|
mkdirprog=${MKDIRPROG-mkdir}
|
||||||
|
mvprog=${MVPROG-mv}
|
||||||
|
rmprog=${RMPROG-rm}
|
||||||
|
stripprog=${STRIPPROG-strip}
|
||||||
|
|
||||||
|
posix_glob='?'
|
||||||
|
initialize_posix_glob='
|
||||||
|
test "$posix_glob" != "?" || {
|
||||||
|
if (set -f) 2>/dev/null; then
|
||||||
|
posix_glob=
|
||||||
|
else
|
||||||
|
posix_glob=:
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
||||||
|
posix_mkdir=
|
||||||
|
|
||||||
|
# Desired mode of installed file.
|
||||||
|
mode=0755
|
||||||
|
|
||||||
|
chgrpcmd=
|
||||||
|
chmodcmd=$chmodprog
|
||||||
|
chowncmd=
|
||||||
|
mvcmd=$mvprog
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
stripcmd=
|
||||||
|
|
||||||
|
src=
|
||||||
|
dst=
|
||||||
|
dir_arg=
|
||||||
|
dst_arg=
|
||||||
|
|
||||||
|
copy_on_change=false
|
||||||
|
no_target_directory=
|
||||||
|
|
||||||
|
usage="\
|
||||||
|
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||||
|
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||||
|
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||||
|
or: $0 [OPTION]... -d DIRECTORIES...
|
||||||
|
|
||||||
|
In the 1st form, copy SRCFILE to DSTFILE.
|
||||||
|
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||||
|
In the 4th, create DIRECTORIES.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--help display this help and exit.
|
||||||
|
--version display version info and exit.
|
||||||
|
|
||||||
|
-c (ignored)
|
||||||
|
-C install only if different (preserve the last data modification time)
|
||||||
|
-d create directories instead of installing files.
|
||||||
|
-g GROUP $chgrpprog installed files to GROUP.
|
||||||
|
-m MODE $chmodprog installed files to MODE.
|
||||||
|
-o USER $chownprog installed files to USER.
|
||||||
|
-s $stripprog installed files.
|
||||||
|
-t DIRECTORY install into DIRECTORY.
|
||||||
|
-T report an error if DSTFILE is a directory.
|
||||||
|
|
||||||
|
Environment variables override the default commands:
|
||||||
|
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||||
|
RMPROG STRIPPROG
|
||||||
|
"
|
||||||
|
|
||||||
|
while test $# -ne 0; do
|
||||||
|
case $1 in
|
||||||
|
-c) ;;
|
||||||
|
|
||||||
|
-C) copy_on_change=true;;
|
||||||
|
|
||||||
|
-d) dir_arg=true;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
--help) echo "$usage"; exit $?;;
|
||||||
|
|
||||||
|
-m) mode=$2
|
||||||
|
case $mode in
|
||||||
|
*' '* | *' '* | *'
|
||||||
|
'* | *'*'* | *'?'* | *'['*)
|
||||||
|
echo "$0: invalid mode: $mode" >&2
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-s) stripcmd=$stripprog;;
|
||||||
|
|
||||||
|
-t) dst_arg=$2
|
||||||
|
# Protect names problematic for `test' and other utilities.
|
||||||
|
case $dst_arg in
|
||||||
|
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||||
|
esac
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-T) no_target_directory=true;;
|
||||||
|
|
||||||
|
--version) echo "$0 $scriptversion"; exit $?;;
|
||||||
|
|
||||||
|
--) shift
|
||||||
|
break;;
|
||||||
|
|
||||||
|
-*) echo "$0: invalid option: $1" >&2
|
||||||
|
exit 1;;
|
||||||
|
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||||
|
# When -d is used, all remaining arguments are directories to create.
|
||||||
|
# When -t is used, the destination is already specified.
|
||||||
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$dst_arg"; then
|
||||||
|
# $@ is not empty: it contains at least $arg.
|
||||||
|
set fnord "$@" "$dst_arg"
|
||||||
|
shift # fnord
|
||||||
|
fi
|
||||||
|
shift # arg
|
||||||
|
dst_arg=$arg
|
||||||
|
# Protect names problematic for `test' and other utilities.
|
||||||
|
case $dst_arg in
|
||||||
|
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
echo "$0: no input file specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# It's OK to call `install-sh -d' without argument.
|
||||||
|
# This can happen when creating conditional directories.
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
do_exit='(exit $ret); exit $ret'
|
||||||
|
trap "ret=129; $do_exit" 1
|
||||||
|
trap "ret=130; $do_exit" 2
|
||||||
|
trap "ret=141; $do_exit" 13
|
||||||
|
trap "ret=143; $do_exit" 15
|
||||||
|
|
||||||
|
# Set umask so as not to create temps with too-generous modes.
|
||||||
|
# However, 'strip' requires both read and write access to temps.
|
||||||
|
case $mode in
|
||||||
|
# Optimize common cases.
|
||||||
|
*644) cp_umask=133;;
|
||||||
|
*755) cp_umask=22;;
|
||||||
|
|
||||||
|
*[0-7])
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw='% 200'
|
||||||
|
fi
|
||||||
|
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||||
|
*)
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw=,u+rw
|
||||||
|
fi
|
||||||
|
cp_umask=$mode$u_plus_rw;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
for src
|
||||||
|
do
|
||||||
|
# Protect names problematic for `test' and other utilities.
|
||||||
|
case $src in
|
||||||
|
-* | [=\(\)!]) src=./$src;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
dst=$src
|
||||||
|
dstdir=$dst
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
else
|
||||||
|
|
||||||
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
if test ! -f "$src" && test ! -d "$src"; then
|
||||||
|
echo "$0: $src does not exist." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dst_arg"; then
|
||||||
|
echo "$0: no destination specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dst=$dst_arg
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; won't work
|
||||||
|
# if double slashes aren't ignored.
|
||||||
|
if test -d "$dst"; then
|
||||||
|
if test -n "$no_target_directory"; then
|
||||||
|
echo "$0: $dst_arg: Is a directory" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dstdir=$dst
|
||||||
|
dst=$dstdir/`basename "$src"`
|
||||||
|
dstdir_status=0
|
||||||
|
else
|
||||||
|
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||||
|
dstdir=`
|
||||||
|
(dirname "$dst") 2>/dev/null ||
|
||||||
|
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||||
|
X"$dst" : 'X\(//\)[^/]' \| \
|
||||||
|
X"$dst" : 'X\(//\)$' \| \
|
||||||
|
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||||
|
echo X"$dst" |
|
||||||
|
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\/\)[^/].*/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\/\)$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\).*/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
s/.*/./; q'
|
||||||
|
`
|
||||||
|
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
obsolete_mkdir_used=false
|
||||||
|
|
||||||
|
if test $dstdir_status != 0; then
|
||||||
|
case $posix_mkdir in
|
||||||
|
'')
|
||||||
|
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||||
|
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||||
|
umask=`umask`
|
||||||
|
case $stripcmd.$umask in
|
||||||
|
# Optimize common cases.
|
||||||
|
*[2367][2367]) mkdir_umask=$umask;;
|
||||||
|
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||||
|
|
||||||
|
*[0-7])
|
||||||
|
mkdir_umask=`expr $umask + 22 \
|
||||||
|
- $umask % 100 % 40 + $umask % 20 \
|
||||||
|
- $umask % 10 % 4 + $umask % 2
|
||||||
|
`;;
|
||||||
|
*) mkdir_umask=$umask,go-w;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# With -d, create the new directory with the user-specified mode.
|
||||||
|
# Otherwise, rely on $mkdir_umask.
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
mkdir_mode=-m$mode
|
||||||
|
else
|
||||||
|
mkdir_mode=
|
||||||
|
fi
|
||||||
|
|
||||||
|
posix_mkdir=false
|
||||||
|
case $umask in
|
||||||
|
*[123567][0-7][0-7])
|
||||||
|
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||||
|
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||||
|
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||||
|
|
||||||
|
if (umask $mkdir_umask &&
|
||||||
|
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
if test -z "$dir_arg" || {
|
||||||
|
# Check for POSIX incompatibilities with -m.
|
||||||
|
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||||
|
# other-writeable bit of parent directory when it shouldn't.
|
||||||
|
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||||
|
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||||
|
case $ls_ld_tmpdir in
|
||||||
|
d????-?r-*) different_mode=700;;
|
||||||
|
d????-?--*) different_mode=755;;
|
||||||
|
*) false;;
|
||||||
|
esac &&
|
||||||
|
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||||
|
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||||
|
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
then posix_mkdir=:
|
||||||
|
fi
|
||||||
|
rmdir "$tmpdir/d" "$tmpdir"
|
||||||
|
else
|
||||||
|
# Remove any dirs left behind by ancient mkdir implementations.
|
||||||
|
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||||
|
fi
|
||||||
|
trap '' 0;;
|
||||||
|
esac;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if
|
||||||
|
$posix_mkdir && (
|
||||||
|
umask $mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||||
|
)
|
||||||
|
then :
|
||||||
|
else
|
||||||
|
|
||||||
|
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||||
|
# or it failed possibly due to a race condition. Create the
|
||||||
|
# directory the slow way, step by step, checking for races as we go.
|
||||||
|
|
||||||
|
case $dstdir in
|
||||||
|
/*) prefix='/';;
|
||||||
|
[-=\(\)!]*) prefix='./';;
|
||||||
|
*) prefix='';;
|
||||||
|
esac
|
||||||
|
|
||||||
|
eval "$initialize_posix_glob"
|
||||||
|
|
||||||
|
oIFS=$IFS
|
||||||
|
IFS=/
|
||||||
|
$posix_glob set -f
|
||||||
|
set fnord $dstdir
|
||||||
|
shift
|
||||||
|
$posix_glob set +f
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
|
prefixes=
|
||||||
|
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
test X"$d" = X && continue
|
||||||
|
|
||||||
|
prefix=$prefix$d
|
||||||
|
if test -d "$prefix"; then
|
||||||
|
prefixes=
|
||||||
|
else
|
||||||
|
if $posix_mkdir; then
|
||||||
|
(umask=$mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
test -d "$prefix" || exit 1
|
||||||
|
else
|
||||||
|
case $prefix in
|
||||||
|
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||||
|
*) qprefix=$prefix;;
|
||||||
|
esac
|
||||||
|
prefixes="$prefixes '$qprefix'"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
prefix=$prefix/
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -n "$prefixes"; then
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
(umask $mkdir_umask &&
|
||||||
|
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||||
|
test -d "$dstdir" || exit 1
|
||||||
|
obsolete_mkdir_used=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||||
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||||
|
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||||
|
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||||
|
else
|
||||||
|
|
||||||
|
# Make a couple of temp file names in the proper directory.
|
||||||
|
dsttmp=$dstdir/_inst.$$_
|
||||||
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
|
# Trap to clean up those temp files at exit.
|
||||||
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
|
|
||||||
|
# Copy the file name to the temp name.
|
||||||
|
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
|
#
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||||
|
#
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||||
|
|
||||||
|
# If -C, don't bother to copy if it wouldn't change the file.
|
||||||
|
if $copy_on_change &&
|
||||||
|
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||||
|
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||||
|
|
||||||
|
eval "$initialize_posix_glob" &&
|
||||||
|
$posix_glob set -f &&
|
||||||
|
set X $old && old=:$2:$4:$5:$6 &&
|
||||||
|
set X $new && new=:$2:$4:$5:$6 &&
|
||||||
|
$posix_glob set +f &&
|
||||||
|
|
||||||
|
test "$old" = "$new" &&
|
||||||
|
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
rm -f "$dsttmp"
|
||||||
|
else
|
||||||
|
# Rename the file to the real destination.
|
||||||
|
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||||
|
|
||||||
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
|
# to itself, or perhaps because mv is so ancient that it does not
|
||||||
|
# support -f.
|
||||||
|
{
|
||||||
|
# Now remove or move aside any old file at destination location.
|
||||||
|
# We try this two ways since rm can't unlink itself on some
|
||||||
|
# systems and the destination file might be busy for other
|
||||||
|
# reasons. In this case, the final cleanup might fail but the new
|
||||||
|
# file should still install successfully.
|
||||||
|
{
|
||||||
|
test ! -f "$dst" ||
|
||||||
|
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||||
|
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||||
|
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||||
|
} ||
|
||||||
|
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||||
|
(exit 1); exit 1
|
||||||
|
}
|
||||||
|
} &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
$doit $mvcmd "$dsttmp" "$dst"
|
||||||
|
}
|
||||||
|
fi || exit 1
|
||||||
|
|
||||||
|
trap '' 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
331
thirdParty/Zoltan/config/missing
vendored
Executable file
331
thirdParty/Zoltan/config/missing
vendored
Executable file
@ -0,0 +1,331 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Common stub for a few missing GNU programs while installing.
|
||||||
|
|
||||||
|
scriptversion=2012-01-06.13; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||||
|
# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
|
||||||
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
run=:
|
||||||
|
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||||
|
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||||
|
|
||||||
|
# In the cases where this matters, `missing' is being run in the
|
||||||
|
# srcdir already.
|
||||||
|
if test -f configure.ac; then
|
||||||
|
configure_ac=configure.ac
|
||||||
|
else
|
||||||
|
configure_ac=configure.in
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg="missing on your system"
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
--run)
|
||||||
|
# Try to run requested program, and just exit if it succeeds.
|
||||||
|
run=
|
||||||
|
shift
|
||||||
|
"$@" && exit 0
|
||||||
|
# Exit code 63 means version mismatch. This often happens
|
||||||
|
# when the user try to use an ancient version of a tool on
|
||||||
|
# a file that requires a minimum version. In this case we
|
||||||
|
# we should proceed has if the program had been absent, or
|
||||||
|
# if --run hadn't been passed.
|
||||||
|
if test $? = 63; then
|
||||||
|
run=:
|
||||||
|
msg="probably too old"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
-h|--h|--he|--hel|--help)
|
||||||
|
echo "\
|
||||||
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||||
|
|
||||||
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||||
|
error status if there is no known handling for PROGRAM.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help display this help and exit
|
||||||
|
-v, --version output version information and exit
|
||||||
|
--run try to run the given command, and emulate it if it fails
|
||||||
|
|
||||||
|
Supported PROGRAM values:
|
||||||
|
aclocal touch file \`aclocal.m4'
|
||||||
|
autoconf touch file \`configure'
|
||||||
|
autoheader touch file \`config.h.in'
|
||||||
|
autom4te touch the output file, or create a stub one
|
||||||
|
automake touch all \`Makefile.in' files
|
||||||
|
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
flex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
help2man touch the output file
|
||||||
|
lex create \`lex.yy.c', if possible, from existing .c
|
||||||
|
makeinfo touch the output file
|
||||||
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||||
|
|
||||||
|
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||||
|
\`g' are ignored when checking the name.
|
||||||
|
|
||||||
|
Send bug reports to <bug-automake@gnu.org>."
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
|
||||||
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||||
|
echo "missing $scriptversion (GNU Automake)"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo 1>&2 "$0: Unknown \`$1' option"
|
||||||
|
echo 1>&2 "Try \`$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
# normalize program name to check for.
|
||||||
|
program=`echo "$1" | sed '
|
||||||
|
s/^gnu-//; t
|
||||||
|
s/^gnu//; t
|
||||||
|
s/^g//; t'`
|
||||||
|
|
||||||
|
# Now exit if we have it, but it failed. Also exit now if we
|
||||||
|
# don't have it and --version was passed (most likely to detect
|
||||||
|
# the program). This is about non-GNU programs, so use $1 not
|
||||||
|
# $program.
|
||||||
|
case $1 in
|
||||||
|
lex*|yacc*)
|
||||||
|
# Not GNU programs, they don't have --version.
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
|
# We have it, but it failed.
|
||||||
|
exit 1
|
||||||
|
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||||
|
# Could not run --version or --help. This is probably someone
|
||||||
|
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||||
|
# $TOOL exists and not knowing $TOOL uses missing.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If it does not exist, or fails to run (possibly an outdated version),
|
||||||
|
# try to emulate it.
|
||||||
|
case $program in
|
||||||
|
aclocal*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||||
|
any GNU archive site."
|
||||||
|
touch aclocal.m4
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoconf*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`${configure_ac}'. You might want to install the
|
||||||
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||||
|
archive site."
|
||||||
|
touch configure
|
||||||
|
;;
|
||||||
|
|
||||||
|
autoheader*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||||
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||||
|
from any GNU archive site."
|
||||||
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||||
|
test -z "$files" && files="config.h"
|
||||||
|
touch_files=
|
||||||
|
for f in $files; do
|
||||||
|
case $f in
|
||||||
|
*:*) touch_files="$touch_files "`echo "$f" |
|
||||||
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||||
|
*) touch_files="$touch_files $f.in";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
touch $touch_files
|
||||||
|
;;
|
||||||
|
|
||||||
|
automake*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||||
|
You might want to install the \`Automake' and \`Perl' packages.
|
||||||
|
Grab them from any GNU archive site."
|
||||||
|
find . -type f -name Makefile.am -print |
|
||||||
|
sed 's/\.am$/.in/' |
|
||||||
|
while read f; do touch "$f"; done
|
||||||
|
;;
|
||||||
|
|
||||||
|
autom4te*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, but is $msg.
|
||||||
|
You might have modified some files without having the
|
||||||
|
proper tools for further handling them.
|
||||||
|
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||||
|
archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
|
if test -f "$file"; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo "#! /bin/sh"
|
||||||
|
echo "# Created by GNU Automake missing as a replacement of"
|
||||||
|
echo "# $ $@"
|
||||||
|
echo "exit 0"
|
||||||
|
chmod +x $file
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
bison*|yacc*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' $msg. You should only need it if
|
||||||
|
you modified a \`.y' file. You may need the \`Bison' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Bison' from any GNU archive site."
|
||||||
|
rm -f y.tab.c y.tab.h
|
||||||
|
if test $# -ne 1; then
|
||||||
|
eval LASTARG=\${$#}
|
||||||
|
case $LASTARG in
|
||||||
|
*.y)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||||
|
if test -f "$SRCFILE"; then
|
||||||
|
cp "$SRCFILE" y.tab.c
|
||||||
|
fi
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||||
|
if test -f "$SRCFILE"; then
|
||||||
|
cp "$SRCFILE" y.tab.h
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if test ! -f y.tab.h; then
|
||||||
|
echo >y.tab.h
|
||||||
|
fi
|
||||||
|
if test ! -f y.tab.c; then
|
||||||
|
echo 'main() { return 0; }' >y.tab.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
lex*|flex*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a \`.l' file. You may need the \`Flex' package
|
||||||
|
in order for those modifications to take effect. You can get
|
||||||
|
\`Flex' from any GNU archive site."
|
||||||
|
rm -f lex.yy.c
|
||||||
|
if test $# -ne 1; then
|
||||||
|
eval LASTARG=\${$#}
|
||||||
|
case $LASTARG in
|
||||||
|
*.l)
|
||||||
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||||
|
if test -f "$SRCFILE"; then
|
||||||
|
cp "$SRCFILE" lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if test ! -f lex.yy.c; then
|
||||||
|
echo 'main() { return 0; }' >lex.yy.c
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
help2man*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a dependency of a manual page. You may need the
|
||||||
|
\`Help2man' package in order for those modifications to take
|
||||||
|
effect. You can get \`Help2man' from any GNU archive site."
|
||||||
|
|
||||||
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
|
if test -f "$file"; then
|
||||||
|
touch $file
|
||||||
|
else
|
||||||
|
test -z "$file" || exec >$file
|
||||||
|
echo ".ab help2man is required to generate this page"
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
makeinfo*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is $msg. You should only need it if
|
||||||
|
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||||
|
indirectly affecting the aspect of the manual. The spurious
|
||||||
|
call might also be the consequence of using a buggy \`make' (AIX,
|
||||||
|
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||||
|
the \`GNU make' package. Grab either from any GNU archive site."
|
||||||
|
# The file to touch is that specified with -o ...
|
||||||
|
file=`echo "$*" | sed -n "$sed_output"`
|
||||||
|
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||||
|
if test -z "$file"; then
|
||||||
|
# ... or it is the one specified with @setfilename ...
|
||||||
|
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||||
|
file=`sed -n '
|
||||||
|
/^@setfilename/{
|
||||||
|
s/.* \([^ ]*\) *$/\1/
|
||||||
|
p
|
||||||
|
q
|
||||||
|
}' $infile`
|
||||||
|
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||||
|
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||||
|
fi
|
||||||
|
# If the file does not exist, the user really needs makeinfo;
|
||||||
|
# let's fail without touching anything.
|
||||||
|
test -f $file || exit 1
|
||||||
|
touch $file
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo 1>&2 "\
|
||||||
|
WARNING: \`$1' is needed, and is $msg.
|
||||||
|
You might have modified some files without having the
|
||||||
|
proper tools for further handling them. Check the \`README' file,
|
||||||
|
it often tells you about the needed prerequisites for installing
|
||||||
|
this package. You may also peek at any GNU archive site, in case
|
||||||
|
some other package would contain this missing \`$1' program."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
89
thirdParty/Zoltan/config/replace-install-prefix.pl
vendored
Executable file
89
thirdParty/Zoltan/config/replace-install-prefix.pl
vendored
Executable file
@ -0,0 +1,89 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
use strict;
|
||||||
|
use Getopt::Long;
|
||||||
|
#
|
||||||
|
# This script is called to do a set of text replacements for installing
|
||||||
|
# a Makefile.export.package file so that external clients can use it.
|
||||||
|
#
|
||||||
|
# Read in commandline arguments
|
||||||
|
#
|
||||||
|
my $exec_prefix = ""; # [required] Abs path to base installation directory (i.e. --prefix=??? option passed to configure)
|
||||||
|
my $my_export_makefile = ""; # [required] Name only of installed Makefile.export.package file
|
||||||
|
my $my_top_srcdir = ""; # [required] Abs path to this package's top source directory
|
||||||
|
my $my_incl_dirs = ""; # [required] Abs path to this package's include directories
|
||||||
|
my $my_lib_dirs = ""; # [optional] Abs path to this package's library directories (if any exist)
|
||||||
|
my $dep_package_builddirs = ""; # [optional] Abs paths to other directly dependent framework package build directories (if any exist)
|
||||||
|
GetOptions(
|
||||||
|
"exec-prefix=s" => \$exec_prefix,
|
||||||
|
"my-export-makefile=s" => \$my_export_makefile,
|
||||||
|
"my-abs-top-srcdir=s" => \$my_top_srcdir,
|
||||||
|
"my-abs-incl-dirs=s" => \$my_incl_dirs,
|
||||||
|
"my-abs-lib-dirs=s" => \$my_lib_dirs,
|
||||||
|
"dep-package-abs-builddirs=s" => \$dep_package_builddirs
|
||||||
|
);
|
||||||
|
#
|
||||||
|
# Validate commandline arguments
|
||||||
|
#
|
||||||
|
scalar(@ARGV) == 0 || die;
|
||||||
|
$exec_prefix ne "" || die;
|
||||||
|
$my_export_makefile ne "" || die;
|
||||||
|
$my_top_srcdir ne "" || die;
|
||||||
|
$my_incl_dirs ne "" || die;
|
||||||
|
#
|
||||||
|
# Interpret commandline arguments
|
||||||
|
#
|
||||||
|
$exec_prefix = remove_rel_paths($exec_prefix);
|
||||||
|
my @my_incl_dirs = split(":",$my_incl_dirs);
|
||||||
|
my @my_lib_dirs = split(":",$my_lib_dirs);
|
||||||
|
my @dep_export_package_builddirs = split(":",$dep_package_builddirs);
|
||||||
|
#
|
||||||
|
# Do the replacements
|
||||||
|
#
|
||||||
|
my $my_abs_export_makefile = "${exec_prefix}/include/${my_export_makefile}";
|
||||||
|
|
||||||
|
my $cmnd_base = "${my_top_srcdir}/config/token-replace.pl ";
|
||||||
|
#
|
||||||
|
foreach(@dep_export_package_builddirs) {
|
||||||
|
if($_ ne "") {
|
||||||
|
run_cmnd($cmnd_base . "${_} ${exec_prefix}/include ${my_abs_export_makefile} ${my_abs_export_makefile}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#
|
||||||
|
foreach(@my_incl_dirs) {
|
||||||
|
if($_ ne "") {
|
||||||
|
run_cmnd($cmnd_base . "-I${_} -I${exec_prefix}/include ${my_abs_export_makefile} ${my_abs_export_makefile}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#
|
||||||
|
foreach(@my_lib_dirs) {
|
||||||
|
if($_ ne "") {
|
||||||
|
run_cmnd($cmnd_base . "-L${_} -L${exec_prefix}/lib ${my_abs_export_makefile} ${my_abs_export_makefile}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#
|
||||||
|
run_cmnd($cmnd_base . "${my_top_srcdir}/config ${exec_prefix}/include ${my_abs_export_makefile} ${my_abs_export_makefile}");
|
||||||
|
#
|
||||||
|
# Subroutines
|
||||||
|
#
|
||||||
|
sub remove_rel_paths {
|
||||||
|
my $entry_in = shift;
|
||||||
|
if ($entry_in=~/-L\.\./) {
|
||||||
|
return $entry_in;
|
||||||
|
}
|
||||||
|
my @paths = split("/",$entry_in);
|
||||||
|
my @new_paths;
|
||||||
|
foreach( @paths ) {
|
||||||
|
if( !($_=~/\.\./) ) {
|
||||||
|
push @new_paths, $_;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pop @new_paths
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return join("/",@new_paths);
|
||||||
|
}
|
||||||
|
sub run_cmnd {
|
||||||
|
my $cmnd = shift;
|
||||||
|
#print "\n", $cmnd, "\n";
|
||||||
|
system($cmnd)==0 || die;
|
||||||
|
}
|
43
thirdParty/Zoltan/config/string-replace.pl
vendored
Executable file
43
thirdParty/Zoltan/config/string-replace.pl
vendored
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# This perl script replaces a string with another string.
|
||||||
|
# Here it is allowd for file_in and file_out to be the
|
||||||
|
# same file.
|
||||||
|
#
|
||||||
|
use strict;
|
||||||
|
#
|
||||||
|
my $g_use_msg =
|
||||||
|
"Use: string-replace.pl find_string replacement_string file_in file_out\n";
|
||||||
|
if( scalar(@ARGV) < 4 ) {
|
||||||
|
print STDERR $g_use_msg;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
#
|
||||||
|
my $find_string = shift;
|
||||||
|
my $replacement_string = shift;
|
||||||
|
my $file_in_name = shift;
|
||||||
|
my $file_out_name = shift;
|
||||||
|
#
|
||||||
|
#
|
||||||
|
if($file_in_name=~/CVS/) {
|
||||||
|
# print "Do not replace in CVS\n";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
#
|
||||||
|
open FILE_IN, "<$file_in_name" || die "The file $file_in_name could not be opended for input\n";
|
||||||
|
my @file_in_array = <FILE_IN>;
|
||||||
|
close FILE_IN;
|
||||||
|
#
|
||||||
|
my @file_out_array;
|
||||||
|
my $did_replacement = 0;
|
||||||
|
foreach(@file_in_array) {
|
||||||
|
#print $_;
|
||||||
|
$did_replacement = 1 if $_=~s/$find_string/$replacement_string/g;
|
||||||
|
#print $_;
|
||||||
|
push @file_out_array, $_;
|
||||||
|
}
|
||||||
|
if($did_replacement || $file_out_name ne $file_in_name) {
|
||||||
|
open FILE_OUT, ">$file_out_name" || die "The file $file_out_name could not be opended for output\n";
|
||||||
|
print FILE_OUT @file_out_array;
|
||||||
|
close FILE_OUT;
|
||||||
|
}
|
44
thirdParty/Zoltan/config/strip_dup_incl_paths.pl
vendored
Executable file
44
thirdParty/Zoltan/config/strip_dup_incl_paths.pl
vendored
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
# This perl script removes duplicate include paths left to the right
|
||||||
|
use strict;
|
||||||
|
my @all_incl_paths = @ARGV;
|
||||||
|
my @cleaned_up_incl_paths;
|
||||||
|
foreach( @all_incl_paths ) {
|
||||||
|
$_ = remove_rel_paths($_);
|
||||||
|
if( !($_=~/-I/) ) {
|
||||||
|
push @cleaned_up_incl_paths, $_;
|
||||||
|
}
|
||||||
|
elsif( !entry_exists($_,\@cleaned_up_incl_paths) ) {
|
||||||
|
push @cleaned_up_incl_paths, $_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print join( " ", @cleaned_up_incl_paths );
|
||||||
|
#
|
||||||
|
# Subroutines
|
||||||
|
#
|
||||||
|
sub entry_exists {
|
||||||
|
my $entry = shift; # String
|
||||||
|
my $list = shift; # Reference to an array
|
||||||
|
foreach( @$list ) {
|
||||||
|
if( $entry eq $_ ) { return 1; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#
|
||||||
|
sub remove_rel_paths {
|
||||||
|
my $entry_in = shift;
|
||||||
|
if ($entry_in=~/-I\.\./) {
|
||||||
|
return $entry_in;
|
||||||
|
}
|
||||||
|
my @paths = split("/",$entry_in);
|
||||||
|
my @new_paths;
|
||||||
|
foreach( @paths ) {
|
||||||
|
if( !($_=~/\.\./) ) {
|
||||||
|
push @new_paths, $_;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pop @new_paths
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return join("/",@new_paths);
|
||||||
|
}
|
69
thirdParty/Zoltan/config/strip_dup_libs.pl
vendored
Executable file
69
thirdParty/Zoltan/config/strip_dup_libs.pl
vendored
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
# This perl script removes duplicate libraries from the right to the left and
|
||||||
|
# removes duplicate -L library paths from the left to the right
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
my @all_libs = @ARGV;
|
||||||
|
#
|
||||||
|
# Move from left to right and remove duplicate -l libraries
|
||||||
|
#
|
||||||
|
my @cleaned_up_libs_first;
|
||||||
|
foreach( reverse @all_libs ) {
|
||||||
|
$_ = remove_rel_paths($_);
|
||||||
|
if( $_=~/-L/ ) {
|
||||||
|
unshift @cleaned_up_libs_first, $_;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if( !entry_exists($_,\@cleaned_up_libs_first) ) {
|
||||||
|
unshift @cleaned_up_libs_first, $_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Move from right to left and remove duplicate -L library paths
|
||||||
|
#
|
||||||
|
my @cleaned_up_libs;
|
||||||
|
foreach( @cleaned_up_libs_first ) {
|
||||||
|
$_ = remove_rel_paths($_);
|
||||||
|
if( !($_=~/-L/) ) {
|
||||||
|
push @cleaned_up_libs, $_;
|
||||||
|
}
|
||||||
|
elsif( !entry_exists($_,\@cleaned_up_libs) ) {
|
||||||
|
push @cleaned_up_libs, $_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#
|
||||||
|
# Print the new list of libraries and paths
|
||||||
|
#
|
||||||
|
print join( " ", @cleaned_up_libs );
|
||||||
|
|
||||||
|
#
|
||||||
|
# Subroutines
|
||||||
|
#
|
||||||
|
sub entry_exists {
|
||||||
|
my $entry = shift; # String
|
||||||
|
my $list = shift; # Reference to an array
|
||||||
|
foreach( @$list ) {
|
||||||
|
if( $entry eq $_ ) { return 1; }
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#
|
||||||
|
sub remove_rel_paths {
|
||||||
|
my $entry_in = shift;
|
||||||
|
if ($entry_in=~/-L\.\./) {
|
||||||
|
return $entry_in;
|
||||||
|
}
|
||||||
|
my @paths = split("/",$entry_in);
|
||||||
|
my @new_paths;
|
||||||
|
foreach( @paths ) {
|
||||||
|
if( !($_=~/\.\./) ) {
|
||||||
|
push @new_paths, $_;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pop @new_paths
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return join("/",@new_paths);
|
||||||
|
}
|
67
thirdParty/Zoltan/config/tac_arg_check_mpi.m4
vendored
Normal file
67
thirdParty/Zoltan/config/tac_arg_check_mpi.m4
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
dnl @synopsis TAC_ARG_CHECK_MPI
|
||||||
|
dnl
|
||||||
|
dnl Check to make sure any definitions set in TAC_ARG_CONFIG_MPI
|
||||||
|
dnl are valid, set the MPI flags. Test MPI compile using C++ compiler.
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <mheroux@cs.sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_CHECK_MPI],
|
||||||
|
[
|
||||||
|
|
||||||
|
if test "X${HAVE_PKG_MPI}" = "Xyes"; then
|
||||||
|
|
||||||
|
if test -n "${MPI_DIR}" && test -z "${MPI_INC}"; then
|
||||||
|
MPI_INC="${MPI_DIR}/include"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "${MPI_INC}"; then
|
||||||
|
CPPFLAGS="${CPPFLAGS} -I${MPI_INC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_LANG_CPLUSPLUS
|
||||||
|
AC_MSG_CHECKING(for mpi.h)
|
||||||
|
AC_TRY_CPP([#include "mpi.h"],
|
||||||
|
[AC_MSG_RESULT(yes)],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot link simple MPI program."
|
||||||
|
echo "Try --with-mpi-compilers to specify MPI compilers."
|
||||||
|
echo "Or try --with-mpi-libs, --with-mpi-incdir, --with-mpi-libdir"
|
||||||
|
echo "to specify all the specific MPI compile options."
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR(MPI cannot link)
|
||||||
|
])
|
||||||
|
|
||||||
|
if test -n "${MPI_DIR}" && test -z "${MPI_LIBDIR}"; then
|
||||||
|
MPI_LIBDIR="${MPI_DIR}/lib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "${MPI_LIBDIR}"; then
|
||||||
|
LDFLAGS="${LDFLAGS} -L${MPI_LIBDIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "${MPI_LIBS}" && test -n "${MPI_LIBDIR}"; then
|
||||||
|
MPI_LIBS="-lmpi"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "${MPI_LIBS}"; then
|
||||||
|
LIBS="${MPI_LIBS} ${LIBS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# AC_LANG_CPLUSPLUS
|
||||||
|
# AC_MSG_CHECKING(whether MPI will link using C++ compiler)
|
||||||
|
# AC_TRY_LINK([#include <mpi.h>],
|
||||||
|
# [int c; char** v; MPI_Init(&c,&v);],
|
||||||
|
# [AC_MSG_RESULT(yes)],
|
||||||
|
# [AC_MSG_RESULT(no)
|
||||||
|
# echo "-----"
|
||||||
|
# echo "Cannot link simple MPI program."
|
||||||
|
# echo "Or try --with-mpi-libs, --with-mpi-incdir, --with-mpi-libdir"
|
||||||
|
# echo "to specify all the specific MPI compile options."
|
||||||
|
# echo "-----"
|
||||||
|
# AC_MSG_ERROR(MPI cannot link)]
|
||||||
|
# )
|
||||||
|
|
||||||
|
fi
|
||||||
|
])
|
232
thirdParty/Zoltan/config/tac_arg_config_mpi.m4
vendored
Normal file
232
thirdParty/Zoltan/config/tac_arg_config_mpi.m4
vendored
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
dnl @synopsis TAC_ARG_CONFIG_MPI
|
||||||
|
dnl
|
||||||
|
dnl Test a variety of MPI options:
|
||||||
|
dnl --enable-mpi - Turns MPI compiling mode on
|
||||||
|
dnl --with-mpi - specify root directory of MPI
|
||||||
|
dnl --with-mpi-compilers - Turns on MPI compiling mode and sets the MPI C++
|
||||||
|
dnl compiler = mpicxx, mpic++ or mpiCC,
|
||||||
|
dnl the MPI C compiler = mpicc and
|
||||||
|
dnl the MPI Fortran compiler = mpif77
|
||||||
|
dnl --with-mpi-incdir - specify include directory for MPI
|
||||||
|
dnl --with-mpi-libs - specify MPI libraries
|
||||||
|
dnl --with-mpi-libdir - specify location of MPI libraries
|
||||||
|
dnl
|
||||||
|
dnl If any of these options are set, HAVE_MPI will be defined for both
|
||||||
|
dnl Autoconf and Automake, and HAVE_MPI will be defined in the
|
||||||
|
dnl generated config.h file
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <maherou@sandia.gov>
|
||||||
|
dnl Modified 12/26/2007 by Jim Willenbring to skip the Fortran compiler
|
||||||
|
dnl check if Fortran is not enabled.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_CONFIG_MPI],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(mpi,
|
||||||
|
[AC_HELP_STRING([--enable-mpi],[MPI support])],
|
||||||
|
[HAVE_PKG_MPI=$enableval],
|
||||||
|
[HAVE_PKG_MPI=yes]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-compilers,
|
||||||
|
[AC_HELP_STRING([--with-mpi-compilers=PATH],
|
||||||
|
[use MPI compilers mpicc, mpif77, and mpicxx, mpic++ or mpiCC in the specified path or in the default path if no path is specified. Enables MPI])],
|
||||||
|
[
|
||||||
|
if test X${withval} != Xno; then
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
if test X${withval} = Xyes; then
|
||||||
|
# Check for mpicxx, if it does not exist, check for mpic++, if it does
|
||||||
|
# not exist, use mpiCC instead.
|
||||||
|
AC_CHECK_PROG(MPI_TEMP_CXX, mpicxx, mpicxx, no)
|
||||||
|
if test X${MPI_TEMP_CXX} = Xno; then
|
||||||
|
AC_CHECK_PROG(MPI_CXX, mpic++, mpic++, mpiCC)
|
||||||
|
else
|
||||||
|
MPI_CXX=${MPI_TEMP_CXX}
|
||||||
|
fi
|
||||||
|
MPI_CC=mpicc
|
||||||
|
MPI_F77=mpif77
|
||||||
|
MPI_F90=mpif90
|
||||||
|
else
|
||||||
|
if test -f ${withval}/mpicxx; then
|
||||||
|
MPI_CXX=${withval}/mpicxx
|
||||||
|
elif test -f ${withval}/mpic++; then
|
||||||
|
MPI_CXX=${withval}/mpic++
|
||||||
|
else
|
||||||
|
MPI_CXX=${withval}/mpiCC
|
||||||
|
fi
|
||||||
|
MPI_CC=${withval}/mpicc
|
||||||
|
MPI_F77=${withval}/mpif77
|
||||||
|
MPI_F90=${withval}/mpif90
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
# Check for mpicxx, if it does not exist, check for mpic++, if it does
|
||||||
|
# not exist, use mpiCC instead.
|
||||||
|
AC_CHECK_PROG(MPI_TEMP_CXX, mpicxx, mpicxx, no)
|
||||||
|
if test X${MPI_TEMP_CXX} = Xno; then
|
||||||
|
AC_CHECK_PROG(MPI_CXX, mpic++, mpic++, mpiCC)
|
||||||
|
else
|
||||||
|
MPI_CXX=${MPI_TEMP_CXX}
|
||||||
|
fi
|
||||||
|
MPI_CC=mpicc
|
||||||
|
MPI_F77=mpif77
|
||||||
|
MPI_F90=mpif90
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi,
|
||||||
|
[AC_HELP_STRING([--with-mpi=MPIROOT],[use MPI root directory (enables MPI)])],
|
||||||
|
[
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
MPI_DIR=${withval}
|
||||||
|
AC_MSG_CHECKING(MPI directory)
|
||||||
|
AC_MSG_RESULT([${MPI_DIR}])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
#AC_ARG_WITH(mpi-include,
|
||||||
|
#[AC_HELP_STRING([--with-mpi-include],[Obsolete. Use --with-mpi-incdir=DIR instead. Do not prefix DIR with '-I'.])],
|
||||||
|
#[AC_MSG_ERROR([--with-mpi-include is an obsolte option. Use --with-mpi-incdir=DIR instead. Do not prefix DIR with '-I'. For example '--with-mpi-incdir=/usr/lam_path/include'.])]
|
||||||
|
#)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-libs,
|
||||||
|
[AC_HELP_STRING([--with-mpi-libs="LIBS"],[MPI libraries @<:@"-lmpi"@:>@])],
|
||||||
|
[
|
||||||
|
MPI_LIBS=${withval}
|
||||||
|
AC_MSG_CHECKING(user-defined MPI libraries)
|
||||||
|
AC_MSG_RESULT([${MPI_LIBS}])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-incdir,
|
||||||
|
[AC_HELP_STRING([--with-mpi-incdir=DIR],[MPI include directory @<:@MPIROOT/include@:>@ Do not use -I])],
|
||||||
|
[
|
||||||
|
MPI_INC=${withval}
|
||||||
|
AC_MSG_CHECKING(user-defined MPI includes)
|
||||||
|
AC_MSG_RESULT([${MPI_INC}])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-libdir,
|
||||||
|
[AC_HELP_STRING([--with-mpi-libdir=DIR],[MPI library directory @<:@MPIROOT/lib@:>@ Do not use -L])],
|
||||||
|
[
|
||||||
|
MPI_LIBDIR=${withval}
|
||||||
|
AC_MSG_CHECKING(user-defined MPI library directory)
|
||||||
|
AC_MSG_RESULT([${MPI_LIBDIR}])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether we are using MPI)
|
||||||
|
AC_MSG_RESULT([${HAVE_PKG_MPI}])
|
||||||
|
|
||||||
|
if test "X${HAVE_PKG_MPI}" = "Xyes"; then
|
||||||
|
AC_DEFINE(HAVE_MPI,,[define if we want to use MPI])
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Define Automake version of HAVE_MPI if appropriate
|
||||||
|
|
||||||
|
AM_CONDITIONAL(HAVE_MPI, [test "X${HAVE_PKG_MPI}" = "Xyes"])
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl --------------------------------------------------------------------
|
||||||
|
dnl Check for MPI compilers (must be done *before* AC_PROG_CXX,
|
||||||
|
dnl AC_PROG_CC and AC_PROG_F77)
|
||||||
|
dnl
|
||||||
|
dnl --------------------------------------------------------------------
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_zoltan_cppdriver" = "Xyes"; then
|
||||||
|
|
||||||
|
if test -n "${MPI_CXX}"; then
|
||||||
|
if test -f ${MPI_CXX}; then
|
||||||
|
MPI_CXX_EXISTS=yes
|
||||||
|
else
|
||||||
|
AC_CHECK_PROG(MPI_CXX_EXISTS, ${MPI_CXX}, yes, no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X${MPI_CXX_EXISTS}" = "Xyes"; then
|
||||||
|
CXX=${MPI_CXX}
|
||||||
|
else
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot find MPI C++ compiler ${MPI_CXX}."
|
||||||
|
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH"
|
||||||
|
echo "or specify a C++ compiler using CXX=<compiler>"
|
||||||
|
echo "Do not use --with-mpi-compilers if using CXX=<compiler>"
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR([MPI C++ compiler (${MPI_CXX}) not found.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi dnl ac_cv_use_zoltan_cppdriver
|
||||||
|
|
||||||
|
if test -n "${MPI_CC}"; then
|
||||||
|
if test -f ${MPI_CC}; then
|
||||||
|
MPI_CC_EXISTS=yes
|
||||||
|
else
|
||||||
|
AC_CHECK_PROG(MPI_CC_EXISTS, ${MPI_CC}, yes, no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X${MPI_CC_EXISTS}" = "Xyes"; then
|
||||||
|
CC=${MPI_CC}
|
||||||
|
else
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot find MPI C compiler ${MPI_CC}."
|
||||||
|
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH"
|
||||||
|
echo "or specify a C compiler using CC=<compiler>"
|
||||||
|
echo "Do not use --with-mpi-compilers if using CC=<compiler>"
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR([MPI C compiler (${MPI_CC}) not found.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_fortran" = "Xyes"; then
|
||||||
|
|
||||||
|
if test -n "${MPI_F77}"; then
|
||||||
|
if test -f ${MPI_F77}; then
|
||||||
|
MPI_F77_EXISTS=yes
|
||||||
|
else
|
||||||
|
AC_CHECK_PROG(MPI_F77_EXISTS, ${MPI_F77}, yes, no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X${MPI_F77_EXISTS}" = "Xyes"; then
|
||||||
|
F77=${MPI_F77}
|
||||||
|
else
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot find MPI Fortran compiler ${MPI_F77}."
|
||||||
|
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH"
|
||||||
|
echo "or specify a Fortran 77 compiler using F77=<compiler>"
|
||||||
|
echo "Do not use --with-mpi-compilers if using F77=<compiler>"
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR([MPI Fortran 77 compiler (${MPI_F77}) not found.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_fortran90" = "Xyes"; then
|
||||||
|
|
||||||
|
if test -n "${MPI_F90}"; then
|
||||||
|
if test -f ${MPI_F90}; then
|
||||||
|
MPI_F90_EXISTS=yes
|
||||||
|
else
|
||||||
|
AC_CHECK_PROG(MPI_F90_EXISTS, ${MPI_F90}, yes, no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X${MPI_F90_EXISTS}" = "Xyes"; then
|
||||||
|
FC=${MPI_F90}
|
||||||
|
else
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot find MPI Fortran compiler ${MPI_F90}."
|
||||||
|
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH"
|
||||||
|
echo "or specify a Fortran compiler using FC=<compiler>"
|
||||||
|
echo "Do not use --with-mpi-compilers if using FC=<compiler>"
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR([MPI Fortran compiler (${MPI_F90}) not found.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi dnl ac_cv_use_fortran90
|
||||||
|
|
||||||
|
fi dnl ac_cv_use_fortran
|
||||||
|
])
|
76
thirdParty/Zoltan/config/tac_arg_enable_export-makefiles.m4
vendored
Normal file
76
thirdParty/Zoltan/config/tac_arg_enable_export-makefiles.m4
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
dnl Enables export makefile specific code
|
||||||
|
dnl
|
||||||
|
dnl The following AM_CONDITIONALS are set for makefiles to access:
|
||||||
|
dnl USING_EXPORT_MAKEFILES
|
||||||
|
dnl USING_PERL via TAC_ARG_WITH_PERL
|
||||||
|
dnl USING_GNUMAKE
|
||||||
|
dnl
|
||||||
|
dnl The following AC_DEFINES are set:
|
||||||
|
dnl HAVE_EXPORT_MAKEFILES
|
||||||
|
dnl
|
||||||
|
dnl the following variables are set:
|
||||||
|
dnl PERL_EXE for the perl executable via TAC_ARG_WITH_PERL
|
||||||
|
dnl
|
||||||
|
dnl This file was based on tac_arg_enable_feature.m4 by Mike Heroux
|
||||||
|
dnl @author Roger Pawlowski <rppawlo@sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_ENABLE_EXPORT_MAKEFILES],
|
||||||
|
[
|
||||||
|
AC_ARG_ENABLE(export-makefiles,
|
||||||
|
AC_HELP_STRING([--enable-export-makefiles],[Creates export makefiles in the install (prefix) directory. This option requires perl to be set in your path or defined with --with-perl=<perl executable>. Note that the export makefiles are always created and used in the build directory, but will not be installable without this option to change the paths. (default is $1)]),
|
||||||
|
ac_cv_use_export_makefiles=$enableval,
|
||||||
|
ac_cv_use_export_makefiles=$1)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to build export makefiles)
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_export_makefiles" != "Xno"; then
|
||||||
|
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_EXPORT_MAKEFILES],,[Define if you want to build export makefiles.])
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(USING_EXPORT_MAKEFILES, test X${ac_cv_use_export_makefiles} = Xyes)
|
||||||
|
|
||||||
|
# Check for perl to run scripts (Required dependency)
|
||||||
|
TAC_ARG_WITH_PERL
|
||||||
|
|
||||||
|
if test "X$HAVE_PERL" != "Xyes" &&
|
||||||
|
test "X$ac_cv_use_export_makefiles" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
AC_MSG_ERROR([Failed to find the perl executable. The flag --enable-export-makefiles requires perl to be either in your path or explicitly defined by the flag --with-perl=<executable>. If you do not require the export makefiles to be installed via 'make install', you can disable the export makefiles with --disable-export-makefiles.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for using gnumake to clean up link lines via
|
||||||
|
# gnumake's "shell" command. Optional dependency.
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_GNUMAKE],
|
||||||
|
[
|
||||||
|
AC_ARG_WITH(gnumake,
|
||||||
|
AC_HELP_STRING([--with-gnumake],[Gnu's make has special functions we can use to eliminate redundant paths in the build and link lines. Enable this if you use gnu-make to build Trilinos. This requires that perl is in your path or that you have specified the perl executable with --with-perl=<perl executable>. Configure will check for the existence of the perl executable and quit with an error if it is not found. (default is no)]),
|
||||||
|
ac_cv_use_gnumake=$withval, ac_cv_use_gnumake=no)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether gnumake specific code should be enabled)
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_gnumake" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_GNUMAKE],,[Define if you are using gnumake - this will shorten your link lines.])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(USING_GNUMAKE, test "X$ac_cv_use_gnumake" = "Xyes")
|
||||||
|
])
|
||||||
|
|
||||||
|
TAC_ARG_WITH_GNUMAKE
|
||||||
|
|
||||||
|
if test "X$HAVE_PERL" != "Xyes" &&
|
||||||
|
test "X$ac_cv_use_gnumake" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
AC_MSG_ERROR([The flag --with-gnumake requires perl to be in your path. The perl executable can alternatively be explicitly defined by the flag --with-perl=<executable>.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
])
|
||||||
|
|
40
thirdParty/Zoltan/config/tac_arg_enable_feature.m4
vendored
Normal file
40
thirdParty/Zoltan/config/tac_arg_enable_feature.m4
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
dnl @synopsis TAC_ARG_ENABLE_FEATURE(FEATURE_NAME, FEATURE_DESCRIPTION, HAVE_NAME, DEFAULT_VAL)
|
||||||
|
dnl
|
||||||
|
dnl Test for --enable-${FEATURE_NAME} and set to DEFAULT_VAL value if feature not specified.
|
||||||
|
dnl Also calls AC_DEFINE to define HAVE_${HAVE_NAME} if value is not equal to "no"
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to help defining whether or not optional
|
||||||
|
dnl features* should compiled. For example:
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_ENABLE_FEATURE(epetra, [Configure and build epetra], EPETRA, yes)
|
||||||
|
dnl
|
||||||
|
dnl will test for --enable-epetra when configure is run. If it is defined
|
||||||
|
dnl and not set to "no" or not defined (default is "yes") then HAVE_EPETRA will
|
||||||
|
dnl be defined, if --enable-epetra is defined to be "no", HAVE_EPETRA will not
|
||||||
|
dnl be defined.
|
||||||
|
dnl
|
||||||
|
dnl *NOTE: epetra, aztecoo, komplex, ifpack, and other software found in
|
||||||
|
dnl subdirectories of Trilinos/packages are "packages" in their own right.
|
||||||
|
dnl However, these packages are also "features" of the larger package
|
||||||
|
dnl "Trilinos". Therefore, when configuring from the Trilinos directory,
|
||||||
|
dnl it is appropriate to refer to these software packages as "features".
|
||||||
|
dnl
|
||||||
|
dnl This file was based on tac_arg_with_package.m4 by Mike Heroux
|
||||||
|
dnl @author James Willenbring <jmwille@sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_ENABLE_FEATURE],
|
||||||
|
[
|
||||||
|
AC_ARG_ENABLE([$1],
|
||||||
|
AC_HELP_STRING([--enable-$1],[$2 (default is [$4])]),
|
||||||
|
ac_cv_use_$1=$enableval, ac_cv_use_$1=$4)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to use [$1])
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_$1" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_$3],,[Define if want to build $1])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
52
thirdParty/Zoltan/config/tac_arg_enable_feature_sub.m4
vendored
Normal file
52
thirdParty/Zoltan/config/tac_arg_enable_feature_sub.m4
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
dnl @synopsis TAC_ARG_ENABLE_FEATURE_SUB(FEATURE_NAME, SUB_FEATURE_NAME, FEATURE_DESCRIPTION, HAVE_NAME, DEFAULT_VAL)
|
||||||
|
dnl
|
||||||
|
dnl This hack gets around the fact that TAC_ARG_ENABLE_FEATURE does not support underscores
|
||||||
|
dnl in its feature names. TAC_ARG_ENABLE_FEATURE_SUB allows exactly one underscore. Not great,
|
||||||
|
dnl but arguably better than supporting no underscores.
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_ENABLE_FEATURE(feature-sub, [Configure and build feature-sub], FEATURE_SUB, yes)
|
||||||
|
dnl fails because tac_arg_enable_feature tests for ac_cv_use_feature-sub which gets
|
||||||
|
dnl rejected because the `-' is not allowed in variables. (AC_ARG_ENABLE sets ac_cv_use_feature_sub
|
||||||
|
dnl to avoid this problem.) Use:
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_ENABLE_FEATURE(feature, sub, [Configure and build feature-sub], FEATURE_SUB, yes)
|
||||||
|
dnl instead.
|
||||||
|
dnl
|
||||||
|
dnl Test for --enable-${FEATURE_NAME} and set to DEFAULT_VAL value if feature not specified.
|
||||||
|
dnl Also calls AC_DEFINE to define HAVE_${HAVE_NAME} if value is not equal to "no"
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to help defining whether or not optional
|
||||||
|
dnl features* should compiled. For example:
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_ENABLE_FEATURE(epetra, [Configure and build epetra], EPETRA, yes)
|
||||||
|
dnl
|
||||||
|
dnl will test for --enable-epetra when configure is run. If it is defined
|
||||||
|
dnl and not set to "no" or not defined (default is "yes") then HAVE_EPETRA will
|
||||||
|
dnl be defined, if --enable-epetra is defined to be "no", HAVE_EPETRA will not
|
||||||
|
dnl be defined.
|
||||||
|
dnl
|
||||||
|
dnl *NOTE: epetra, aztecoo, komplex, ifpack, and other software found in
|
||||||
|
dnl subdirectories of Trilinos/packages are "packages" in their own right.
|
||||||
|
dnl However, these packages are also "features" of the larger package
|
||||||
|
dnl "Trilinos". Therefore, when configuring from the Trilinos directory,
|
||||||
|
dnl it is appropriate to refer to these software packages as "features".
|
||||||
|
dnl
|
||||||
|
dnl This file was based on tac_arg_enable_package.m4 by Jim Willenbring
|
||||||
|
dnl @author Ken Stanley <ksstanl@sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_ENABLE_FEATURE_SUB],
|
||||||
|
[
|
||||||
|
AC_ARG_ENABLE([$1-$2],
|
||||||
|
AC_HELP_STRING([--enable-$1-$2],[$3 (default is [$5])]),
|
||||||
|
ac_cv_use_$1_$2=$enableval, ac_cv_use_$1_$2=$5)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to use [$1-$2])
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_$1_$2" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_$4],,[Define if want to build $1-$2])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
54
thirdParty/Zoltan/config/tac_arg_enable_feature_sub_check.m4
vendored
Executable file
54
thirdParty/Zoltan/config/tac_arg_enable_feature_sub_check.m4
vendored
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
dnl @synopsis TAC_ARG_ENABLE_FEATURE_SUB_CHECK(FEATURE_NAME, SUB_FEATURE_NAME, FEATURE_DESCRIPTION, HAVE_NAME)
|
||||||
|
dnl
|
||||||
|
dnl This hack gets around the fact that TAC_ARG_ENABLE_FEATURE does not support underscores
|
||||||
|
dnl in its feature names. TAC_ARG_ENABLE_FEATURE_SUB_CHECK allows exactly one underscore. Not great,
|
||||||
|
dnl but arguably better than supporting no underscores.
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_ENABLE_FEATURE(feature-sub, [Configure and build feature-sub], FEATURE_SUB, yes)
|
||||||
|
dnl fails because tac_arg_enable_feature tests for ac_cv_use_feature-sub which gets
|
||||||
|
dnl rejected because the `-' is not allowed in variables. (AC_ARG_ENABLE sets ac_cv_use_feature_sub
|
||||||
|
dnl to avoid this problem.) Use:
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_ENABLE_FEATURE_SUB_CHECK(feature, sub, [Configure and build feature-sub], FEATURE_SUB)
|
||||||
|
dnl instead.
|
||||||
|
dnl
|
||||||
|
dnl This macro will test for --enable-${FEATURE_NAME}-${SUB_FEATURE_NAME} when configure is run.
|
||||||
|
dnl If it is defined and not set to "no" or not defined and --disable-${SUB_FEATURE_NAME} is not
|
||||||
|
dnl specified then HAVE_${HAVE_NAME} will be defined.
|
||||||
|
dnl
|
||||||
|
dnl *NOTE: This macro is designed for the use-case when there is an individual Trilinos package
|
||||||
|
dnl offering fine-grained control of a Trilinos option. This way, the individual package
|
||||||
|
dnl option is enabled, as long as the Trilinos option is not disabled. If the Trilinos option is
|
||||||
|
dnl disabled, then the user must enable each packages option individually. For instance:
|
||||||
|
dnl
|
||||||
|
dnl --disable-tests --enable-teuchos-tests
|
||||||
|
dnl
|
||||||
|
dnl *NOTE: epetra, aztecoo, komplex, ifpack, and other software found in
|
||||||
|
dnl subdirectories of Trilinos/packages are "packages" in their own right.
|
||||||
|
dnl However, these packages are also "features" of the larger package
|
||||||
|
dnl "Trilinos". Therefore, when configuring from the Trilinos directory,
|
||||||
|
dnl it is appropriate to refer to these software packages as "features".
|
||||||
|
dnl
|
||||||
|
dnl This file was based on tac_arg_enable_package.m4 by Jim Willenbring
|
||||||
|
dnl and tac_arg_enable_package_sub.m4 by Ken Stanley.
|
||||||
|
dnl
|
||||||
|
dnl @author Heidi Thornquist <hkthorn@sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_ENABLE_FEATURE_SUB_CHECK],
|
||||||
|
[
|
||||||
|
AC_ARG_ENABLE([$2],, ac_cv_use_$2=$enableval, ac_cv_use_$2=yes)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([$1-$2],
|
||||||
|
AC_HELP_STRING([--enable-$1-$2],[$3 (default is yes if --disable-$2 is not specified)]),
|
||||||
|
ac_cv_use_$1_$2=$enableval, ac_cv_use_$1_$2=${ac_cv_use_$2})
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to use [$1-$2])
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_$1_$2" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_$4],,[Define if want to build $1-$2])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
30
thirdParty/Zoltan/config/tac_arg_enable_option.m4
vendored
Normal file
30
thirdParty/Zoltan/config/tac_arg_enable_option.m4
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
dnl @synopsis TAC_ARG_ENABLE_OPTION(FEATURE_NAME, FEATURE_DESCRIPTION, HAVE_NAME, DEFAULT_VAL)
|
||||||
|
dnl
|
||||||
|
dnl Test for --enable-${FEATURE_NAME} and set to DEFAULT_VAL value if feature not specified.
|
||||||
|
dnl Also calls AC_DEFINE to define HAVE_${HAVE_NAME} if value is not equal to "no"
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to facilitate definition of options in a package. For example:
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_ENABLE_OPTION(threads, [enable shared memory threads], THREADS, no)
|
||||||
|
dnl
|
||||||
|
dnl will test for --enable-threads when configure is run. If it is defined (and not set to "no")
|
||||||
|
dnl then HAVE_THREADS will be defined, Otherwise HAVE_THREADS will not be defined.
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <mheroux@cs.sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_ENABLE_OPTION],
|
||||||
|
[
|
||||||
|
AC_ARG_ENABLE([$1],
|
||||||
|
AC_HELP_STRING([--enable-$1],[$2 (default is [$4])]),
|
||||||
|
ac_cv_use_$1=$enableval, ac_cv_use_$1=$4)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to use [$1])
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_$1" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_$3],1,[Define if want to build with $1 enabled])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
17
thirdParty/Zoltan/config/tac_arg_with_3pl_sub.m4
vendored
Normal file
17
thirdParty/Zoltan/config/tac_arg_with_3pl_sub.m4
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_3PL_SUB( VALUE_NAME, VALUE_SUB_NAME, VALUE_DESCRIPTION)
|
||||||
|
dnl
|
||||||
|
dnl Test for --with-${VALUE_NAME}-${VALUE_SUB_NAME} and set to no if value not specified.
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to set variables, such as library names and include paths, which
|
||||||
|
dnl include an underscore.
|
||||||
|
dnl
|
||||||
|
dnl This file was based on tac_arg_with_sub.m4 by Ken Stanley
|
||||||
|
dnl @author Jim Willenbring <jmwille@sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_3PL_SUB],
|
||||||
|
[
|
||||||
|
AC_ARG_WITH([$1-$2],
|
||||||
|
AC_HELP_STRING([--with-$1-$2],[$3]),
|
||||||
|
tac_with_$1_$2=$withval, tac_with_$1_$2=no)
|
||||||
|
])
|
||||||
|
|
39
thirdParty/Zoltan/config/tac_arg_with_ar.m4
vendored
Normal file
39
thirdParty/Zoltan/config/tac_arg_with_ar.m4
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_AR
|
||||||
|
dnl
|
||||||
|
dnl Test for --with-ar="ar_program ar_flags".
|
||||||
|
dnl Default is "ar cru"
|
||||||
|
dnl
|
||||||
|
dnl Generates an Automake conditional USE_ALTERNATE_AR that can be tested.
|
||||||
|
dnl Generates the user-specified archiver command in @ALTERNATE_AR@.
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <mheroux@cs.sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_AR],
|
||||||
|
[
|
||||||
|
AC_ARG_WITH(ar,
|
||||||
|
AC_HELP_STRING([--with-ar], [override archiver command (default is "ar cru")]),
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING(user-defined archiver)
|
||||||
|
AC_MSG_RESULT([${withval}])
|
||||||
|
USE_ALTERNATE_AR=yes
|
||||||
|
ALTERNATE_AR="${withval}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
if test -n "${SPECIAL_AR}" && test "X${USE_ALTERNATE_AR}" != "Xyes";
|
||||||
|
then
|
||||||
|
USE_ALTERNATE_AR=yes
|
||||||
|
ALTERNATE_AR="${SPECIAL_AR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for special archiver command)
|
||||||
|
if test "X${USE_ALTERNATE_AR}" = "Xyes"; then
|
||||||
|
AC_MSG_RESULT([${ALTERNATE_AR}])
|
||||||
|
AM_CONDITIONAL(USE_ALTERNATE_AR, true)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([none])
|
||||||
|
AM_CONDITIONAL(USE_ALTERNATE_AR, false)
|
||||||
|
fi
|
||||||
|
AC_SUBST(ALTERNATE_AR)
|
||||||
|
])
|
||||||
|
|
31
thirdParty/Zoltan/config/tac_arg_with_flags.m4
vendored
Normal file
31
thirdParty/Zoltan/config/tac_arg_with_flags.m4
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_FLAGS(lcase_name, UCASE_NAME)
|
||||||
|
dnl
|
||||||
|
dnl Test for --with-lcase_name="compiler/loader flags". if defined, prepend
|
||||||
|
dnl flags to standard UCASE_NAME definition.
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to facilitate additional special flags that should be
|
||||||
|
dnl passed on to the preprocessor/compilers/loader.
|
||||||
|
dnl
|
||||||
|
dnl Example use
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_WITH_FLAGS(cxxflags, CXXFLAGS)
|
||||||
|
dnl
|
||||||
|
dnl tests for --with-cxxflags and pre-pends to CXXFLAGS
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <mheroux@cs.sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_FLAGS],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([whether additional [$2] flags should be added])
|
||||||
|
AC_ARG_WITH($1,
|
||||||
|
AC_HELP_STRING([--with-$1],
|
||||||
|
[additional [$2] flags to be added: will prepend to [$2]]),
|
||||||
|
[
|
||||||
|
$2="${withval} ${$2}"
|
||||||
|
AC_MSG_RESULT([$2 = ${$2}])
|
||||||
|
],
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
27
thirdParty/Zoltan/config/tac_arg_with_incdirs.m4
vendored
Normal file
27
thirdParty/Zoltan/config/tac_arg_with_incdirs.m4
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_INCDIRS
|
||||||
|
dnl
|
||||||
|
dnl Test for --with-incdirs="-Iincdir1 -Iincdir2". if defined, prepend
|
||||||
|
dnl "-Iincdir1 -Iincdir2" to CPPFLAGS
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to facilitate addition of directories to include file search path.
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <mheroux@cs.sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_INCDIRS],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([whether additional include search paths defined])
|
||||||
|
AC_ARG_WITH(incdirs,
|
||||||
|
AC_HELP_STRING([--with-incdirs],
|
||||||
|
[additional directories containing include files: will prepend to search here for includes, use -Idir format]),
|
||||||
|
[
|
||||||
|
CPPFLAGS="${withval} ${CPPFLAGS}"
|
||||||
|
CFLAGS="${withval} ${CFLAGS}"
|
||||||
|
FCFLAGS="${withval} ${FCFLAGS}"
|
||||||
|
FFLAGS="${withval} ${FFLAGS}"
|
||||||
|
AC_MSG_RESULT([${withval}])
|
||||||
|
],
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
24
thirdParty/Zoltan/config/tac_arg_with_libdirs.m4
vendored
Normal file
24
thirdParty/Zoltan/config/tac_arg_with_libdirs.m4
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_LIBDIRS
|
||||||
|
dnl
|
||||||
|
dnl Test for --with-libdirs="-Llibdir1 -Llibdir2". if defined,
|
||||||
|
dnl prepend "-Llibdir1 -Llibdir2" to LDFLAGS
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to facilitate addition of directories to library search path.
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <mheroux@cs.sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_LIBDIRS],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([whether additional library search paths defined])
|
||||||
|
AC_ARG_WITH(libdirs,
|
||||||
|
AC_HELP_STRING([--with-libdirs],
|
||||||
|
[OBSOLETE use --with-ldflags instead. (ex. --with-ldflags="-L<DIR> -L<DIR2>")]),
|
||||||
|
[
|
||||||
|
LDFLAGS="${withval} ${LDFLAGS}"
|
||||||
|
AC_MSG_RESULT([${withval}])
|
||||||
|
],
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
30
thirdParty/Zoltan/config/tac_arg_with_libs.m4
vendored
Normal file
30
thirdParty/Zoltan/config/tac_arg_with_libs.m4
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_LIBS
|
||||||
|
dnl
|
||||||
|
dnl Test for --with-libs="name(s)".
|
||||||
|
dnl
|
||||||
|
dnl Prepends the specified name(s) to the list of libraries to link
|
||||||
|
dnl with.
|
||||||
|
dnl
|
||||||
|
dnl Example use
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_WITH_LIBS
|
||||||
|
dnl
|
||||||
|
dnl tests for --with-libs and pre-pends to LIBS
|
||||||
|
dnl
|
||||||
|
dnl @author Jim Willenbring <jmwille@sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_LIBS],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([whether additional libraries are needed])
|
||||||
|
AC_ARG_WITH(libs,
|
||||||
|
AC_HELP_STRING([--with-libs],
|
||||||
|
[List additional libraries here. For example, --with-libs=-lsuperlu
|
||||||
|
or --with-libs=/path/libsuperlu.a]),
|
||||||
|
[
|
||||||
|
LIBS="${withval} ${LIBS}"
|
||||||
|
AC_MSG_RESULT([LIBS = ${LIBS}])
|
||||||
|
],
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
32
thirdParty/Zoltan/config/tac_arg_with_package.m4
vendored
Normal file
32
thirdParty/Zoltan/config/tac_arg_with_package.m4
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_PACKAGE(FEATURE_NAME, FEATURE_DESCRIPTION, HAVE_NAME, DEFAULT_VAL)
|
||||||
|
dnl
|
||||||
|
dnl Test for --with-${FEATURE_NAME} and set to DEFAULT_VAL value if feature not specified.
|
||||||
|
dnl Also calls AC_DEFINE to define HAVE_${HAVE_NAME} if value is not equal to "no"
|
||||||
|
dnl
|
||||||
|
dnl Use this macro to help defining whether or not interfaces for optional
|
||||||
|
dnl package should compiled. For example:
|
||||||
|
dnl
|
||||||
|
dnl TAC_ARG_WITH_PACKAGE(zoltan, [Enable Zoltan interface support], ZOLTAN, no)
|
||||||
|
dnl
|
||||||
|
dnl will test for --with-zoltan when configure is run. If it is defined
|
||||||
|
dnl (and not set to "no") then HAVE_ZOLTAN will be defined,
|
||||||
|
dnl Otherwise HAVE_ZOLTAN will not be defined.
|
||||||
|
dnl
|
||||||
|
dnl @author Mike Heroux <mheroux@cs.sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_PACKAGE],
|
||||||
|
[
|
||||||
|
AC_ARG_WITH([$1],
|
||||||
|
AC_HELP_STRING([--with-$1],[$2 (default is [$4])]),
|
||||||
|
ac_cv_use_$1=$withval, ac_cv_use_$1=$4)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to use [$1])
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_$1" != "Xno"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE([HAVE_$3],,[Define if want to build with $1 enabled])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
34
thirdParty/Zoltan/config/tac_arg_with_perl.m4
vendored
Normal file
34
thirdParty/Zoltan/config/tac_arg_with_perl.m4
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
dnl @synopsis TAC_ARG_WITH_PERL(DEFAULT_VAL)
|
||||||
|
dnl
|
||||||
|
dnl Test for --enable-gnumake and set to DEFAULT_VAL value if feature not specified.
|
||||||
|
dnl Calls AC_DEFINE to define HAVE_GNUMAKE if value is not equal to "no"
|
||||||
|
dnl Calls AM_CONDITIONAL to define USING_GNUMAKE to true/false.
|
||||||
|
dnl
|
||||||
|
dnl This file was based on tac_arg_with_ar.m4 by Mike Heroux
|
||||||
|
dnl @author Roger Pawlowski <rppawlo@sandia.gov>
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([TAC_ARG_WITH_PERL],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_ARG_WITH(perl,
|
||||||
|
AC_HELP_STRING([--with-perl], [supply a perl executable. For example --with-perl=/usr/bin/perl.]),
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING(for user supplied perl executable)
|
||||||
|
AC_MSG_RESULT([${withval}])
|
||||||
|
USER_SPECIFIED_PERL=yes
|
||||||
|
PERL_EXE="${withval}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
USER_SPECIFIED_PERL=no
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "X${USER_SPECIFIED_PERL}" = "Xyes"; then
|
||||||
|
AC_CHECK_FILE(${PERL_EXE}, [HAVE_PERL=yes], [HAVE_PERL=no])
|
||||||
|
AC_SUBST(PERL_EXE, ${PERL_EXE})
|
||||||
|
else
|
||||||
|
AC_CHECK_PROG(HAVE_PERL, perl, yes, no)
|
||||||
|
AC_SUBST(PERL_EXE, perl)
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(USING_PERL, test X${HAVE_PERL} = Xyes)
|
||||||
|
])
|
||||||
|
|
43
thirdParty/Zoltan/config/token-replace.pl
vendored
Executable file
43
thirdParty/Zoltan/config/token-replace.pl
vendored
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# This perl script replaces a string with another string
|
||||||
|
# on a token basis. Here it is allowed for file_in and
|
||||||
|
# file_out to be the same file.
|
||||||
|
#
|
||||||
|
use strict;
|
||||||
|
#
|
||||||
|
my $g_use_msg =
|
||||||
|
"Use: token-replace.pl find_token replacement_token file_in file_out\n";
|
||||||
|
if( scalar(@ARGV) < 4 ) {
|
||||||
|
print STDERR $g_use_msg;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
#
|
||||||
|
my $find_token = shift;
|
||||||
|
my $replacement_token = shift;
|
||||||
|
my $file_in_name = shift;
|
||||||
|
my $file_out_name = shift;
|
||||||
|
#
|
||||||
|
#print "file_in_name = $file_in_name\n";
|
||||||
|
if($file_in_name=~/CVS/) {
|
||||||
|
# print "Do not replace in CVS\n";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
open FILE_IN, "<$file_in_name" || die "The file $file_in_name could not be opended for input\n";
|
||||||
|
my @file_in_array = <FILE_IN>;
|
||||||
|
close FILE_IN;
|
||||||
|
#
|
||||||
|
my $match_str = '([^\w\d_]|^)' . $find_token . '([^\w\d_]|$)';
|
||||||
|
#print $match_str . "\n";
|
||||||
|
#
|
||||||
|
my @file_out_array;
|
||||||
|
my $did_replacement = 0;
|
||||||
|
foreach(@file_in_array) {
|
||||||
|
$did_replacement = 1 if $_=~s/$match_str/$1$replacement_token$2/g;
|
||||||
|
push @file_out_array, $_;
|
||||||
|
}
|
||||||
|
if($did_replacement || $file_out_name ne $file_in_name) {
|
||||||
|
open FILE_OUT, ">$file_out_name" || die "The file $file_out_name could not be opended for output\n";
|
||||||
|
print FILE_OUT @file_out_array;
|
||||||
|
close FILE_OUT;
|
||||||
|
}
|
104
thirdParty/Zoltan/config/wk_fc_get_vendor.m4
vendored
Normal file
104
thirdParty/Zoltan/config/wk_fc_get_vendor.m4
vendored
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
dnl Determine F90 vendor and version string.
|
||||||
|
AC_DEFUN([WK_FC_GET_VENDOR],
|
||||||
|
[AC_CACHE_CHECK([the compiler ID],
|
||||||
|
[wk_cv_prog_f90_version_string],
|
||||||
|
[$FC -version >conftest.log 2>&1
|
||||||
|
$FC -V >>conftest.log 2>&1
|
||||||
|
$FC --version >>conftest.log 2>&1
|
||||||
|
|
||||||
|
wk_grep_f90_NAG=`grep NAG conftest.log | head -1`
|
||||||
|
wk_grep_f90_Compaq=`grep Compaq conftest.log | head -1`
|
||||||
|
wk_grep_f90_Digital=`grep DIGITAL conftest.log | head -1`
|
||||||
|
wk_grep_f90_SGI=`grep MIPS conftest.log | head -1`
|
||||||
|
wk_grep_f90_Intel=`grep 'Intel(R)' conftest.log | head -1`
|
||||||
|
wk_grep_f90_Sun=`grep 'Sun' conftest.log | head -1`
|
||||||
|
wk_grep_f90_Lahey=`grep 'Lahey' conftest.log | head -1`
|
||||||
|
wk_grep_f90_PGI=`grep 'pgf' conftest.log | head -1`
|
||||||
|
wk_grep_f90_G95=`grep -i 'g95' conftest.log | grep -i 'gcc' | head -1`
|
||||||
|
wk_grep_f90_GFORTRAN=`grep -i 'GNU Fortran' conftest.log | head -1`
|
||||||
|
wk_grep_f90_Absoft=`grep -i 'Absoft' conftest.log | head -1`
|
||||||
|
|
||||||
|
if test -n "$wk_grep_f90_NAG"; then
|
||||||
|
wk_cv_prog_f90_type="NAG"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_NAG
|
||||||
|
wk_cv_prog_f90_version=[`echo $wk_cv_prog_f90_version_string | sed -e 's/.* Release \([0-9][0-9]*\.[0-9][0-9]*.*$\)/\1/'`]
|
||||||
|
wk_cv_prog_f90_major_version=[`echo $wk_cv_prog_f90_version | sed -e 's/\([0-9][0-9]*\)\..*/\1/'`]
|
||||||
|
elif test -n "$wk_grep_f90_Compaq"; then
|
||||||
|
wk_cv_prog_f90_type="Compaq"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_Compaq
|
||||||
|
elif test -n "$wk_grep_f90_Digital"; then
|
||||||
|
wk_cv_prog_f90_type="DEC"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_Digital
|
||||||
|
elif test -n "$wk_grep_f90_SGI"; then
|
||||||
|
wk_cv_prog_f90_type="SGI"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_SGI
|
||||||
|
elif test -n "$wk_grep_f90_Intel"; then
|
||||||
|
wk_cv_prog_f90_type="Intel"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_Intel
|
||||||
|
wk_cv_prog_f90_version=[`echo $wk_cv_prog_f90_version_string | sed -e 's/.* Version \([0-9][0-9]*\.[0-9][0-9]*\) .*/\1/'`]
|
||||||
|
wk_cv_prog_f90_major_version=[`echo $wk_cv_prog_f90_version | sed -e 's/\([0-9][0-9]*\)\..*/\1/'`]
|
||||||
|
elif test -n "$wk_grep_f90_Sun"; then
|
||||||
|
wk_cv_prog_f90_type="Sun"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_Sun
|
||||||
|
wk_cv_prog_f90_version=[`echo $wk_cv_prog_f90_version_string | sed -e 's/.* Fortran 95 \([0-9][0-9]*\.[0-9][0-9]*\) .*/\1/'`]
|
||||||
|
wk_cv_prog_f90_major_version=[`echo $wk_cv_prog_f90_version | sed -e 's/\([0-9][0-9]*\)\..*/\1/'`]
|
||||||
|
elif test -n "$wk_grep_f90_Lahey"; then
|
||||||
|
wk_cv_prog_f90_type="Lahey"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_Lahey
|
||||||
|
elif test -n "$wk_grep_f90_PGI"; then
|
||||||
|
wk_cv_prog_f90_type="PGI"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_PGI
|
||||||
|
elif test -n "$wk_grep_f90_G95"; then
|
||||||
|
wk_cv_prog_f90_type="G95"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_G95
|
||||||
|
elif test -n "$wk_grep_f90_GFORTRAN"; then
|
||||||
|
wk_cv_prog_f90_type="GNU"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_GFORTRAN
|
||||||
|
wk_cv_prog_f90_version=[`echo $wk_cv_prog_f90_version_string | sed -e 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'`]
|
||||||
|
wk_cv_prog_f90_major_version=[`echo $wk_cv_prog_f90_version | sed -e 's/\([0-9][0-9]*\)\..*/\1/'`]
|
||||||
|
elif test -n "$wk_grep_f90_Absoft"; then
|
||||||
|
wk_cv_prog_f90_type="Absoft"
|
||||||
|
wk_cv_prog_f90_version_string=$wk_grep_f90_Absoft
|
||||||
|
else
|
||||||
|
wk_cv_prog_f90_type="unknown"
|
||||||
|
wk_cv_prog_f90_version_string="unknown"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f conftest.log
|
||||||
|
|
||||||
|
]) dnl end AC_CACHE_CHECK
|
||||||
|
|
||||||
|
dnl Vendor-specific variables:
|
||||||
|
AC_CACHE_CHECK([the compiler vendor], [wk_cv_prog_f90_type])
|
||||||
|
|
||||||
|
if test -n "$wk_cv_prog_f90_version"; then
|
||||||
|
AC_CACHE_CHECK([the compiler version], [wk_cv_prog_f90_version])
|
||||||
|
else
|
||||||
|
wk_cv_prog_f90_version=$wk_cv_prog_f90_version_string
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$wk_cv_prog_f90_major_version"; then
|
||||||
|
AC_CACHE_CHECK([the compiler major version], [wk_cv_prog_f90_major_version])
|
||||||
|
else
|
||||||
|
wk_cv_prog_f90_major_version=$wk_cv_prog_f90_version
|
||||||
|
fi
|
||||||
|
|
||||||
|
FC_VERSION_STRING=$wk_cv_prog_f90_version_string
|
||||||
|
FC_VENDOR=$wk_cv_prog_f90_type
|
||||||
|
FC_VERSION=$wk_cv_prog_f90_version
|
||||||
|
FC_MAJOR_VERSION=$wk_cv_prog_f90_major_version
|
||||||
|
AC_SUBST(FC_VERSION_STRING)
|
||||||
|
AC_SUBST(FC_VENDOR)
|
||||||
|
AC_SUBST(FC_VERSION)
|
||||||
|
AC_SUBST(FC_MAJOR_VERSION)
|
||||||
|
|
||||||
|
dnl Module names: (all compilers apparently have converged to '.mod')
|
||||||
|
dnl The perl scripts need a quoted version of this
|
||||||
|
FC_MODNAME='$(1:.o=.mod)'
|
||||||
|
FC_MODNAME_Q='\$(1:.o=.mod)'
|
||||||
|
AC_SUBST(FC_MODNAME)
|
||||||
|
AC_SUBST(FC_MODNAME_Q)
|
||||||
|
|
||||||
|
]) dnl end AC_DEFUN
|
||||||
|
|
||||||
|
|
279
thirdParty/Zoltan/config/zac_arg_config_mpi.m4
vendored
Normal file
279
thirdParty/Zoltan/config/zac_arg_config_mpi.m4
vendored
Normal file
@ -0,0 +1,279 @@
|
|||||||
|
dnl @synopsis ZAC_ARG_CONFIG_MPI
|
||||||
|
dnl
|
||||||
|
dnl Test a variety of MPI options:
|
||||||
|
dnl --enable-mpi - Turns MPI compiling mode on
|
||||||
|
dnl --with-mpi - specify root directory of MPI
|
||||||
|
dnl --with-mpi-compilers - Turns on MPI compiling mode and sets the MPI C++
|
||||||
|
dnl compiler C, and Fortran
|
||||||
|
dnl --with-mpi-incdir - specify include directory for MPI
|
||||||
|
dnl --with-mpi-libs - specify MPI libraries
|
||||||
|
dnl --with-mpi-libdir - specify location of MPI libraries
|
||||||
|
dnl
|
||||||
|
dnl If any of these options are set, HAVE_MPI will be defined for both
|
||||||
|
dnl Autoconf and Automake, and HAVE_MPI will be defined in the
|
||||||
|
dnl generated config.h file
|
||||||
|
dnl
|
||||||
|
dnl if --disable-mpi, then Zoltan will build serial MPI.
|
||||||
|
dnl
|
||||||
|
dnl --enable-mpi and --with-mpi-compilers are the default.
|
||||||
|
dnl
|
||||||
|
dnl --without-mpi is actually a user error, but we'll interpret it as --disable-mpi
|
||||||
|
dnl
|
||||||
|
dnl If CC, CXX, F77 and/or F90/FTN/FC have been set by the user, and MPI compilers
|
||||||
|
dnl are desired, these will be assumed to be the MPI compilers.
|
||||||
|
dnl
|
||||||
|
dnl This was adapted from the Trilinos TAC_ARG_CONFIG_MPI.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([ZAC_ARG_CONFIG_MPI],
|
||||||
|
[
|
||||||
|
|
||||||
|
HAVE_PKG_MPI=unset
|
||||||
|
SEEK_MPI_COMPILERS=unset
|
||||||
|
MPI_COMPILER_PATH=unset
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(mpi,
|
||||||
|
[AC_HELP_STRING([--enable-mpi],[enable MPI support])],
|
||||||
|
[
|
||||||
|
if test X${enableval} = Xno; then
|
||||||
|
HAVE_PKG_MPI=no
|
||||||
|
else
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
fi
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi,
|
||||||
|
[AC_HELP_STRING([--with-mpi=MPIROOT],[the MPI root directory (above bin,lib,include), enables MPI])],
|
||||||
|
[
|
||||||
|
if test X${withval} = Xno; then
|
||||||
|
HAVE_PKG_MPI=no
|
||||||
|
else
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
if test X${withval} != Xyes; then
|
||||||
|
MPI_DIR=${withval}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-compilers,
|
||||||
|
[AC_HELP_STRING([--with-mpi-compilers={yes/no/path}],[Find MPI compilers/Don't use MPI compilers/Find MPI compilers in path])],
|
||||||
|
[
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
if test X${withval} = Xno; then
|
||||||
|
SEEK_MPI_COMPILERS=no
|
||||||
|
else
|
||||||
|
SEEK_MPI_COMPILERS=yes
|
||||||
|
if test X${withval} != Xyes; then
|
||||||
|
MPI_COMPILER_PATH=${withval}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[
|
||||||
|
if test X${HAVE_PKG_MPI} != Xno; then
|
||||||
|
SEEK_MPI_COMPILERS=yes
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
fi
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
dnl Using MPI is the default
|
||||||
|
|
||||||
|
if test X${HAVE_PKG_MPI} = unset ; then
|
||||||
|
HAVE_PKG_MPI=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test X${SEEK_MPI_COMPILERS} = Xyes; then
|
||||||
|
|
||||||
|
if test X${MPI_COMPILER_PATH} != Xunset ; then
|
||||||
|
# MPI_SEEK_PATH=$MPI_COMPILER_PATH$PATH_SEPARATOR$PATH
|
||||||
|
MPI_SEEK_PATH=$MPI_COMPILER_PATH
|
||||||
|
elif test -n "${MPI_DIR}" ; then
|
||||||
|
# MPI_SEEK_PATH=$MPI_DIR/bin$PATH_SEPARATOR$PATH
|
||||||
|
MPI_SEEK_PATH=$MPI_DIR/bin
|
||||||
|
else
|
||||||
|
MPI_SEEK_PATH=$PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Find C MPI compiler if MPI_CC is not already defined
|
||||||
|
|
||||||
|
if test -z "${MPI_CC}"; then
|
||||||
|
if test -f "${CC}"; then
|
||||||
|
|
||||||
|
MPI_CC=${CC}
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if test -n "${CC}" ; then
|
||||||
|
MPI_CC_CANDIDATE=${CC}
|
||||||
|
else
|
||||||
|
MPI_CC_CANDIDATE=mpicc
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PATH_PROG(MPI_CC, ${MPI_CC_CANDIDATE}, [notFound], [PATH = ${MPI_SEEK_PATH}])
|
||||||
|
|
||||||
|
if test "${MPI_CC}" != "notFound" ; then
|
||||||
|
CC=${MPI_CC}
|
||||||
|
else
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot find MPI C compiler in " ${MPI_SEEK_PATH}
|
||||||
|
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
|
||||||
|
echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
|
||||||
|
echo "or specify a C compiler using CC=<compiler>"
|
||||||
|
echo "or --disable-mpi"
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR([MPI C compiler not found.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_zoltan_cppdriver" = "Xyes"; then
|
||||||
|
dnl Find C++ MPI compiler if MPI_CXX is not already defined
|
||||||
|
|
||||||
|
if test -z "${MPI_CXX}"; then
|
||||||
|
|
||||||
|
if test -f "${CXX}"; then
|
||||||
|
|
||||||
|
MPI_CXX=${CXX}
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if test -n "${CXX}" ; then
|
||||||
|
MPI_CXX_CANDIDATES=${CXX}
|
||||||
|
else
|
||||||
|
MPI_CXX_CANDIDATES="[mpicxx mpic++ mpiCC]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PATH_PROGS(MPI_CXX, ${MPI_CXX_CANDIDATES}, [notFound], [PATH = ${MPI_SEEK_PATH}])
|
||||||
|
|
||||||
|
if test "${MPI_CXX}" != "notFound" ; then
|
||||||
|
CXX=${MPI_CXX}
|
||||||
|
else
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot find MPI C++ compiler in " ${MPI_SEEK_PATH}
|
||||||
|
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
|
||||||
|
echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
|
||||||
|
echo "or specify a C++ compiler using CXX=<compiler>"
|
||||||
|
echo "or --disable-mpi"
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR([MPI C++ compiler not found.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# if test "X$ac_cv_use_fortran" = "Xyes"; then
|
||||||
|
# dnl Find a Fortran 77 MPI compiler if MPI_F77 is not already defined
|
||||||
|
#
|
||||||
|
# if test -z "${MPI_F77}"; then
|
||||||
|
# MPI_F77_CANDIDATE=mpif77
|
||||||
|
# if test -n "${F77}"; then
|
||||||
|
# MPI_F77_CANDIDATE=${F77}
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# AC_PATH_PROG(MPI_F77, ${MPI_F77_CANDIDATE}, [notFound], [PATH = ${MPI_SEEK_PATH}])
|
||||||
|
#
|
||||||
|
# if test "${MPI_F77}" != "notFound" ; then
|
||||||
|
# F77=${MPI_F77}
|
||||||
|
# else
|
||||||
|
# echo "-----"
|
||||||
|
# echo "Cannot find MPI Fortan 77 compiler."
|
||||||
|
# echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
|
||||||
|
# echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
|
||||||
|
# echo "or specify a fortran 77 compiler using F77=<compiler>"
|
||||||
|
# echo "-----"
|
||||||
|
# AC_MSG_ERROR([MPI C compiler not found.])
|
||||||
|
# fi
|
||||||
|
# fi
|
||||||
|
# fi
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_fortran90" = "Xyes"; then
|
||||||
|
dnl Find a Fortran 90 MPI compiler if MPI_F90 is not already defined
|
||||||
|
|
||||||
|
if test -z "${MPI_FC}"; then
|
||||||
|
|
||||||
|
if test -f "${FC}"; then
|
||||||
|
|
||||||
|
MPI_FC=${FC}
|
||||||
|
|
||||||
|
else
|
||||||
|
MPI_FC_CANDIDATES=""
|
||||||
|
|
||||||
|
if test -n "${FC}"; then
|
||||||
|
MPI_FC_CANDIDATES=${FC}
|
||||||
|
elif test -n "${FTN}"; then
|
||||||
|
MPI_FC_CANDIDATES=${FTN}
|
||||||
|
elif test -n "${F90}"; then
|
||||||
|
MPI_FC_CANDIDATES=${F90}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "${MPI_FC_CANDIDATES}" && test -f ${MPI_FC_CANDIDATES} ; then
|
||||||
|
MPI_FC=${MPI_FC_CANDIDATES}
|
||||||
|
else
|
||||||
|
if test -z "${MPI_FC_CANDIDATES}"; then
|
||||||
|
MPI_FC_CANDIDATES="[mpif90 mpif77]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PATH_PROGS(MPI_FC, ${MPI_FC_CANDIDATES}, [notFound], [PATH = ${MPI_SEEK_PATH}])
|
||||||
|
|
||||||
|
if test "${MPI_FC}" != "notFound" ; then
|
||||||
|
FC=${MPI_FC}
|
||||||
|
else
|
||||||
|
echo "-----"
|
||||||
|
echo "Cannot find MPI Fortran 90 compiler in " ${MPI_SEEK_PATH}
|
||||||
|
echo "Specify a path to all mpi compilers with --with-mpi-compilers=PATH,"
|
||||||
|
echo "or specify a path to top mpi directory (above bin) with --with-mpi=PATH,"
|
||||||
|
echo "or specify a fortran 90 compiler using FC=<compiler>"
|
||||||
|
echo "-----"
|
||||||
|
AC_MSG_ERROR([MPI C compiler not found.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#AC_ARG_WITH(mpi-include,
|
||||||
|
#[AC_HELP_STRING([--with-mpi-include],[Obsolete. Use --with-mpi-incdir=DIR instead. Do not prefix DIR with '-I'.])],
|
||||||
|
#[AC_MSG_ERROR([--with-mpi-include is an obsolte option. Use --with-mpi-incdir=DIR instead. Do not prefix DIR with '-I'. For example '--with-mpi-incdir=/usr/lam_path/include'.])]
|
||||||
|
#)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-libs,
|
||||||
|
[AC_HELP_STRING([--with-mpi-libs="LIBS"],[MPI libraries @<:@"-lmpi"@:>@])],
|
||||||
|
[
|
||||||
|
MPI_LIBS=${withval}
|
||||||
|
AC_MSG_CHECKING(user-defined MPI libraries)
|
||||||
|
AC_MSG_RESULT([${MPI_LIBS}])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-incdir,
|
||||||
|
[AC_HELP_STRING([--with-mpi-incdir=DIR],[MPI include directory @<:@MPIROOT/include@:>@ Do not use -I])],
|
||||||
|
[
|
||||||
|
MPI_INC=${withval}
|
||||||
|
AC_MSG_CHECKING(user-defined MPI includes)
|
||||||
|
AC_MSG_RESULT([${MPI_INC}])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(mpi-libdir,
|
||||||
|
[AC_HELP_STRING([--with-mpi-libdir=DIR],[MPI library directory @<:@MPIROOT/lib@:>@ Do not use -L])],
|
||||||
|
[
|
||||||
|
MPI_LIBDIR=${withval}
|
||||||
|
AC_MSG_CHECKING(user-defined MPI library directory)
|
||||||
|
AC_MSG_RESULT([${MPI_LIBDIR}])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether we are using MPI)
|
||||||
|
AC_MSG_RESULT([${HAVE_PKG_MPI}])
|
||||||
|
|
||||||
|
if test "X${HAVE_PKG_MPI}" = "Xyes"; then
|
||||||
|
AC_DEFINE(HAVE_MPI,,[define if we want to use MPI])
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Define Automake version of HAVE_MPI if appropriate
|
||||||
|
|
||||||
|
AM_CONDITIONAL(HAVE_MPI, [test "X${HAVE_PKG_MPI}" = "Xyes"])
|
||||||
|
|
||||||
|
])
|
39
thirdParty/Zoltan/config/zac_arg_with_id.m4
vendored
Normal file
39
thirdParty/Zoltan/config/zac_arg_with_id.m4
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
dnl @synopsis ZAC_ARG_WITH_ID
|
||||||
|
dnl
|
||||||
|
dnl Test for "--with-id-type="
|
||||||
|
dnl Default is "unsigned int". Can also be "long", "llong" or "int".
|
||||||
|
dnl
|
||||||
|
dnl Generates config.h macro.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([ZAC_ARG_WITH_ID],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([data type for ZOLTAN_ID_TYPE])
|
||||||
|
zoltan_id_type="unset"
|
||||||
|
AC_ARG_WITH(id-type,
|
||||||
|
AC_HELP_STRING([--with-id-type], [Zoltan global ID type: uint (default), ulong, or ullong]),
|
||||||
|
[
|
||||||
|
if test "X$withval" == "Xuint" ; then
|
||||||
|
AC_DEFINE([UNSIGNED_INT_GLOBAL_IDS],[1],[define if ZOLTAN_ID_TYPE is unsigned int])
|
||||||
|
zoltan_id_type="unsigned int"
|
||||||
|
else
|
||||||
|
if test "X$withval" == "Xulong" ; then
|
||||||
|
AC_DEFINE([UNSIGNED_LONG_GLOBAL_IDS],[1],[define if ZOLTAN_ID_TYPE is unsigned long])
|
||||||
|
zoltan_id_type="unsigned long"
|
||||||
|
else
|
||||||
|
if test "X$withval" == "Xullong" ; then
|
||||||
|
AC_DEFINE([UNSIGNED_LONG_LONG_GLOBAL_IDS],[1],[define if ZOLTAN_ID_TYPE is unsigned long long])
|
||||||
|
zoltan_id_type="unsigned long long"
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([Valid global ID types for Zoltan are uint, ulong, and ullong])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_DEFINE([UNSIGNED_INT_GLOBAL_IDS],[1],[define if ZOLTAN_ID_TYPE is unsigned int])
|
||||||
|
zoltan_id_type="unsigned int"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
AC_MSG_RESULT([typedef $zoltan_id_type ZOLTAN_ID_TYPE])
|
||||||
|
]
|
||||||
|
)
|
9598
thirdParty/Zoltan/configure
vendored
Executable file
9598
thirdParty/Zoltan/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
463
thirdParty/Zoltan/configure.ac
vendored
Normal file
463
thirdParty/Zoltan/configure.ac
vendored
Normal file
@ -0,0 +1,463 @@
|
|||||||
|
# @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
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Initialization
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# This must be the first line in configure.ac.
|
||||||
|
# Optional 3rd argument is email address for bugs.
|
||||||
|
|
||||||
|
AC_INIT(Zoltan, 3.6, lriesen@sandia.gov)
|
||||||
|
|
||||||
|
echo "----------------------------------------"
|
||||||
|
echo "Running Zoltan Configure Script"
|
||||||
|
echo "----------------------------------------"
|
||||||
|
|
||||||
|
# This is to protect against accidentally specifying the wrong
|
||||||
|
# directory with --srcdir. Any file in that directory will do,
|
||||||
|
# preferably one that is unlikely to be removed or renamed.
|
||||||
|
|
||||||
|
AC_CONFIG_SRCDIR([src/include/zoltan.h])
|
||||||
|
|
||||||
|
# Specify directory for auxillary build tools (e.g., install-sh,
|
||||||
|
# config.sub, config.guess) and M4 files.
|
||||||
|
|
||||||
|
AC_CONFIG_AUX_DIR(config)
|
||||||
|
|
||||||
|
#
|
||||||
|
# We don't want people to configure in the source directory. Some
|
||||||
|
# things may break.
|
||||||
|
#
|
||||||
|
|
||||||
|
if test -e configure.ac ; then
|
||||||
|
echo "You are trying to run configure in the source directory. This is not allowed. Please run configure from a separate build directory."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Configure should create src/Zoltan_config.h from src/Zoltan_config.h.in
|
||||||
|
AM_CONFIG_HEADER(src/include/Zoltan_config.h:src/include/Zoltan_config.h.in)
|
||||||
|
|
||||||
|
# Allow users to specify their own "install" command. If none is specified,
|
||||||
|
# the default is install-sh found in the config subdirectory.
|
||||||
|
|
||||||
|
AC_ARG_WITH(install,
|
||||||
|
[AC_HELP_STRING([--with-install=INSTALL_PROGRAM],
|
||||||
|
[Use the installation program INSTALL_PROGRAM rather the default that is provided. For example --with-install="/path/install -p"])],
|
||||||
|
[
|
||||||
|
INSTALL=$withval
|
||||||
|
INSTALL_PROGRAM=$withval
|
||||||
|
INSTALL_SCRIPT=$withval
|
||||||
|
INSTALL_DATA="$withval -m 644"
|
||||||
|
],)
|
||||||
|
|
||||||
|
# AM_MAINTAINER_MODE turns off maintainer-only makefile targets by
|
||||||
|
# default, and changes configure to understand a
|
||||||
|
# --enable-maintainer-mode option. --enable-maintainer-mode turns the
|
||||||
|
# maintainer-only targets back on. The maintainer-only makefile
|
||||||
|
# targets permit end users to clean automatically-generated files such
|
||||||
|
# as configure, which means they have to have autoconf and automake
|
||||||
|
# installed to repair the damage. AM_MAINTAINER_MODE makes it a bit
|
||||||
|
# harder for users to shoot themselves in the foot.
|
||||||
|
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
# Define $build, $host, $target, etc
|
||||||
|
|
||||||
|
AC_CANONICAL_TARGET
|
||||||
|
|
||||||
|
# Note in header file and Makefile conditional what the host OS is
|
||||||
|
|
||||||
|
AM_CONDITIONAL(HOST_CYGWIN, false)
|
||||||
|
AM_CONDITIONAL(HOST_LINUX, false)
|
||||||
|
AM_CONDITIONAL(HOST_SOLARIS, false)
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
cygwin)
|
||||||
|
AM_CONDITIONAL(HOST_CYGWIN, true)
|
||||||
|
AC_DEFINE(HOST_CYGWIN,1,[software host will be cygwin])
|
||||||
|
;;
|
||||||
|
linux*)
|
||||||
|
AM_CONDITIONAL(HOST_LINUX, true)
|
||||||
|
AC_DEFINE(HOST_LINUX,1,[software host will be linux])
|
||||||
|
;;
|
||||||
|
solaris*)
|
||||||
|
AM_CONDITIONAL(HOST_SOLARIS, true)
|
||||||
|
AC_DEFINE(HOST_SOLARIS,1,[software host will be solaris])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Use automake
|
||||||
|
|
||||||
|
# - Required version of automake.
|
||||||
|
AM_INIT_AUTOMAKE(1.9.6 no-define tar-ustar)
|
||||||
|
|
||||||
|
# Specify required version of autoconf.
|
||||||
|
|
||||||
|
AC_PREREQ(2.59)
|
||||||
|
|
||||||
|
#TAC_ARG_ENABLE_OPTION(fortran, [enable Fortran support], FORTRAN_SUPPORT, no)
|
||||||
|
#This option is not currently available
|
||||||
|
TAC_ARG_ENABLE_OPTION(f90interface, [enable Fortran 90 interface (automatically enables Fortran support)], F90INTERFACE, no)
|
||||||
|
AM_CONDITIONAL(BUILD_ZOLTAN_F90_INTERFACE, [test "X$ac_cv_use_f90interface" != "Xno"])
|
||||||
|
#AM_CONDITIONAL(USE_FORTRAN, [test "X$ac_cv_use_fortran" != "Xno"])
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_f90interface" = "Xyes"; then
|
||||||
|
ac_cv_use_fortran=yes
|
||||||
|
else
|
||||||
|
ac_cv_use_fortran=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_fortran" = "Xyes"; then
|
||||||
|
ac_cv_use_fortran90=yes
|
||||||
|
# AX_F90_MODULE_FLAG
|
||||||
|
# if test "X$ax_cv_f90_modflag" = "Xunknown" ; then
|
||||||
|
# AC_MSG_ERROR([unable to find f90 modules extension])
|
||||||
|
# else
|
||||||
|
# FCFLAGS="$ax_cv_f90_modflag../ $ax_cv_f90_modflag. ${FCFLAGS}"
|
||||||
|
# fi
|
||||||
|
else
|
||||||
|
ac_cv_use_fortran90=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
TAC_ARG_ENABLE_FEATURE_SUB(zoltan, cppdriver, [Enable Zoltan's C++ driver], ZOLTAN_CPPDRIVER, yes)
|
||||||
|
AM_CONDITIONAL(HAVE_ZOLTAN_CPPDRIVER, [test "X$ac_cv_use_zoltan_cppdriver" != "Xno"])
|
||||||
|
|
||||||
|
#This can be removed after we retire the old build system
|
||||||
|
#AC_DEFINE([TRILINOS_CONFIG_H],,[Define when using the autotools to build Zoltan])
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Check to see if MPI enabled and if any special configuration done
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# We may want to handle this differently because Zoltan requires MPI
|
||||||
|
#TAC_ARG_CONFIG_MPI
|
||||||
|
|
||||||
|
ZAC_ARG_CONFIG_MPI
|
||||||
|
|
||||||
|
# #np# - can eliminate compiler checks below if your package does not use the
|
||||||
|
# language corresponding to the check. Please note that if you use
|
||||||
|
# F77_FUNC to determine Fortran name mangling, you should not remove
|
||||||
|
# the Fortran compiler check or the check for Fortran flags. Doing
|
||||||
|
# so will prevent the detection of the proper name mangling in some
|
||||||
|
# cases.
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(mpi-recv-limit,
|
||||||
|
AS_HELP_STRING([--enable-mpi-recv-limit],[Set to the limit on the number of simultaneous MPI posted receives, if any; default is --enable-mpi-recv-limit=10]),
|
||||||
|
[ AC_MSG_NOTICE(Building Zoltan to observe a limit of $enable_mpi_recv_limit simultaneously posted MPI receives)
|
||||||
|
AC_SUBST(MPI_RECV_LIMIT_FLAG, "-DMPI_RECV_LIMIT=$enable_mpi_recv_limit")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Checks for programs
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
AM_PROG_CC_C_O(cc gcc)
|
||||||
|
#Conditional only?
|
||||||
|
#if test "X$ac_cv_use_zoltan_cppdriver" = "Xyes"; then
|
||||||
|
AC_PROG_CXX(CC g++ c++ cxx)
|
||||||
|
#fi
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_fortran90" = "Xyes"; then
|
||||||
|
AC_PROG_FC(FC gfortran f90 xlf90 f95)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "X$ac_cv_use_fortran" = "Xyes"; then
|
||||||
|
AC_PROG_FC(FC gfortran f90 xlf90 f95)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
|
# Check if --with-flags present, prepend any specs to FLAGS
|
||||||
|
|
||||||
|
TAC_ARG_WITH_FLAGS(ccflags, CCFLAGS)
|
||||||
|
#if test "X$ac_cv_use_zoltan_cppdriver" = "Xyes"; then
|
||||||
|
TAC_ARG_WITH_FLAGS(cxxflags, CXXFLAGS)
|
||||||
|
CXXFLAGS="-DMPICH_IGNORE_CXX_SEEK ${CXXFLAGS}"
|
||||||
|
#fi
|
||||||
|
TAC_ARG_WITH_FLAGS(cflags, CFLAGS)
|
||||||
|
TAC_ARG_WITH_FLAGS(fcflags, FCFLAGS)
|
||||||
|
#TAC_ARG_WITH_FLAGS(fflags, FFLAGS)
|
||||||
|
TAC_ARG_WITH_LIBS
|
||||||
|
TAC_ARG_WITH_FLAGS(ldflags, LDFLAGS)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Alternate archiver
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TAC_ARG_WITH_AR
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# MPI link check
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
TAC_ARG_CHECK_MPI
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Checks for Makefile.export related systems
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Add this later
|
||||||
|
TAC_ARG_ENABLE_EXPORT_MAKEFILES(yes)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Checks for special package flags
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ZAC_ARG_WITH_ID()
|
||||||
|
|
||||||
|
TAC_ARG_ENABLE_OPTION(gzip, [enable zlib support for driver], GZIP, no)
|
||||||
|
if test "X$ac_cv_use_gzip" != "Xno"; then
|
||||||
|
LIBS="-lz ${LIBS}"
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(BUILD_GZIP, [test "X$ac_cv_use_gzip" != "Xno"])
|
||||||
|
|
||||||
|
TAC_ARG_WITH_PACKAGE(parmetis, [Enable Parmetis support.], PARMETIS, no)
|
||||||
|
AM_CONDITIONAL(BUILD_PARMETIS, [test "X$ac_cv_use_parmetis" != "Xno"])
|
||||||
|
TAC_ARG_WITH_3PL_SUB(parmetis, libdir, [Specify where the Parmetis library is located. Ex. /path/to/library])
|
||||||
|
if test "X$tac_with_parmetis_libdir" != "Xno"; then
|
||||||
|
LIBS="-L${tac_with_parmetis_libdir} -lparmetis -lmetis ${LIBS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
TAC_ARG_WITH_3PL_SUB(parmetis, incdir, [Specify where the Parmetis header files are located. Ex. /path/to/headers])
|
||||||
|
# It was necessary to move the parmetis include directories before the scotch
|
||||||
|
# include directories.
|
||||||
|
#if test "X$tac_with_parmetis_incdir" != "Xno"; then
|
||||||
|
# CPPFLAGS="-I${tac_with_parmetis_incdir} ${CPPFLAGS}"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
|
||||||
|
TAC_ARG_WITH_PACKAGE(scotch, [Enable Scotch support.], SCOTCH, no)
|
||||||
|
AM_CONDITIONAL(BUILD_SCOTCH, [test "X$ac_cv_use_scotch" != "Xno"])
|
||||||
|
TAC_ARG_WITH_3PL_SUB(scotch, libdir, [Specify where the Scotch library is located. Ex. /path/to/library])
|
||||||
|
if test "X$tac_with_scotch_libdir" != "Xno"; then
|
||||||
|
LIBS="-L${tac_with_scotch_libdir} -lptscotch -lptscotcherr -lptscotcherrexit -lscotch -lscotcherr -lscotcherrexit ${LIBS}"
|
||||||
|
fi
|
||||||
|
TAC_ARG_WITH_3PL_SUB(scotch, incdir, [Specify where the Scotch header files are located. Ex. /path/to/headers])
|
||||||
|
if test "X$tac_with_scotch_incdir" != "Xno"; then
|
||||||
|
CPPFLAGS="-I${tac_with_scotch_incdir} ${CPPFLAGS}"
|
||||||
|
fi
|
||||||
|
# The parmetis include directories need to be before the Scotch include
|
||||||
|
# directories.
|
||||||
|
if test "X$tac_with_parmetis_incdir" != "Xno"; then
|
||||||
|
CPPFLAGS="-I${tac_with_parmetis_incdir} ${CPPFLAGS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
TAC_ARG_WITH_PACKAGE(patoh, [Enable Patoh support.], PATOH, no)
|
||||||
|
TAC_ARG_WITH_3PL_SUB(patoh, libdir, [Specify where the Patoh library is located. Ex. /path/to/library])
|
||||||
|
if test "X$tac_with_patoh_libdir" != "Xno"; then
|
||||||
|
LIBS="-L${tac_with_patoh_libdir} -lpatoh ${LIBS}"
|
||||||
|
fi
|
||||||
|
TAC_ARG_WITH_3PL_SUB(patoh, incdir, [Specify where the Patoh header files are located. Ex. /path/to/headers])
|
||||||
|
if test "X$tac_with_patoh_incdir" != "Xno"; then
|
||||||
|
CPPFLAGS="-I${tac_with_patoh_incdir} ${CPPFLAGS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#TAC_ARG_WITH_PACKAGE(drum, [Enable Drum support. Library name as well as library and include paths must be specified using LDFLAGS and CPPFLAGS.], DRUM, no)
|
||||||
|
#TAC_ARG_WITH_3PL_SUB(drum, libdir, [Specify where the Drum library is located. Ex. /path/to/library])
|
||||||
|
#if test "X$tac_with_drum_libdir" != "Xno"; then
|
||||||
|
# LIBS="-L${tac_with_drum_libdir} ${LIBS}"
|
||||||
|
#fi
|
||||||
|
#TAC_ARG_WITH_3PL_SUB(drum, incdir, [Specify where the Drum header files are located. Ex. /path/to/headers])
|
||||||
|
#if test "X$tac_with_drum_incdir" != "Xno"; then
|
||||||
|
# CPPFLAGS="-I${tac_with_drum_incdir} ${CPPFLAGS}"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
TAC_ARG_WITH_PACKAGE(nemesis_exodus, [Enable Nemesis/Exodus support for the Zdrive test executable. Library and include paths must be specified using LDFLAGS and CFLAGS.], NEMESIS_EXODUS, no)
|
||||||
|
#I am not sure if we can do this. We may not be able to get things in the right
|
||||||
|
#order. JW.
|
||||||
|
if test "X$ac_cv_use_nemesis_exodus" != "Xno"; then
|
||||||
|
LIBS="-lnemIc -lexoIIv2c -lnetcdf ${LIBS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LIBS="${LIBS} -lm"
|
||||||
|
|
||||||
|
#TAC_ARG_WITH_PACKAGE(parkway, [Enable Parkway support.], PARKWAY, no)
|
||||||
|
#TAC_ARG_WITH_3PL_SUB(parkway, libdir, [Specify where the Parkway library is located. Ex. /path/to/library])
|
||||||
|
#if test "X$tac_with_parkway_libdir" != "Xno"; then
|
||||||
|
# LIBS="-L${tac_with_parkway_libdir} -lparkway -lpmpich++ -lstdc++ ${LIBS}"
|
||||||
|
#fi
|
||||||
|
#TAC_ARG_WITH_3PL_SUB(parkway, incdir, [Specify where the Parkway header files are located. Ex. /path/to/headers])
|
||||||
|
#if test "X$tac_with_parkway_incdir" != "Xno"; then
|
||||||
|
# CPPFLAGS="-I${tac_with_parkway_incdir} ${CPPFLAGS}"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Checks if tests and examples should be built
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
TAC_ARG_ENABLE_FEATURE(tests, [Make tests for all Trilinos packages buildable with 'make tests'], TESTS, yes)
|
||||||
|
TAC_ARG_ENABLE_FEATURE_SUB_CHECK( zoltan, tests, [Make Zoltan tests buildable with 'make tests'], ZOLTAN_TESTS)
|
||||||
|
AM_CONDITIONAL(BUILD_TESTS, test "X$ac_cv_use_zoltan_tests" != "Xno")
|
||||||
|
|
||||||
|
TAC_ARG_ENABLE_FEATURE(examples, [Make examples for all Trilinos packages buildable with 'make examples'], EXAMPLES, yes)
|
||||||
|
TAC_ARG_ENABLE_FEATURE_SUB_CHECK( zoltan, examples, [Make Zoltan examples buildable with 'make examples'], ZOLTAN_EXAMPLES)
|
||||||
|
AM_CONDITIONAL(BUILD_EXAMPLES, test "X$ac_cv_use_zoltan_examples" != "Xno")
|
||||||
|
|
||||||
|
#We now build tests and examples through separate make targets, rather than
|
||||||
|
#during "make". We still need to conditionally include the test and example
|
||||||
|
#in SUBDIRS, even though SUB_TEST and SUB_EXAMPLE will never be
|
||||||
|
#defined, so that the tests and examples are included in the distribution
|
||||||
|
#tarball.
|
||||||
|
AM_CONDITIONAL(SUB_TEST, test "X$ac_cv_use_sub_test" = "Xyes")
|
||||||
|
AM_CONDITIONAL(SUB_EXAMPLE, test "X$ac_cv_use_sub_example" = "Xyes")
|
||||||
|
|
||||||
|
#TAC_ARG_ENABLE_FEATURE(libcheck, [Check for some third-party libraries. (Cannot be disabled unless tests and examples are also disabled.)], LIBCHECK, yes)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Specify other directories
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# enable use of --with-libdirs="-Llibdir1 -Llibdir2 ..." to prepend to LDFLAGS
|
||||||
|
TAC_ARG_WITH_LIBDIRS
|
||||||
|
# enable use of --with-incdirs="-Iincdir1 -Iincdir2 ..." to prepend to CPPFLAGS
|
||||||
|
TAC_ARG_WITH_INCDIRS
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Checks for libraries
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ax_cv_f90_modulecase="lower"
|
||||||
|
FC_VENDOR="none"
|
||||||
|
|
||||||
|
# Define F77_FUNC that will be used to link with Fortran subroutines.
|
||||||
|
if test "X$ac_cv_use_fortran" != "Xno"; then
|
||||||
|
AC_FC_WRAPPERS
|
||||||
|
AC_FC_SRCEXT(f)
|
||||||
|
AC_FC_SRCEXT(f90)
|
||||||
|
# Determine compile-line flag for F90 modules (e.g., -M).
|
||||||
|
AX_F90_MODULE_FLAG
|
||||||
|
if test "X$ax_cv_f90_modflag" = "Xunknown" ; then
|
||||||
|
AC_MSG_ERROR([unable to find f90 modules extension])
|
||||||
|
else
|
||||||
|
FCFLAGS="$ax_cv_f90_modflag../ $ax_cv_f90_modflag. ${FCFLAGS}"
|
||||||
|
fi
|
||||||
|
# Determine case (upper or lower) of F90 module files.
|
||||||
|
AX_F90_MODULE_CASE
|
||||||
|
echo "KDDKDD " $ax_cv_f90_modulecase
|
||||||
|
|
||||||
|
WK_FC_GET_VENDOR()
|
||||||
|
echo "KDDKDD " $FC_VENDOR
|
||||||
|
if test "$FC_VENDOR" = "PGI"; then
|
||||||
|
FCFLAGS="-DPGI ${FCFLAGS}"
|
||||||
|
CFLAGS="-DPGI ${CFLAGS}"
|
||||||
|
fi
|
||||||
|
if test "$FC_VENDOR" = "Lahey"; then
|
||||||
|
FCFLAGS="-DFUJITSU ${FCFLAGS}"
|
||||||
|
CFLAGS="-DFUJITSU ${CFLAGS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(F90_MODULE_LOWERCASE, [test "X$ax_cv_f90_modulecase" != "Xupper"])
|
||||||
|
AM_CONDITIONAL(NAG_F90_COMPILER, [test "X$FC_VENDOR" == "XNAG"])
|
||||||
|
|
||||||
|
# If tests, examples and libcheck are disabled, we don't have to check
|
||||||
|
# for these libraries.
|
||||||
|
|
||||||
|
#if test "X$ac_cv_use_new_package_examples" != "Xno" || test "X$ac_cv_use_libcheck" != "Xno"; then
|
||||||
|
#if test "X$ac_cv_use_zoltan_tests" != "Xno" || test "X$ac_cv_use_zoltan_examples" != "Xno" || test "X$ac_cv_use_libcheck" != "Xno"; then
|
||||||
|
# checks for libraries now
|
||||||
|
dnl Replace `main' with a function in -lm:
|
||||||
|
#AC_SEARCH_LIBS(pow,[m],,AC_MSG_ERROR(Cannot find math library))
|
||||||
|
#AC_SEARCH_LIBS(sqrt,[m],,AC_MSG_ERROR(Cannot find math library))
|
||||||
|
#fi
|
||||||
|
# end of the list of libraries that don't need to be checked for if
|
||||||
|
# tests and examples are disabled.
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Checks for linker characteristics
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Determine libraries needed for linking with Fortran
|
||||||
|
#AC_FC_LIBRARY_LDFLAGS
|
||||||
|
if test "X$ac_cv_use_fortran" = "Xyes"; then
|
||||||
|
AC_FC_LIBRARY_LDFLAGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Zoltan may be built via autotools, cmake, or our native makefile
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
CPPFLAGS="-DAUTOTOOLS_BUILD ${CPPFLAGS}"
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Perform substitutions in output files
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
AC_SUBST(ac_aux_dir)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
# Output files
|
||||||
|
# ------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
AC_CONFIG_FILES([
|
||||||
|
Makefile
|
||||||
|
src/Makefile
|
||||||
|
src/driver/Makefile
|
||||||
|
src/fdriver/Makefile
|
||||||
|
Makefile.export.zoltan
|
||||||
|
example/Makefile
|
||||||
|
example/C/Makefile
|
||||||
|
example/CPP/Makefile
|
||||||
|
siMPI/Makefile
|
||||||
|
siMPI/pyMPI/Makefile
|
||||||
|
siMPI/pyMPI/siMPI/Makefile
|
||||||
|
])
|
||||||
|
# test/Large_Data/Makefile
|
||||||
|
# example/lib/Makefile
|
||||||
|
# example/C/Makefile
|
||||||
|
# example/C/sparse_matrix/Makefile
|
||||||
|
# example/CPP/Makefile
|
||||||
|
# Utilities/Makefile
|
||||||
|
|
||||||
|
AC_OUTPUT()
|
||||||
|
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "Finished Running Zoltan Configure Script"
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
|
515
thirdParty/Zoltan/doc/NEA_docs/developer_html/dev_hybrid.html
vendored
Normal file
515
thirdParty/Zoltan/doc/NEA_docs/developer_html/dev_hybrid.html
vendored
Normal file
@ -0,0 +1,515 @@
|
|||||||
|
<!-------- @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.76 [en] (X11; U; Linux 2.4.2-2smp i686) [Netscape]">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1377">
|
||||||
|
<meta name="author" content="nick aase, neaase@sandia.gov">
|
||||||
|
<title>Zoltan Developer's Guide: Hybrid Partitioning</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#ffffff">
|
||||||
|
<div align="right"><b><i><a href="dev.html">Zoltan Developer's Guide</a>
|
||||||
|
| <a href="dev_reftree.html">Next(NEANEA CHANGE ME)</a> | <a
|
||||||
|
href="dev_parmetis.html">Previous(NEANEA CHANGE ME)</a></i></b></div>
|
||||||
|
<h2>
|
||||||
|
<a name="Hybrid Partitioning"></a>Appendix: Hybrid Partitioning</h2>
|
||||||
|
Hybrid partitioning is an amalgam of Zoltan's native parallel hypergraph
|
||||||
|
partitioner (<a href="dev_phg.html">PHG</a>) and it Recursive Coordinate
|
||||||
|
Bisection algortihm (<a href="dev_rcb.html">RCB</a>). Hybrid partitioning can
|
||||||
|
be useful when a user is looking to strike a happy medium of both efficiency
|
||||||
|
and fidelity in their work. Traditional Zoltan-PHG is well suited to minimize
|
||||||
|
the number of cut hyperedges in the system, but it is comparatively slow due
|
||||||
|
to the multiple layers of coarsening it goes through and the standard matching
|
||||||
|
methods used to calculate new vertices for the coarser hypergraph.
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Hypergraph partitioning is a useful partitioning and
|
||||||
|
load balancing method when connectivity data is available. It can be
|
||||||
|
viewed as a more sophisticated alternative to
|
||||||
|
the traditional graph partitioning.
|
||||||
|
<p>A hypergraph consists of vertices and hyperedges. A hyperedge
|
||||||
|
connects
|
||||||
|
one or more vertices. A graph is a special case of a hypergraph where
|
||||||
|
each edge has size two (two vertices). The hypergraph model is well
|
||||||
|
suited to parallel computing, where vertices correspond to data objects
|
||||||
|
and hyperedges represent the communication requirements. The basic
|
||||||
|
partitioning problem is to partition the vertices into <i>k</i>
|
||||||
|
approximately equal sets such that the number of cut hyperedges is
|
||||||
|
minimized. Most partitioners (including Zoltan-PHG) allows a more
|
||||||
|
general
|
||||||
|
model where both vertices and hyperedges can be assigned weights.
|
||||||
|
It has been
|
||||||
|
shown that the hypergraph model gives a more accurate representation
|
||||||
|
of communication cost (volume) than the graph model. In particular,
|
||||||
|
for sparse matrix-vector multiplication, the hypergraph model
|
||||||
|
<strong>exactly</strong> represents communication volume. Sparse
|
||||||
|
matrices can be partitioned either along rows or columns;
|
||||||
|
in the row-net model the columns are vertices and each row corresponds
|
||||||
|
to an hyperedge, while in the column-net model the roles of vertices
|
||||||
|
and hyperedges are reversed. </p>
|
||||||
|
<p>Zoltan contains a native parallel hypergraph partitioner, called PHG
|
||||||
|
(Parallel HyperGraph partitioner). In addition, Zoltan provides
|
||||||
|
access to <a href="http://bmi.osu.edu/%7Eumit/software.htm">PaToH</a>,
|
||||||
|
a serial hypergraph partitioner.
|
||||||
|
Note that PaToH is not part of Zoltan and should be obtained
|
||||||
|
separately from the <a href="http://bmi.osu.edu/%7Eumit/software.htm">
|
||||||
|
PaToH web site</a>.
|
||||||
|
Zoltan-PHG is a fully parallel multilevel hypergraph partitioner. For
|
||||||
|
further technical description, see <a
|
||||||
|
href="ug_refs.html#hypergraph-ipdps06">[Devine et al, 2006]</a>.<br>
|
||||||
|
</p>
|
||||||
|
<h4>Algorithm:</h4>
|
||||||
|
The algorithm used is multilevel hypergraph partitioning. For
|
||||||
|
coarsening, several versions of inner product (heavy connectivity)
|
||||||
|
matching are available.
|
||||||
|
The refinement is based on Fiduccia-Mattheysis (FM) but in parallel it
|
||||||
|
is only an approximation.
|
||||||
|
|
||||||
|
<h4>Parallel implementation:</h4>
|
||||||
|
A novel feature of our parallel implementation is that we use a 2D
|
||||||
|
distribution of the hypergraph. That is, each processor owns partial
|
||||||
|
data about some vertices and some hyperedges. The processors are
|
||||||
|
logically organized in a 2D grid as well. Most communication is limited
|
||||||
|
to either a processor row or column. This design should allow for
|
||||||
|
good scalability on large number of processors.<br>
|
||||||
|
|
||||||
|
<h4>Data structures:</h4>
|
||||||
|
The hypergraph is the most important data structure. This is stored as
|
||||||
|
a compressed sparse matrix. Note that in parallel, each processor owns
|
||||||
|
a local part of the global hypergraph
|
||||||
|
(a submatrix of the whole matrix).
|
||||||
|
The hypergraph data type is <i>struct HGraph</i>, and contains
|
||||||
|
information like number of vertices, hyperedges, pins, compressed
|
||||||
|
storage of all pins, optional vertex and edge weights, pointers
|
||||||
|
to relevant communicators, and more. One cryptic notation needs an
|
||||||
|
explanation: The arrays <i>hindex, hvertex</i> are used to
|
||||||
|
look up vertex info given a hyperedge, and <i>vindex, vedge</i> are
|
||||||
|
used to look up hyperedge info given a vertex. Essentially,
|
||||||
|
we store the hypergraph as a sparse matrix in both CSR and CSC formats.
|
||||||
|
This doubles the memory cost but gives better performance.
|
||||||
|
The data on each processor is stored using local indexing, starting at zero.
|
||||||
|
In order to get the global vertex or edge number, use the macros
|
||||||
|
<i>VTX_LNO_TO_GNO</i> and <i>EDGE_LNO_TO_GNO</i>. These macros will
|
||||||
|
look up the correct offsets (using the dist_x and dist_y arrays).
|
||||||
|
Note that <i>phg->nVtx</i> is always the local number of vertices,
|
||||||
|
which may be zero on some processors.
|
||||||
|
|
||||||
|
<h4>Parameters:</h4>
|
||||||
|
In the User's Guide, only the most essential parameters have been
|
||||||
|
documented. There are several other parameters, intended for developers
|
||||||
|
and perhaps expert "power" users. We give a more complete list of all
|
||||||
|
parameters below. Note that these parameters <span
|
||||||
|
style="font-style: italic;">may change in future versions!<br>
|
||||||
|
</span>
|
||||||
|
For a precise list of parameters in a particular version of Zoltan, look at the source code (phg.c).
|
||||||
|
<table nosave="" width="100%">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td valign="top"><b>Method String:</b></td>
|
||||||
|
<td><b>HYPERGRAPH</b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><b>Parameters:</b></td>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">HYPERGRAPH_PACKAGE</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">PHG (parallel) or PaToH (serial)<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">CHECK_HYPERGRAPH</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Check if input data is valid.
|
||||||
|
(Slows performance;intended for debugging.)<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">
|
||||||
|
PHG_OUTPUT_LEVEL</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Level of verbosity; 0 is silent.<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_FINAL_OUTPUT</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Print stats about final
|
||||||
|
partition? (0/1)<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_NPROC_VERTEX</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Desired number of processes in
|
||||||
|
the vertex direction (for 2D internal layout) </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_NPROC_HEDGE</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Desired number of processes in
|
||||||
|
the hyperedge direction (for 2D internal layout) </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top"><i> PHG_COARSENING_METHOD</i></td>
|
||||||
|
<td>The method to use in matching/coarsening; currently these are
|
||||||
|
available. <br>
|
||||||
|
<span style="font-style: italic;">agg</span> - agglomerative inner product
|
||||||
|
matching (a.k.a. heavy connectivity matching) <br>
|
||||||
|
<span style="font-style: italic;">ipm</span> - inner product
|
||||||
|
matching (a.k.a. heavy connectivity matching) <br>
|
||||||
|
<span style="font-style: italic;">c-ipm</span> - column
|
||||||
|
ipm; faster method based on ipm within processor columns <br>
|
||||||
|
<span style="font-style: italic;">a-ipm </span>- alternate
|
||||||
|
between fast method (l-ipm ) and ipm <br>
|
||||||
|
<span style="font-style: italic;">l-ipm </span>- local ipm
|
||||||
|
on each processor. Fastest option but often gives poor quality. <br>
|
||||||
|
<i>h-ipm - </i>hybrid ipm that uses partial c-ipm followed
|
||||||
|
by ipm on each level <br>
|
||||||
|
<i><br>
|
||||||
|
</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> <span style="font-style: italic;">PHG_COARSENING_LIMIT</span><br>
|
||||||
|
</td>
|
||||||
|
<td>Number of vertices at which to stop coarsening.<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_VERTEX_VISIT_ORDER</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Ordering of vertices in greedy
|
||||||
|
matching scheme:<br>
|
||||||
|
0 - random<br>
|
||||||
|
1 - natural order (as given by the query functions)<br>
|
||||||
|
2 - increasing vertex weights<br>
|
||||||
|
3 - increasing vertex degree<br>
|
||||||
|
4 - increasing vertex degree, weighted by pins<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_EDGE_SCALING</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Scale edge weights by some
|
||||||
|
function of size of the hyperedges:<br>
|
||||||
|
0 - no scaling<br>
|
||||||
|
1 - scale by 1/(size-1) [absorption scaling]<br>
|
||||||
|
2 - scale by 2/((size*size-1)) [clique scaling]<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_VERTEX_SCALING</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Variations in "inner product"
|
||||||
|
similarity metric (for matching):<br>
|
||||||
|
0 - Euclidean inner product: <x,y><br>
|
||||||
|
1 - cosine similarity: <x,y>/(|x|*|y|)<br>
|
||||||
|
2 - <x,y>/(|x|^2 * |y|^2)<br>
|
||||||
|
3 - scale by sqrt of vertex weights<br>
|
||||||
|
4 - scale by vertex weights<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top"> <i>PHG_COARSEPARTITION_METHOD</i></td>
|
||||||
|
<td>Method to partition the coarsest (smallest) hypergraph;
|
||||||
|
typically done in serial:<br>
|
||||||
|
<span style="font-style: italic;">random</span> - random<br>
|
||||||
|
<span style="font-style: italic;">linear</span> - linear
|
||||||
|
(natural) order<br>
|
||||||
|
<span style="font-style: italic;">greedy </span>- greedy method
|
||||||
|
based on minimizing cuts<br>
|
||||||
|
<span style="font-style: italic;">auto </span>- automatically
|
||||||
|
select from the above methods (in parallel, the processes will do
|
||||||
|
different methods)<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_REFINEMENT_METHOD</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Refinement algorithm:<br>
|
||||||
|
<span style="font-style: italic;">fm </span>- two-way
|
||||||
|
approximate FM<br>
|
||||||
|
<span style="font-style: italic;">none</span> - no refinement<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> <i>PHG_REFINEMENT_LOOP_LIMIT</i></td>
|
||||||
|
<td>Loop limit in FM refinement. Higher number means more
|
||||||
|
refinement. <br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr nosave="" valign="top">
|
||||||
|
<td> <span style="font-style: italic;">PHG_REFINEMENT_MAX_NEG_MOVE</span><br>
|
||||||
|
</td>
|
||||||
|
<td nosave="">Maximum number of negative moves allowed in FM.<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr nosave="" valign="top">
|
||||||
|
<td> <span style="font-style: italic;">PHG_BAL_TOL_ADJUSTMENT</span><br>
|
||||||
|
</td>
|
||||||
|
<td nosave="">Controls how the balance tolerance is adjusted at
|
||||||
|
each level of bisection.<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PHG_RANDOMIZE_INPUT</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Randomize layout of vertices and
|
||||||
|
hyperedges in internal parallel 2D layout? (0/1)<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <a
|
||||||
|
name="PHG_EDGE_WEIGHT_OPERATION"></a><span style="font-style: italic;">PHG_EDGE_WEIGHT_OPERATION</span>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Operation to be applied to edge
|
||||||
|
weights supplied by different processes for the same hyperedge:<br>
|
||||||
|
<i>add</i> - the hyperedge weight will be the sum of the supplied
|
||||||
|
weights<br>
|
||||||
|
<i>max</i> - the hyperedge weight will be the maximum of the
|
||||||
|
supplied weights<br>
|
||||||
|
<i>error</i> - if the hyperedge weights are not equal, Zoltan
|
||||||
|
will flag an error, otherwise the hyperedge weight will be the value
|
||||||
|
returned by the processes<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr nosave="" valign="top">
|
||||||
|
<td> <span style="font-style: italic;">EDGE_SIZE_THRESHOLD</span><br>
|
||||||
|
</td>
|
||||||
|
<td nosave="">Ignore hyperedges greater than this fraction times
|
||||||
|
number of vertices.<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PATOH_ALLOC_POOL0</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Memory allocation for PaToH; see
|
||||||
|
the PaToH manual for details.<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"> <span
|
||||||
|
style="font-style: italic;">PATOH_ALLOC_POOL1</span><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;">Memory allocation for PaToH; see
|
||||||
|
the PaToH manual for details.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top"><b>Default values:</b></td>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><i>HYPERGRAPH_PACKAGE = PHG<br>
|
||||||
|
</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">CHECK_HYPERGRAPH</span>
|
||||||
|
= 0<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><span style="font-style: italic;">PHG_OUTPUT_LEVEL=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><span style="font-style: italic;">PHG_FINAL_OUTPUT=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><i>PHG_REDUCTION_METHOD=ipm</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><span style="font-style: italic;">PHG_REDUCTION_LIMIT=100</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><span style="font-style: italic;">PHG_VERTEX_VISIT_ORDER=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><span style="font-style: italic;">PHG_EDGE_SCALING=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><span style="font-style: italic;">PHG_VERTEX_SCALING=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><i>PHG_COARSEPARTITION_METHOD=greedy</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">PHG_REFINEMENT_METHOD=fm</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><i>PHG_REFINEMENT_LOOP_LIMIT=10</i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">PHG_REFINEMENT_MAX_NEG_MOVE=100</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">PHG_BAL_TOL_ADJUSTMENT=0.7</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">PHG_RANDOMIZE_INPUT=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><span style="font-style: italic;">PHG_EDGE_WEIGHT_OPERATION=max</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">EDGE_SIZE_THRESHOLD=0.25</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">PATOH_ALLOC_POOL0=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: top;"><br>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: top;"><span style="font-style: italic;">PATOH_ALLOC_POOL1=0</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top"><b>Required Query Functions:</b></td>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><b><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_OBJ_FN">ZOLTAN_NUM_OBJ_FN</a></b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><b><a href="../ug_html/ug_query_lb.html#ZOLTAN_OBJ_LIST_FN">ZOLTAN_OBJ_LIST_FN</a></b>
|
||||||
|
or <b><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_OBJ_FN">ZOLTAN_FIRST_OBJ_FN</a></b>/<b><a
|
||||||
|
href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_OBJ_FN">ZOLTAN_NEXT_OBJ_FN</a></b>
|
||||||
|
pair</td>
|
||||||
|
</tr>
|
||||||
|
<tr nosave="" valign="top">
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td nosave=""> <b><a href="../ug_html/ug_query_lb.html#ZOLTAN_HG_SIZE_CS_FN">ZOLTAN_HG_SIZE_CS_FN</a></b>
|
||||||
|
<br>
|
||||||
|
<b><a href="../ug_html/ug_query_lb.html#ZOLTAN_HG_CS_FN">ZOLTAN_HG_CS_FN</a></b>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top"><b>Optional Query Functions:</b></td>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><b><a href="../ug_html/ug_query_lb.html#ZOLTAN_HG_SIZE_EDGE_WTS_FN">ZOLTAN_HG_SIZE_EDGE_WTS_FN</a></b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><br>
|
||||||
|
</td>
|
||||||
|
<td><b><a href="../ug_html/ug_query_lb.html#ZOLTAN_HG_EDGE_WTS_FN">ZOLTAN_HG_EDGE_WTS_FN</a></b></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
It is possible to provide the graph query functions instead of the
|
||||||
|
hypergraph queries, though this is not recommended. If only graph query
|
||||||
|
functions are registered, Zoltan will automatically create a hypergraph
|
||||||
|
from the graph, but some information (specifically, edge weights) will
|
||||||
|
be lost. </p>
|
||||||
|
<hr width="100%">[<a href="ug.html">Table of Contents</a> | <a
|
||||||
|
href="dev_reftree.html">Next:
|
||||||
|
Refinement Tree Partitioning(NEANEA CHANGE ME)</a> | <a
|
||||||
|
href="dev_parmetis.html">Previous:
|
||||||
|
ParMetis(NEANEA CHANGE ME)</a> | <a href="http://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/128_breakdown_percent.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/128_breakdown_percent.pdf
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/128_cutl.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/128_cutl.pdf
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/128_time.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/128_time.pdf
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/2_breakdown_percent.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/2_breakdown_percent.pdf
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/2_cutl.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/2_cutl.pdf
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/2_time.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/2_time.pdf
vendored
Normal file
Binary file not shown.
38
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.aux
vendored
Normal file
38
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.aux
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
\relax
|
||||||
|
\ifx\hyper@anchor\@undefined
|
||||||
|
\global \let \oldcontentsline\contentsline
|
||||||
|
\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
|
||||||
|
\global \let \oldnewlabel\newlabel
|
||||||
|
\gdef \newlabel#1#2{\newlabelxx{#1}#2}
|
||||||
|
\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
|
||||||
|
\AtEndDocument{\let \contentsline\oldcontentsline
|
||||||
|
\let \newlabel\oldnewlabel}
|
||||||
|
\else
|
||||||
|
\global \let \hyper@last\relax
|
||||||
|
\fi
|
||||||
|
|
||||||
|
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}}
|
||||||
|
\@writefile{toc}{\contentsline {section}{\numberline {2}Parallel hypergraphs and geometric input}{1}{section.2}}
|
||||||
|
\@writefile{toc}{\contentsline {section}{\numberline {3}PHG, MPI and 2-dimensional representation}{2}{section.3}}
|
||||||
|
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Before communication}}{2}{table.1}}
|
||||||
|
\newlabel{tab:0/tc}{{1}{2}{\label {tab:0/tc} Before communication\relax }{table.1}{}}
|
||||||
|
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces After communication}}{2}{table.2}}
|
||||||
|
\newlabel{tab:1/tc}{{2}{2}{\label {tab:1/tc} After communication\relax }{table.2}{}}
|
||||||
|
\@writefile{toc}{\contentsline {section}{\numberline {4}Matching}{3}{section.4}}
|
||||||
|
\@writefile{toc}{\contentsline {section}{\numberline {5}Reduction factor}{3}{section.5}}
|
||||||
|
\citation{Catalyurek}
|
||||||
|
\@writefile{toc}{\contentsline {section}{\numberline {6}Results}{4}{section.6}}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Runtimes on 128 processors}}{4}{figure.1}}
|
||||||
|
\newlabel{fig:Times_np_128}{{1}{4}{Runtimes on 128 processors\relax }{figure.1}{}}
|
||||||
|
\bibcite{Catalyurek}{1}
|
||||||
|
\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion and discussion}{5}{section.7}}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Cuts on 128 processors}}{6}{figure.2}}
|
||||||
|
\newlabel{fig:Cuts_np_128}{{2}{6}{Cuts on 128 processors\relax }{figure.2}{}}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Timing by percentage on 128 processors (UL, Shockstem 3D; UR, Shockstem 3D -- 108; LL, RPI; LR, Slac1.5}}{6}{figure.3}}
|
||||||
|
\newlabel{fig:Percent_np_128}{{3}{6}{Timing by percentage on 128 processors (UL, Shockstem 3D; UR, Shockstem 3D -- 108; LL, RPI; LR, Slac1.5\relax }{figure.3}{}}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Runtimes in serial on 2 processors}}{7}{figure.4}}
|
||||||
|
\newlabel{fig:Times_np_2}{{4}{7}{Runtimes in serial on 2 processors\relax }{figure.4}{}}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Cuts in serial on 2 processors}}{7}{figure.5}}
|
||||||
|
\newlabel{fig:Cuts_np_2}{{5}{7}{Cuts in serial on 2 processors\relax }{figure.5}{}}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Timing by percentage on 2 processors (UL, Shockstem 3D; UR, Shockstem 3D -- 108; LL, RPI; LR, Slac1.5}}{9}{figure.6}}
|
||||||
|
\newlabel{fig:Percent_np_2}{{6}{9}{Timing by percentage on 2 processors (UL, Shockstem 3D; UR, Shockstem 3D -- 108; LL, RPI; LR, Slac1.5\relax }{figure.6}{}}
|
336
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.log
vendored
Normal file
336
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.log
vendored
Normal file
@ -0,0 +1,336 @@
|
|||||||
|
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2011.6.3) 18 AUG 2011 13:37
|
||||||
|
entering extended mode
|
||||||
|
%&-line parsing enabled.
|
||||||
|
**hybrid_current.tex
|
||||||
|
(./hybrid_current.tex
|
||||||
|
LaTeX2e <2005/12/01>
|
||||||
|
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, noh
|
||||||
|
yphenation, arabic, basque, bulgarian, coptic, welsh, czech, slovak, german, ng
|
||||||
|
erman, danish, esperanto, spanish, catalan, galician, estonian, farsi, finnish,
|
||||||
|
french, greek, monogreek, ancientgreek, croatian, hungarian, interlingua, ibyc
|
||||||
|
us, indonesian, icelandic, italian, latin, mongolian, dutch, norsk, polish, por
|
||||||
|
tuguese, pinyin, romanian, russian, slovenian, uppersorbian, serbian, swedish,
|
||||||
|
turkish, ukenglish, ukrainian, loaded.
|
||||||
|
(/usr/share/texmf/tex/latex/base/article.cls
|
||||||
|
Document Class: article 2005/09/16 v1.4f Standard LaTeX document class
|
||||||
|
(/usr/share/texmf/tex/latex/base/size12.clo
|
||||||
|
File: size12.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
|
||||||
|
)
|
||||||
|
\c@part=\count79
|
||||||
|
\c@section=\count80
|
||||||
|
\c@subsection=\count81
|
||||||
|
\c@subsubsection=\count82
|
||||||
|
\c@paragraph=\count83
|
||||||
|
\c@subparagraph=\count84
|
||||||
|
\c@figure=\count85
|
||||||
|
\c@table=\count86
|
||||||
|
\abovecaptionskip=\skip41
|
||||||
|
\belowcaptionskip=\skip42
|
||||||
|
\bibindent=\dimen102
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/amsmath/amsmath.sty
|
||||||
|
Package: amsmath 2000/07/18 v2.13 AMS math features
|
||||||
|
\@mathmargin=\skip43
|
||||||
|
|
||||||
|
For additional information on amsmath, use the `?' option.
|
||||||
|
(/usr/share/texmf/tex/latex/amsmath/amstext.sty
|
||||||
|
Package: amstext 2000/06/29 v2.01
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/amsmath/amsgen.sty
|
||||||
|
File: amsgen.sty 1999/11/30 v2.0
|
||||||
|
\@emptytoks=\toks14
|
||||||
|
\ex@=\dimen103
|
||||||
|
))
|
||||||
|
(/usr/share/texmf/tex/latex/amsmath/amsbsy.sty
|
||||||
|
Package: amsbsy 1999/11/29 v1.2d
|
||||||
|
\pmbraise@=\dimen104
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/amsmath/amsopn.sty
|
||||||
|
Package: amsopn 1999/12/14 v2.01 operator names
|
||||||
|
)
|
||||||
|
\inf@bad=\count87
|
||||||
|
LaTeX Info: Redefining \frac on input line 211.
|
||||||
|
\uproot@=\count88
|
||||||
|
\leftroot@=\count89
|
||||||
|
LaTeX Info: Redefining \overline on input line 307.
|
||||||
|
\classnum@=\count90
|
||||||
|
\DOTSCASE@=\count91
|
||||||
|
LaTeX Info: Redefining \ldots on input line 379.
|
||||||
|
LaTeX Info: Redefining \dots on input line 382.
|
||||||
|
LaTeX Info: Redefining \cdots on input line 467.
|
||||||
|
\Mathstrutbox@=\box26
|
||||||
|
\strutbox@=\box27
|
||||||
|
\big@size=\dimen105
|
||||||
|
LaTeX Font Info: Redeclaring font encoding OML on input line 567.
|
||||||
|
LaTeX Font Info: Redeclaring font encoding OMS on input line 568.
|
||||||
|
\macc@depth=\count92
|
||||||
|
\c@MaxMatrixCols=\count93
|
||||||
|
\dotsspace@=\muskip10
|
||||||
|
\c@parentequation=\count94
|
||||||
|
\dspbrk@lvl=\count95
|
||||||
|
\tag@help=\toks15
|
||||||
|
\row@=\count96
|
||||||
|
\column@=\count97
|
||||||
|
\maxfields@=\count98
|
||||||
|
\andhelp@=\toks16
|
||||||
|
\eqnshift@=\dimen106
|
||||||
|
\alignsep@=\dimen107
|
||||||
|
\tagshift@=\dimen108
|
||||||
|
\tagwidth@=\dimen109
|
||||||
|
\totwidth@=\dimen110
|
||||||
|
\lineht@=\dimen111
|
||||||
|
\@envbody=\toks17
|
||||||
|
\multlinegap=\skip44
|
||||||
|
\multlinetaggap=\skip45
|
||||||
|
\mathdisplay@stack=\toks18
|
||||||
|
LaTeX Info: Redefining \[ on input line 2666.
|
||||||
|
LaTeX Info: Redefining \] on input line 2667.
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/graphics/graphicx.sty
|
||||||
|
Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/graphics/keyval.sty
|
||||||
|
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
|
||||||
|
\KV@toks@=\toks19
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/graphics/graphics.sty
|
||||||
|
Package: graphics 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR)
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/graphics/trig.sty
|
||||||
|
Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/config/graphics.cfg
|
||||||
|
File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive
|
||||||
|
)
|
||||||
|
Package graphics Info: Driver file: pdftex.def on input line 90.
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/pdftex-def/pdftex.def
|
||||||
|
File: pdftex.def 2007/01/08 v0.04d Graphics/color for pdfTeX
|
||||||
|
\Gread@gobject=\count99
|
||||||
|
))
|
||||||
|
\Gin@req@height=\dimen112
|
||||||
|
\Gin@req@width=\dimen113
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/tools/verbatim.sty
|
||||||
|
Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
|
||||||
|
\every@verbatim=\toks20
|
||||||
|
\verbatim@line=\toks21
|
||||||
|
\verbatim@in@stream=\read1
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/graphics/color.sty
|
||||||
|
Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/config/color.cfg
|
||||||
|
File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
|
||||||
|
)
|
||||||
|
Package color Info: Driver file: pdftex.def on input line 130.
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/subfigure/subfigure.sty
|
||||||
|
Package: subfigure 2002/03/15 v2.1.5 subfigure package
|
||||||
|
\subfigtopskip=\skip46
|
||||||
|
\subfigcapskip=\skip47
|
||||||
|
\subfigcaptopadj=\dimen114
|
||||||
|
\subfigbottomskip=\skip48
|
||||||
|
\subfigcapmargin=\dimen115
|
||||||
|
\subfiglabelskip=\skip49
|
||||||
|
\c@subfigure=\count100
|
||||||
|
\c@lofdepth=\count101
|
||||||
|
\c@subtable=\count102
|
||||||
|
\c@lotdepth=\count103
|
||||||
|
|
||||||
|
****************************************
|
||||||
|
* Local config file subfigure.cfg used *
|
||||||
|
****************************************
|
||||||
|
(/usr/share/texmf/tex/latex/subfigure/subfigure.cfg)
|
||||||
|
\subfig@top=\skip50
|
||||||
|
\subfig@bottom=\skip51
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/hyperref/hyperref.sty
|
||||||
|
Package: hyperref 2007/02/07 v6.75r Hypertext links for LaTeX
|
||||||
|
\@linkdim=\dimen116
|
||||||
|
\Hy@linkcounter=\count104
|
||||||
|
\Hy@pagecounter=\count105
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/hyperref/pd1enc.def
|
||||||
|
File: pd1enc.def 2007/02/07 v6.75r Hyperref: PDFDocEncoding definition (HO)
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/config/hyperref.cfg
|
||||||
|
File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
|
||||||
|
)
|
||||||
|
(/usr/share/texmf/tex/latex/oberdiek/kvoptions.sty
|
||||||
|
Package: kvoptions 2006/08/22 v2.4 Connects package keyval with LaTeX options (
|
||||||
|
HO)
|
||||||
|
)
|
||||||
|
Package hyperref Info: Hyper figures OFF on input line 2288.
|
||||||
|
Package hyperref Info: Link nesting OFF on input line 2293.
|
||||||
|
Package hyperref Info: Hyper index ON on input line 2296.
|
||||||
|
Package hyperref Info: Plain pages OFF on input line 2303.
|
||||||
|
Package hyperref Info: Backreferencing OFF on input line 2308.
|
||||||
|
|
||||||
|
Implicit mode ON; LaTeX internals redefined
|
||||||
|
Package hyperref Info: Bookmarks ON on input line 2444.
|
||||||
|
(/usr/share/texmf/tex/latex/ltxmisc/url.sty
|
||||||
|
\Urlmuskip=\muskip11
|
||||||
|
Package: url 2005/06/27 ver 3.2 Verb mode for urls, etc.
|
||||||
|
)
|
||||||
|
LaTeX Info: Redefining \url on input line 2599.
|
||||||
|
\Fld@menulength=\count106
|
||||||
|
\Field@Width=\dimen117
|
||||||
|
\Fld@charsize=\dimen118
|
||||||
|
\Choice@toks=\toks22
|
||||||
|
\Field@toks=\toks23
|
||||||
|
Package hyperref Info: Hyper figures OFF on input line 3102.
|
||||||
|
Package hyperref Info: Link nesting OFF on input line 3107.
|
||||||
|
Package hyperref Info: Hyper index ON on input line 3110.
|
||||||
|
Package hyperref Info: backreferencing OFF on input line 3117.
|
||||||
|
Package hyperref Info: Link coloring OFF on input line 3122.
|
||||||
|
\Hy@abspage=\count107
|
||||||
|
\c@Item=\count108
|
||||||
|
\c@Hfootnote=\count109
|
||||||
|
)
|
||||||
|
*hyperref using default driver hpdftex*
|
||||||
|
(/usr/share/texmf/tex/latex/hyperref/hpdftex.def
|
||||||
|
File: hpdftex.def 2007/02/07 v6.75r Hyperref driver for pdfTeX
|
||||||
|
\Fld@listcount=\count110
|
||||||
|
) (./hybrid_current.aux)
|
||||||
|
\openout1 = `hybrid_current.aux'.
|
||||||
|
|
||||||
|
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 26.
|
||||||
|
LaTeX Font Info: ... okay on input line 26.
|
||||||
|
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 26.
|
||||||
|
LaTeX Font Info: ... okay on input line 26.
|
||||||
|
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 26.
|
||||||
|
LaTeX Font Info: ... okay on input line 26.
|
||||||
|
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 26.
|
||||||
|
LaTeX Font Info: ... okay on input line 26.
|
||||||
|
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 26.
|
||||||
|
LaTeX Font Info: ... okay on input line 26.
|
||||||
|
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 26.
|
||||||
|
LaTeX Font Info: ... okay on input line 26.
|
||||||
|
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 26.
|
||||||
|
LaTeX Font Info: ... okay on input line 26.
|
||||||
|
Package hyperref Info: Link coloring OFF on input line 26.
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/hyperref/nameref.sty
|
||||||
|
Package: nameref 2006/12/27 v2.28 Cross-referencing by name of section
|
||||||
|
|
||||||
|
(/usr/share/texmf/tex/latex/oberdiek/refcount.sty
|
||||||
|
Package: refcount 2006/02/20 v3.0 Data extraction from references (HO)
|
||||||
|
)
|
||||||
|
\c@section@level=\count111
|
||||||
|
)
|
||||||
|
LaTeX Info: Redefining \ref on input line 26.
|
||||||
|
LaTeX Info: Redefining \pageref on input line 26.
|
||||||
|
(./hybrid_current.out)
|
||||||
|
(./hybrid_current.out)
|
||||||
|
\@outlinefile=\write3
|
||||||
|
\openout3 = `hybrid_current.out'.
|
||||||
|
|
||||||
|
|
||||||
|
! Missing $ inserted.
|
||||||
|
<inserted text>
|
||||||
|
$
|
||||||
|
l.73 that is, \forall
|
||||||
|
\, $v_x$\in\, $H:$\, \exists\, $C_x = \{c_0, c_1, ...,...
|
||||||
|
|
||||||
|
?
|
||||||
|
! Missing $ inserted.
|
||||||
|
<inserted text>
|
||||||
|
$
|
||||||
|
l.73 that is, \forall\, $v_
|
||||||
|
x$\in\, $H:$\, \exists\, $C_x = \{c_0, c_1, ...,...
|
||||||
|
|
||||||
|
?
|
||||||
|
! Missing $ inserted.
|
||||||
|
<inserted text>
|
||||||
|
$
|
||||||
|
l.73 that is, \forall\, $v_x$\in
|
||||||
|
\, $H:$\, \exists\, $C_x = \{c_0, c_1, ...,...
|
||||||
|
|
||||||
|
?
|
||||||
|
! Missing $ inserted.
|
||||||
|
<inserted text>
|
||||||
|
$
|
||||||
|
l.73 ... \forall\, $v_x$\in\, $H:$\, \exists\, $C_
|
||||||
|
x = \{c_0, c_1, ..., c_{n...
|
||||||
|
|
||||||
|
?
|
||||||
|
[1
|
||||||
|
|
||||||
|
{/usr/share/texmf/fonts/map/pdftex/updmap/pdftex.map}]
|
||||||
|
! Missing $ inserted.
|
||||||
|
<inserted text>
|
||||||
|
$
|
||||||
|
l.132 ...}^{numProc-1} ($number of local vertices_
|
||||||
|
i$)$.
|
||||||
|
?
|
||||||
|
! Missing $ inserted.
|
||||||
|
<inserted text>
|
||||||
|
$
|
||||||
|
l.133
|
||||||
|
|
||||||
|
?
|
||||||
|
[2] [3] <128_time.pdf, id=61, 794.97pt x 614.295pt>
|
||||||
|
File: 128_time.pdf Graphic file (type pdf)
|
||||||
|
<use 128_time.pdf>
|
||||||
|
<128_cutl.pdf, id=62, 794.97pt x 614.295pt>
|
||||||
|
File: 128_cutl.pdf Graphic file (type pdf)
|
||||||
|
<use 128_cutl.pdf> [4 <./128_time.pdf
|
||||||
|
|
||||||
|
pdfTeX warning: pdflatex (file ./128_time.pdf): PDF inclusion: Page Group detec
|
||||||
|
ted which pdfTeX can't handle. Ignoring it.
|
||||||
|
>] <128_breakdown_percent.pdf, id=76, 794.97pt x 614.295pt>
|
||||||
|
File: 128_breakdown_percent.pdf Graphic file (type pdf)
|
||||||
|
|
||||||
|
<use 128_breakdown_percent.pdf> <2_time.pdf, id=77, 794.97pt x 614.295pt>
|
||||||
|
File: 2_time.pdf Graphic file (type pdf)
|
||||||
|
|
||||||
|
<use 2_time.pdf> <2_cutl.pdf, id=78, 794.97pt x 614.295pt>
|
||||||
|
File: 2_cutl.pdf Graphic file (type pdf)
|
||||||
|
<use 2_cutl.pdf>
|
||||||
|
<2_breakdown_percent.pdf, id=79, 794.97pt x 614.295pt>
|
||||||
|
File: 2_breakdown_percent.pdf Graphic file (type pdf)
|
||||||
|
|
||||||
|
<use 2_breakdown_percent.pdf> [5] [6 <./128_cutl.pdf
|
||||||
|
|
||||||
|
pdfTeX warning: pdflatex (file ./128_cutl.pdf): PDF inclusion: Page Group detec
|
||||||
|
ted which pdfTeX can't handle. Ignoring it.
|
||||||
|
> <./128_breakdown_percent.pdf
|
||||||
|
|
||||||
|
pdfTeX warning: pdflatex (file ./128_breakdown_percent.pdf): PDF inclusion: Pag
|
||||||
|
e Group detected which pdfTeX can't handle. Ignoring it.
|
||||||
|
>] [7 <./2_time.pdf
|
||||||
|
|
||||||
|
pdfTeX warning: pdflatex (file ./2_time.pdf): PDF inclusion: Page Group detecte
|
||||||
|
d which pdfTeX can't handle. Ignoring it.
|
||||||
|
> <./2_cutl.pdf
|
||||||
|
|
||||||
|
pdfTeX warning: pdflatex (file ./2_cutl.pdf): PDF inclusion: Page Group detecte
|
||||||
|
d which pdfTeX can't handle. Ignoring it.
|
||||||
|
>] [8] [9 <./2_breakdown_percent.pdf
|
||||||
|
|
||||||
|
pdfTeX warning: pdflatex (file ./2_breakdown_percent.pdf): PDF inclusion: Page
|
||||||
|
Group detected which pdfTeX can't handle. Ignoring it.
|
||||||
|
>] (./hybrid_current.aux) )
|
||||||
|
Here is how much of TeX's memory you used:
|
||||||
|
3336 strings out of 256216
|
||||||
|
44724 string characters out of 1917073
|
||||||
|
104735 words of memory out of 1500000
|
||||||
|
6577 multiletter control sequences out of 10000+200000
|
||||||
|
8770 words of font info for 32 fonts, out of 1200000 for 2000
|
||||||
|
645 hyphenation exceptions out of 8191
|
||||||
|
27i,9n,36p,252b,420s stack positions out of 5000i,500n,6000p,200000b,15000s
|
||||||
|
</usr/share/texmf/fonts/type1/bluesky/cm/cmbx12.pfb>
|
||||||
|
</usr/share/texmf/fonts/type1/bluesky/cm/cmex10.pfb></usr/share/texmf/fonts/typ
|
||||||
|
e1/bluesky/cm/cmmi12.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmmi8.pfb></u
|
||||||
|
sr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb></usr/share/texmf/fonts/type1/b
|
||||||
|
luesky/cm/cmr12.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmr8.pfb></usr/sha
|
||||||
|
re/texmf/fonts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf/fonts/type1/bluesk
|
||||||
|
y/cm/cmsy8.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmti12.pfb></usr/share/
|
||||||
|
texmf/fonts/type1/bluesky/cm/cmtt12.pfb>
|
||||||
|
Output written on hybrid_current.pdf (9 pages, 186635 bytes).
|
||||||
|
PDF statistics:
|
||||||
|
186 PDF objects out of 1000 (max. 8388607)
|
||||||
|
27 named destinations out of 1000 (max. 131072)
|
||||||
|
103 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||||
|
|
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.pdf
vendored
Normal file
Binary file not shown.
296
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.tex
vendored
Normal file
296
thirdParty/Zoltan/doc/NEA_docs/writeup/hybrid_current.tex
vendored
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\usepackage{amsmath} % need for subequations
|
||||||
|
\usepackage{graphicx} % need for figures
|
||||||
|
\usepackage{verbatim} % useful for program listings
|
||||||
|
\usepackage{color} % use if color is used in text
|
||||||
|
\usepackage{subfigure} % use for side-by-side figures
|
||||||
|
\usepackage{hyperref} % use for hypertext links, including those to external documents and URLs
|
||||||
|
|
||||||
|
\setlength{\baselineskip}{16.0pt} % 16 pt usual spacing between lines
|
||||||
|
\setlength{\parskip}{3pt plus 2pt}
|
||||||
|
\setlength{\parindent}{20pt}
|
||||||
|
\setlength{\oddsidemargin}{0.5cm}
|
||||||
|
\setlength{\evensidemargin}{0.5cm}
|
||||||
|
\setlength{\marginparsep}{0.75cm}
|
||||||
|
\setlength{\marginparwidth}{2.5cm}
|
||||||
|
\setlength{\marginparpush}{1.0cm}
|
||||||
|
\setlength{\textwidth}{150mm}
|
||||||
|
|
||||||
|
\begin{comment}
|
||||||
|
\pagestyle{empty}
|
||||||
|
\end{comment}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
{\large Hybrid Partitioning in Zoltan} \\
|
||||||
|
Nick Aase, Karen Devine \\
|
||||||
|
Summer, 2011
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Introduction}
|
||||||
|
When used for partitioning, Zoltan has a wide range of algorithms
|
||||||
|
available to it. Traditionally they have fallen into two categories:
|
||||||
|
geometric-based partitioning, and topology-based partitioning. Each
|
||||||
|
method has its own strengths and weaknesses which ultimately come down
|
||||||
|
to the tradeoff between speed and quality, and the onus is placed
|
||||||
|
upon the user to determine which is more desirable for the project
|
||||||
|
at hand.
|
||||||
|
|
||||||
|
In our project we strived to develop a hybrid partitioning algorithm;
|
||||||
|
one that attempts to take advantage of the efficiency of geometric
|
||||||
|
methods, as well as the precision of topological ones. The reasoning
|
||||||
|
behind this concept is that problem sets with large amounts of data may
|
||||||
|
be more easily digestible by topological methods if they are first
|
||||||
|
reduced into managable pieces based on their geometry.
|
||||||
|
|
||||||
|
The two subjects chosen for this project were the Recursive
|
||||||
|
Coordinate Bisection (RCB) algorithm and Parallel Hypergraph
|
||||||
|
partitioning (PHG). RCB is an extremely fast method of partitioning,
|
||||||
|
but it can be clumsy at times when it ``cuts'' across a coordinate plane.
|
||||||
|
On the other hand, PHG has a good understanding of the relationships
|
||||||
|
between data, making its partitioning quite accurate, but it suffers
|
||||||
|
from having to spend a great deal of time finding those relationships.
|
||||||
|
|
||||||
|
For further information on implementing hybrid partitioning, please see
|
||||||
|
the developer's guide at
|
||||||
|
http://www.cs.sandia.gov/Zoltan/dev\_html/dev\_hybrid.html
|
||||||
|
|
||||||
|
|
||||||
|
\section{Parallel hypergraphs and geometric input}
|
||||||
|
In order for Zoltan to support hybrid partitioning, it is necessary
|
||||||
|
to properly and frequently obtain, preserve, and communicate coordinate
|
||||||
|
data. The first step that needed to be taken was to modify PHG to
|
||||||
|
support coordinate information. Hypergraph objects carry a substantial
|
||||||
|
amount of data already, but we had to add an array of floating point
|
||||||
|
values to store the coordinates. Currently, when a hypergraph is built and
|
||||||
|
geometric information is available from the input, each vertex will have
|
||||||
|
a corresponding subset within the array defining its coordinates;
|
||||||
|
that is, \forall\, $v_x$\in\, $H:$\, \exists\, $C_x = \{c_0, c_1, ..., c_{n-1}\},$
|
||||||
|
where $v_x$ is an arbitrary vertex in the hypergraph $H$, $C_x$ is its
|
||||||
|
corresponding coordinate subset, and $n$ is the number of dimensions in
|
||||||
|
the system. In this way, Zoltan can treat each coordinate subset as an
|
||||||
|
element of that vertex
|
||||||
|
|
||||||
|
|
||||||
|
\section{PHG, MPI and 2-dimensional representation}
|
||||||
|
PHG is interesting in that multiple processors can share partial data
|
||||||
|
that describes the properties of hyperedges and vertices. This sort of
|
||||||
|
system can be represented in a 2-dimensional distribution similar to
|
||||||
|
Table 1. A populated field represents that a processor on the y-axis has
|
||||||
|
data related to the vertex on the x-axis. In this example, you can see
|
||||||
|
that processor $P_0$ and $P_2$ share data describing vertices $v_0$ and
|
||||||
|
$v_2$.
|
||||||
|
|
||||||
|
\begin{table}[h]
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{|r|l|l|l|}
|
||||||
|
\hline
|
||||||
|
Processor & $v_0$ & $v_1$ & $v_2$ \\
|
||||||
|
\hline
|
||||||
|
$P_0$ & x & & x \\
|
||||||
|
\hline
|
||||||
|
$P_1$ & & x & \\
|
||||||
|
\hline
|
||||||
|
$P_2$ & x & & x \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\caption{\label{tab:0/tc} Before communication}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
Using Message Passing Interface (MPI) communicators, it is possible to
|
||||||
|
communicate with processors by column. We use an \texttt{MPI\_Allreduce}
|
||||||
|
call to collect data from each processor, which groups them into a usable
|
||||||
|
form. Consider Table 2.
|
||||||
|
|
||||||
|
\begin{table}[h]
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{|r|l|l|l|}
|
||||||
|
\hline
|
||||||
|
Processor & $v_0$ & $v_1$ & $v_2$ \\
|
||||||
|
\hline
|
||||||
|
$P_0$ & x & & \\
|
||||||
|
\hline
|
||||||
|
$P_1$ & & x & \\
|
||||||
|
\hline
|
||||||
|
$P_2$ & & & x \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\caption{\label{tab:1/tc} After communication}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
This same sort of operation is performed with weight data, so implementing
|
||||||
|
it on coordinate data was simply another step in setting up PHG to support
|
||||||
|
coordinate information from the input. Afterwards the entirity of a vertex's
|
||||||
|
data will be unique to a single processor, with the number of global
|
||||||
|
vertices == $\sum_{i=0}^{numProc-1} ($number of local vertices_i$)$.
|
||||||
|
|
||||||
|
|
||||||
|
\section{Matching}
|
||||||
|
There are several matching methods already native to Zoltan and specific to
|
||||||
|
PHG, but we needed to create a new method in order to use RCB on the
|
||||||
|
hypergraph data. Before the actual matching occurs several specialized
|
||||||
|
callbacks and parameters are registered. Doing this is crucial if RCB and PHG
|
||||||
|
are to interface properly with each other.
|
||||||
|
|
||||||
|
The next task is to physically call RCB. It was easy enough to send PHG
|
||||||
|
data to RCB as we simply used the \texttt{Zoltan\_LB\_Partition} wrapper,
|
||||||
|
not unlike other standard load balancing partitioners. However, getting
|
||||||
|
matchings \emph{back} from RCB to PHG was another matter entirely. Thanks to
|
||||||
|
Dr. Devine's work, we were able to ostensibly comondeer one of RCB's unused
|
||||||
|
return values: since all matching algorithms conform syntactically to the
|
||||||
|
afforementioned load-balancing wrapper, there are some arguments and/or
|
||||||
|
values that are never used depending on what data that partitioner needs In
|
||||||
|
the case of RCB, the return value \texttt{*export\_global\_ids}, which is
|
||||||
|
defined in its prototype, was never actually computed. Dr. Devine was able
|
||||||
|
to rewire RCB so that, when using hybrid partitioning, it would return the
|
||||||
|
IDs of the matchings we need for each hypergraph (which are referred to in
|
||||||
|
the matching procedure as \emph{candidates}).
|
||||||
|
|
||||||
|
This new matching procedure is similar to PHG's agglomerative matching,
|
||||||
|
whereby candidate vertices are selected to represent groups of similar
|
||||||
|
vertices. These candidates then make up the standard vertices in the
|
||||||
|
resultant coarse hypergraph. The major difference is that standard
|
||||||
|
agglomerative matching determines its candidates by the connectivity of
|
||||||
|
vertices to one another; the more heavily connected a subset of vertices
|
||||||
|
is, the more likely they will share the same candidate. Using RCB means
|
||||||
|
making the assumption that related vertices will be geometrically similar:
|
||||||
|
recursive geometric cuts will be more likely to naturally bisect less
|
||||||
|
connected parts of the hypergraph, and the vertices that are members of
|
||||||
|
the resulting subdomains will share the same candidates. Given RCB's
|
||||||
|
track record, this method should be significantly faster than the
|
||||||
|
agglomerative matching.
|
||||||
|
|
||||||
|
|
||||||
|
\section{Reduction factor}
|
||||||
|
When using hybrid partitioning, the user passes a parameter in the input
|
||||||
|
file called \texttt{HYBRID\_REDUCTION\_FACTOR}, which is a number $> 0$
|
||||||
|
and $\leq 1$ that gets passed into RCB. This parameter defines the
|
||||||
|
aggressiveness of the overall procedure. This number simply determines
|
||||||
|
the amount by which the larger graph will be reduced (e.g. for the
|
||||||
|
original, fine hypergraph, $H_f$, where the number of vertices
|
||||||
|
$|V_f| == 1000$, and a reduction factor of $f == 0.1$, the coarse hypergraph,
|
||||||
|
$H_c$, will have $|V_c| == 100$ vertices).
|
||||||
|
|
||||||
|
This gives the user more control over the balance between quality
|
||||||
|
and efficiency.
|
||||||
|
|
||||||
|
|
||||||
|
\section{Results}
|
||||||
|
We ran experiments primarily with 2 and 128 processors on the Odin cluster
|
||||||
|
at Sandia National Labs, though there were brief, undocumented forees with
|
||||||
|
16 and 32 processors as well. Odin has two AMD Opteron 2.2GHz processors
|
||||||
|
and 4GB of RAM on each node, which are connected with a Myrinet network
|
||||||
|
\cite{Catalyurek}. The partitioning methods used were RCB, PHG, and hybrid
|
||||||
|
partitioning with a reduction factor of 0.01, 0.05, and 0.1. Each run went
|
||||||
|
through 10 iterations of the scenario. The runs with 128 processors were
|
||||||
|
given 5 different meshes to run on, whereas the 2 processor runs only ran
|
||||||
|
on the 4 smaller meshes, as the cluster was undergoing diagnostics at the
|
||||||
|
time of the experiements.
|
||||||
|
|
||||||
|
%NEED TIMES @ 128 PROCS
|
||||||
|
\begin{figure}[hgp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth, height=80mm]{128_time.pdf}
|
||||||
|
\caption{Runtimes on 128 processors}\label{fig:Times_np_128}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%NEED cutl @ 128 PROCS
|
||||||
|
\begin{figure}[hgp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth, height=70mm]{128_cutl.pdf}
|
||||||
|
\caption{Cuts on 128 processors}\label{fig:Cuts_np_128}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
You can see from Figure 1 and 2 that at 128 processors the hybrid methods
|
||||||
|
are mainly slower than PHG and less accurate than RCB: both results are
|
||||||
|
the inverse of what we had hoped. There was better news looking at where
|
||||||
|
the processes were taking their time though:
|
||||||
|
|
||||||
|
%timer breakdowns for 128
|
||||||
|
\begin{figure}[hgp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth, height=70mm]{128_breakdown_percent.pdf}
|
||||||
|
\caption{Timing by percentage on 128 processors (UL, Shockstem 3D; UR,
|
||||||
|
Shockstem 3D -- 108; LL, RPI; LR, Slac1.5}\label{fig:Percent_np_128}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The dramatic decrease in the matching time meant that RCB was, indeed,
|
||||||
|
helping on that front.
|
||||||
|
|
||||||
|
When we ran our simulations in serial, however, we saw some very different
|
||||||
|
results:
|
||||||
|
|
||||||
|
%times, cutl
|
||||||
|
\begin{figure}[hgp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth, height=80mm]{2_time.pdf}
|
||||||
|
\caption{Runtimes in serial on 2 processors}\label{fig:Times_np_2}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%NEED cutl @ 128 PROCS
|
||||||
|
\begin{figure}[hgp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth, height=70mm]{2_cutl.pdf}
|
||||||
|
\caption{Cuts in serial on 2 processors}\label{fig:Cuts_np_2}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
In general the hybrid times beat the PHG times, and the hybrid cuts beat
|
||||||
|
the RCB cuts.
|
||||||
|
|
||||||
|
%time breakdowns for 2
|
||||||
|
\begin{figure}[hgp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth, height=70mm]{2_breakdown_percent.pdf}
|
||||||
|
\caption{Timing by percentage on 2 processors (UL, Shockstem 3D; UR,
|
||||||
|
Shockstem 3D -- 108; LL, RPI; LR, Slac1.5}\label{fig:Percent_np_2}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Looking at individual timers in this serial run, we can see that RCB has
|
||||||
|
still drastically reduced the matching time. In addition, the slowdown in
|
||||||
|
the coarse partitioning has been greatly reduced.
|
||||||
|
|
||||||
|
\section{Conclusion and discussion}
|
||||||
|
The parallel implementation of hybrid partitioning is obviously not
|
||||||
|
functioning as desired, but we believe that there is ultimately a great
|
||||||
|
deal of promise in this method. Seeing the results from our serial runs
|
||||||
|
is encouraging, and it would be worth the effort to continue forward.
|
||||||
|
|
||||||
|
Perhaps it would be helpful to check for any communication issues arising
|
||||||
|
between processors. The whole system could potentially drag, was a
|
||||||
|
single processor waiting for a message. Additionally, Dr. Catalyurek had
|
||||||
|
suggested only using RCB-based coarsening on the largest, most complex
|
||||||
|
hypergraphs, and then revert to standard agglomerative matching for
|
||||||
|
coarser iterations.
|
||||||
|
|
||||||
|
At this moment, there could be four different ways to use Dr. Catalyurek's
|
||||||
|
method: the first, and perhaps simplest of the three, would be to hardwire
|
||||||
|
in the number of coarsening levels to give to RCB. A second way would be
|
||||||
|
to define a new parameter to allow the user to select the number of
|
||||||
|
RCB-based coarsenings. A third would be to write a short algorithm to
|
||||||
|
determine and use the optimal number of layers based off of the input.
|
||||||
|
Finally, there could be an option of user input, with a default to
|
||||||
|
be either of the other ways.
|
||||||
|
|
||||||
|
\begin{thebibliography}{5}
|
||||||
|
|
||||||
|
\bibitem{Catalyurek}U.V. Catalyurek, E.G. Boman, K.D. Devine, D. Bozdag,
|
||||||
|
R.T. Heaphy, and L.A. Riesen. \emph{A Repartitioning Hypergraph Model
|
||||||
|
for Dynamic Load Balancing.} Sandia National Labs, 2009.
|
||||||
|
|
||||||
|
\end{thebibliography}
|
||||||
|
|
||||||
|
{\small \noindent August 2011.}
|
||||||
|
\end{document}
|
||||||
|
|
||||||
|
|
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/odin-data.ods
vendored
Normal file
BIN
thirdParty/Zoltan/doc/NEA_docs/writeup/odin-data.ods
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/Tutorial/zoltan_tutorial_document.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/Tutorial/zoltan_tutorial_document.pdf
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/Tutorial/zoltan_tutorial_presentation.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/Tutorial/zoltan_tutorial_presentation.pdf
vendored
Normal file
Binary file not shown.
BIN
thirdParty/Zoltan/doc/Zoltan_pdf/ug.pdf
vendored
Normal file
BIN
thirdParty/Zoltan/doc/Zoltan_pdf/ug.pdf
vendored
Normal file
Binary file not shown.
1041
thirdParty/Zoltan/docs/Zoltan.html
vendored
Normal file
1041
thirdParty/Zoltan/docs/Zoltan.html
vendored
Normal file
File diff suppressed because it is too large
Load Diff
527
thirdParty/Zoltan/docs/Zoltan_FAQ.html
vendored
Normal file
527
thirdParty/Zoltan/docs/Zoltan_FAQ.html
vendored
Normal file
@ -0,0 +1,527 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta NAME="review" content="28 May, 1999">
|
||||||
|
<meta NAME="subject" content="Zoltan Home Page">
|
||||||
|
<meta NAME="sandia.approval_type" content="formal">
|
||||||
|
<meta NAME="sandia.approved" content="SAND99-1375">
|
||||||
|
<meta NAME="sandia.create_date" content="05/28/99">
|
||||||
|
<meta NAME="keywords" content="Zoltan, Zoltan Home Page, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta NAME="description" content="Zoltan: Home Page for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta NAME="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="https://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="https://www.sandia.gov/Main.html"><img SRC="https://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="https://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="https://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev_html/dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2A-nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_FAQ.html">
|
||||||
|
Frequently Asked Questions</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="https://github.com/sandialabs/Zoltan/releases">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 8th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="https://www.sandia.gov/general/privacy-security/index.html">Sandia Privacy and Security Notice</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP><!--MAIN CONTENT AREA STARTS HERE--><!----------------THIS IS A CHANGE AREA----------------><!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------><b><font face="Verdana, Arial, Helvetica"><font size=+2>Zoltan: </font></font></b>
|
||||||
|
<br><b><font face="Verdana, Arial, Helvetica"><font size=+2>Parallel Partitioning, Load Balancing and Data-Management Services
|
||||||
|
<p>
|
||||||
|
Frequently Asked Questions
|
||||||
|
</font></font></b>
|
||||||
|
<p><!---------------END OF THIS CHANGE AREA---------------><!----------------THIS IS A CHANGE AREA----------------><!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<p>
|
||||||
|
<ol>
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------ Type questions here; hyperlink to answers below. ---------->
|
||||||
|
<!------------ Keep them in the same order! ---------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<li> <a href="#ZOLTANH">How do I upgrade from the Zoltan v1 interface (in
|
||||||
|
lbi_const.h) to the current Zoltan interface (in zoltan.h)?
|
||||||
|
<li> <a href="#EMPTYPART">Zoltan's hypergraph partitioner
|
||||||
|
is returning empty parts, that is, parts that have zero
|
||||||
|
objects in them. Is this a bug?</a>
|
||||||
|
<li> <a href="#MPILEAK">On some platforms, why do Zoltan partitioning
|
||||||
|
methods RCB and RIB use an increasing amount of memory over multiple
|
||||||
|
invocations?</a>
|
||||||
|
<li> <a href=#INTELF90">Why does compilation of the Fortran interface hang
|
||||||
|
with Intel's F90 compiler?</a>
|
||||||
|
<li> <a href="#MPIRECVLIMIT">During runs (particularly on RedStorm), MPI
|
||||||
|
reports that it is out of resources or too many messages have been posted.
|
||||||
|
What does this mean and what can I do?</a>
|
||||||
|
<li><a href="#MPIRECVLIMIT2">On very large problems,
|
||||||
|
Zoltan communication routines fail in MPI_Alltoallv.
|
||||||
|
Why does this happen and what can I do?</a>
|
||||||
|
<li> <a href="#REALLOCBUG">Realloc fails when there is plenty of memory. Is this a Zoltan bug?</a>
|
||||||
|
<li> <a href="#DEPFILES">What does the following message mean during
|
||||||
|
compilation of <i>zoltan</i>:
|
||||||
|
Makefile:28: mem.d: No such file or directory
|
||||||
|
</ol>
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<p>
|
||||||
|
<ol>
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------ Type answers here. ---------------->
|
||||||
|
<!------------ Keep them in the same order as list above! ---------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li> <a NAME="ZOLTANH"></a>How do I upgrade from the Zoltan v1 interface (in
|
||||||
|
lbi_const.h) to the current Zoltan interface (in zoltan.h)?
|
||||||
|
<p>
|
||||||
|
The Zoltan interface was revised in version 1.3 to include "Zoltan" in
|
||||||
|
function names and defined types. Upgrading to this interface is easy.
|
||||||
|
<ul>
|
||||||
|
<li> Include "zoltan.h" instead of "lbi_const.h" in your source files.
|
||||||
|
<li> For most Zoltan functions and constants, prefix "LB_" is replaced
|
||||||
|
by "Zoltan_"; for example, "LB_Set_Param" is now "Zoltan_Set_Param."
|
||||||
|
A few exceptions exist; for example,
|
||||||
|
"LB_Balance" is Zoltan_LB_Balance; "LB_Free_Data" is "Zoltan_LB_Free_Data."
|
||||||
|
See the <a href="ug_html/ug_backward.html#Backward v1.3">Release v1.3
|
||||||
|
backward compatibility notes</a> for a complete list of name changes.
|
||||||
|
<li> Fortran90 applications should define user-defined data
|
||||||
|
in <i>zoltan_user_data.f90</i> rather than <i>lb_user_const.f90</i>.
|
||||||
|
</ul>
|
||||||
|
More complete details are in the
|
||||||
|
<a href="ug_html/ug_backward.html#Backward v1.3">Release v1.3
|
||||||
|
backward compatibility notes</a>.
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li> <a NAME="EMPTYPART"></a>Zoltan's hypergraph partitioner
|
||||||
|
is returning empty parts, that is, parts that have zero
|
||||||
|
objects in them. Is this a bug?
|
||||||
|
<p>
|
||||||
|
The hypergraph partitioner creates partitions with up to a specified amount
|
||||||
|
of load imbalance; the default value is 10% imbalance allowed, but the user
|
||||||
|
can tighten the load imbalance. Any partition that satisfies the load
|
||||||
|
imbalance tolerance is a valid partition. As a secondary goal, the
|
||||||
|
hypergraph partitioner attempts to minimize interprocessor communication.
|
||||||
|
Having a part with zero weight almost certainly reduces total communication;
|
||||||
|
the zero-weight part would not need to communicate with any other part.
|
||||||
|
<p>
|
||||||
|
So in some cases, Zoltan is generating a valid partition -- one that
|
||||||
|
satisfies the imbalance tolerance -- that happens to have lower total
|
||||||
|
communication if one of the parts is empty. This is a good thing, but one
|
||||||
|
that some applications don't like because they didn't consider having zero
|
||||||
|
weight on a processor.
|
||||||
|
<p>
|
||||||
|
To try to avoid this problem, lower the imbalance tolerance so that
|
||||||
|
the partitioner is more likely to give work to all parts. Change the value
|
||||||
|
of Zoltan parameter
|
||||||
|
<a href="ug_html/ug_alg.html#IMBALANCE_TOL">IMBALANCE_TOL</a>
|
||||||
|
to a smaller value; e.g., 1.03 to allow only 3% imbalance: <br>
|
||||||
|
<a href="ug_html/ug_interface_init.html#Zoltan_Set_Param">Zoltan_Set_Param</a>(zz, "IMBALANCE_TOL", "1.03");
|
||||||
|
<p>
|
||||||
|
As an alternative, you may try one of Zoltan geometric methods, such as
|
||||||
|
<a href="ug_html/ug_alg_rcb.html">RCB</a>,
|
||||||
|
<a href="ug_html/ug_alg_rib.html">RIB</a> or
|
||||||
|
<a href="ug_html/ug_alg_hsfc.html">HSFC</a>, which do not have this property.
|
||||||
|
<p>
|
||||||
|
We may in the future add a parameter to disallow zero-weight parts, but at
|
||||||
|
present, we do not have that option.
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li> <a NAME="MPILEAK"></a>On some platforms, why do Zoltan partitioning
|
||||||
|
methods RCB and RIB use an increasing amount of memory over multiple
|
||||||
|
invocations?
|
||||||
|
<p>
|
||||||
|
Zoltan partitioning methods RCB and RIB use MPI_Comm_dup and MPI_Comm_split
|
||||||
|
to recursively create communicators with subsets of processors.
|
||||||
|
Some implementations of
|
||||||
|
MPI (e.g., the default MPI on Sandia's Thunderbird cluster) do not correctly
|
||||||
|
release memory associated with these communicators during MPI_Comm_free,
|
||||||
|
resulting in growing memory use over multiple invocations of RCB or RIB.
|
||||||
|
An undocumented workaround in
|
||||||
|
Zoltan is to set the TFLOPS_SPECIAL parameter to 1 (e.g.,
|
||||||
|
<a href="ug_html/ug_interface_init.html#Zoltan_Set_Param"><b>Zoltan_Set_Param</b></a>(zz,"TFLOPS_SPECIAL","1");), which causes an
|
||||||
|
implementation that doesn't use MPI_Comm_split to be invoked.
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li> <a NAME=INTELF90"></a>Why does compilation of the Fortran interface hang
|
||||||
|
with Intel's F90 compiler?
|
||||||
|
<p>
|
||||||
|
There is a bug in some versions of Intel's F90 compiler. We know
|
||||||
|
Zoltan's Fortran interface compiles with Intel's F90 compiler versions
|
||||||
|
10.1.015 through 11.1.056. We know that it does not compile with
|
||||||
|
versions 11.1.059, 11.1.069 and 11.1.072. We reported the problem to
|
||||||
|
Intel, and we are told that the compiler bug is fixed in version 11.1 update 7,
|
||||||
|
which is scheduled for release in August 2010. See this
|
||||||
|
<a href="https://software.intel.com/en-us/forums/showthread.php?t=75385">Intel
|
||||||
|
Forum link</a> for more details.
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li><a NAME="MPIRECVLIMIT"></a>During runs (particularly on RedStorm), MPI
|
||||||
|
reports that it is out of resources or too many messages have been posted.
|
||||||
|
What does this mean and what can I do?
|
||||||
|
<p>
|
||||||
|
Some implementations of MPI (including RedStorm's implementation) limit
|
||||||
|
the number of message receives that can be posted simultaneously. Some
|
||||||
|
communications in Zoltan (including hashing of IDs to processors in the
|
||||||
|
Zoltan Distributed Data Directory) can require messages from large numbers
|
||||||
|
of processors, triggering this error on certain platforms.
|
||||||
|
<p>
|
||||||
|
To avoid this problem, Zoltan contains logic to use AllToAll communication
|
||||||
|
instead of point-to-point communication when a large number
|
||||||
|
of receives are needed. The maximum number of simultaneous receives allowed
|
||||||
|
can be set as a compile-time option to Zoltan.
|
||||||
|
In the <a href="ug_html/ug_usage.html#TrilinosAutotools">Autotool build
|
||||||
|
environment</a>, option <i>--enable-mpi-recv-limit=#</i> sets the
|
||||||
|
maximum number of simultaneous receives allowed. The default value is 4.
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li><a NAME="MPIRECVLIMIT2"></a>On very large problems,
|
||||||
|
Zoltan communication routines fail in MPI_Alltoallv.
|
||||||
|
Why does this happen and what can I do?
|
||||||
|
<p>
|
||||||
|
For very large problems, the values in the displacement arrays needed
|
||||||
|
by MPI_Alltoallv can exceed INT_MAX (the largest integer that can be stored
|
||||||
|
in 32 bits). The solution to this problem is to make Zoltan avoid using
|
||||||
|
MPI_Alltoallv and, instead, use point-to-point sends and receives. The
|
||||||
|
compile-time option
|
||||||
|
in the <a href="ug_html/ug_usage.html#TrilinosAutotools">Autotool build
|
||||||
|
environment</a> is <i>--enable-mpi-recv-limit=0</i>.
|
||||||
|
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li> <a NAME="REALLOCBUG"></a>Realloc fails when there is plenty of memory. Is this a Zoltan bug?
|
||||||
|
<p>
|
||||||
|
This problem has been noted on different Linux clusters running parallel
|
||||||
|
applications using different MPI libraries and C++ libraries.
|
||||||
|
Realloc fails where a malloc call will succeed. The source of the error has
|
||||||
|
not been identified, but it is not a Zoltan bug. The
|
||||||
|
solution is to compile Zoltan with the flag <b>-DREALLOC_BUG</b>.
|
||||||
|
Zoltan will replace
|
||||||
|
every realloc call with malloc followed by a memcpy and a free.
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<li> <a NAME="DEPFILES"></a>What does the following message mean during
|
||||||
|
compilation of Zoltan?<br>
|
||||||
|
Makefile:28: mem.d: No such file or directory</blockquote>
|
||||||
|
<p>
|
||||||
|
In the old "manual" build system for Zoltan, dependency files were
|
||||||
|
generated for each source file <i>filename</i>.c. The first time Zoltan
|
||||||
|
was built for a given platform, the dependency files do not exist.
|
||||||
|
After producing this
|
||||||
|
warning, gmake created the dependency files it needed and continued
|
||||||
|
compilation.
|
||||||
|
<p>
|
||||||
|
Newer versions of Zoltan use autotools or cmake for builds and, thus, do
|
||||||
|
not produce this warning.
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
Updated: August 2, 2010
|
||||||
|
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
Copyright (c) 2000-2012, Sandia National Laboratories. <br>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr width="100%">
|
||||||
|
<table BORDER=0 WIDTH="100%" >
|
||||||
|
<tr ALIGN=CENTER>
|
||||||
|
<td VALIGN=TOP WIDTH="140">
|
||||||
|
<table BORDER=0 WIDTH="140" >
|
||||||
|
<tr>
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="120"></td>
|
||||||
|
|
||||||
|
<td WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map NAME="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="https://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="https://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="https://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="https://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="https://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="https://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="https://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</body>
|
||||||
|
</html>
|
338
thirdParty/Zoltan/docs/Zoltan_bugreport.html
vendored
Normal file
338
thirdParty/Zoltan/docs/Zoltan_bugreport.html
vendored
Normal file
@ -0,0 +1,338 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Home Page">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1375">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99">
|
||||||
|
<meta name="keywords" content="Zoltan, Zoltan Home Page, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta name="description" content="Zoltan: Home Page for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="https://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="https://www.sandia.gov/Main.html"><img SRC="https://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="https://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="https://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev_html/dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2A-nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_FAQ.html">
|
||||||
|
Frequently Asked Questions</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="https://github.com/sandialabs/Zoltan/releases">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP>
|
||||||
|
<!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Zoltan:
|
||||||
|
</font></font></b>
|
||||||
|
<br>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Data-Management Services for Parallel Applications
|
||||||
|
</font></font></b>
|
||||||
|
<p>
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Reporting Zoltan Bugs
|
||||||
|
</font></font></b>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
The Zoltan team uses Trilinos' <a href="https://github.com/trilinos/Trilinos">Github</a> to
|
||||||
|
collect bug reports.
|
||||||
|
In your bug reports, please mention "@trilinos/zoltan" so that your bug report
|
||||||
|
is sent to Zoltan developers.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr width="100%">
|
||||||
|
<table BORDER=0 WIDTH="100%" >
|
||||||
|
<tr ALIGN=CENTER>
|
||||||
|
<td VALIGN=TOP WIDTH="140">
|
||||||
|
<table BORDER=0 WIDTH="140" >
|
||||||
|
<tr>
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="120"></td>
|
||||||
|
|
||||||
|
<td WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="https://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="https://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="https://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="https://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="https://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="https://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="https://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</body>
|
||||||
|
</html>
|
437
thirdParty/Zoltan/docs/Zoltan_cite.html
vendored
Normal file
437
thirdParty/Zoltan/docs/Zoltan_cite.html
vendored
Normal file
@ -0,0 +1,437 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Home Page">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1375">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99">
|
||||||
|
<meta name="keywords" content="Zoltan, Zoltan Home Page, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta name="description" content="Zoltan: Home Page for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="https://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="https://www.sandia.gov/Main.html"><img SRC="https://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="https://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="https://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev_html/dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2A-nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_FAQ.html">
|
||||||
|
Frequently Asked Questions</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="https://github.com/sandialabs/Zoltan/releases">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP>
|
||||||
|
<!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Zoltan:
|
||||||
|
</font></font></b>
|
||||||
|
<br>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Data-Management Services for Parallel Applications
|
||||||
|
</font></font></b>
|
||||||
|
<p>
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
How to Cite Zoltan
|
||||||
|
</font></font></b><br>
|
||||||
|
<hr>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Please use (at least) one of the following references when you cite Zoltan:
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
@Article{<b>ZoltanIsorropiaOverview2012</b>,<br>
|
||||||
|
author = {E. G. Boman and U. V. Catalyurek and C. Chevalier and K. D. Devine}, <br>
|
||||||
|
title = {The {Z}oltan and {I}sorropia Parallel Toolkits for Combinatorial Scientific Computing: Partitioning, Ordering, and Coloring}, <br>
|
||||||
|
journal = {Scientific Programming}, <br>
|
||||||
|
year = {2012}, <br>
|
||||||
|
volume = {20}, <br>
|
||||||
|
number = {2}, <br>
|
||||||
|
pages = {129--150} <br>
|
||||||
|
} <br>
|
||||||
|
</small>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
@Article{<b>ZoltanOverviewArticle2002</b>,<br>
|
||||||
|
author = {Karen Devine and Erik Boman and Robert Heaphy and
|
||||||
|
Bruce Hendrickson and Courtenay Vaughan}, <br>
|
||||||
|
title = {{Zoltan} Data Management Services for Parallel
|
||||||
|
Dynamic Applications}, <br>
|
||||||
|
journal = {Computing in Science and Engineering}, <br>
|
||||||
|
year = {2002}, <br>
|
||||||
|
volume = {4}, <br>
|
||||||
|
number = {2}, <br>
|
||||||
|
pages = {90--97} <br>
|
||||||
|
} <br>
|
||||||
|
</small>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
@Unpublished{<b>ZoltanHomePage</b>,<br>
|
||||||
|
author = {Erik Boman and Karen Devine and Lee Ann Fisk and
|
||||||
|
Robert Heaphy and Bruce Hendrickson and Vitus Leung
|
||||||
|
and Courtenay Vaughan and Umit Catalyurek and
|
||||||
|
Doruk Bozdag and William Mitchell},<br>
|
||||||
|
title = {{Zoltan} home page},<br>
|
||||||
|
note = {\url{http://cs.sandia.gov/Zoltan}},<br>
|
||||||
|
year = {1999}}<br>
|
||||||
|
}<br>
|
||||||
|
</small>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
@Manual{<b>ZoltanUsersGuideV3</b>,<br>
|
||||||
|
title = {{Zoltan 3.0}: Parallel Partitioning, Load-balancing, and Data Management Services; User's Guide},<br>
|
||||||
|
author = {Erik Boman and Karen Devine and Lee Ann Fisk and
|
||||||
|
Robert Heaphy and Bruce Hendrickson and
|
||||||
|
Courtenay Vaughan and Umit Catalyurek and
|
||||||
|
Doruk Bozdag and William Mitchell and James Teresco},<br>
|
||||||
|
organization = {Sandia National Laboratories},<br>
|
||||||
|
address = {Albuquerque, NM},<br>
|
||||||
|
year = {2007},<br>
|
||||||
|
note = {Tech. Report SAND2007-4748W
|
||||||
|
\url{http://cs.sandia.gov/Zoltan/ug_html/ug.html}}<br>
|
||||||
|
}<br>
|
||||||
|
</small>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
@Manual{<b>ZoltanDevelopersGuideV3</b>,<br>
|
||||||
|
title = {{Zoltan 3.0}: Parallel Partitioning, Load-balancing, and Data Management Services; Developer's Guide},<br>
|
||||||
|
author = {Erik Boman and Karen Devine and Lee Ann Fisk and
|
||||||
|
Robert Heaphy and Bruce Hendrickson and
|
||||||
|
Courtenay Vaughan and Umit Catalyurek and
|
||||||
|
Doruk Bozdag and William Mitchell and James Teresco},<br>
|
||||||
|
organization = {Sandia National Laboratories},<br>
|
||||||
|
address = {Albuquerque, NM},<br>
|
||||||
|
year = {2007},<br>
|
||||||
|
note = {Tech. Report SAND2007-4749W,
|
||||||
|
\url{http://cs.sandia.gov/Zoltan/dev_html/dev.html}}<br>
|
||||||
|
}<br>
|
||||||
|
</small>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
@Inproceedings{<b>ZoltanHypergraphIPDPS06</b>,<br>
|
||||||
|
title = {Parallel Hypergraph Partitioning for
|
||||||
|
Scientific Computing},<br>
|
||||||
|
author = {Karen D. Devine and Erik G. Boman and
|
||||||
|
Robert T. Heaphy and Rob H. Bisseling
|
||||||
|
and Umit V. Catalyurek},<br>
|
||||||
|
conference = {IPDPS'06},<br>
|
||||||
|
publisher = {IEEE},<br>
|
||||||
|
year = {2006}<br>
|
||||||
|
}<br>
|
||||||
|
</small>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<small>
|
||||||
|
@Inproceedings{<b>ZoltanParHypRepart07</b>,<br>
|
||||||
|
title = {Hypergraph-based Dynamic Load Balancing for Adaptive
|
||||||
|
Scientific Computations},<br>
|
||||||
|
author = {U.V. Catalyurek and E.G. Boman and K.D. Devine
|
||||||
|
and D. Bozdag and R.T. Heaphy and L.A. Riesen},<br>
|
||||||
|
booktitle = {Proc. of 21st International Parallel and
|
||||||
|
Distributed Processing Symposium (IPDPS'07)},<br>
|
||||||
|
publisher = {IEEE},<br>
|
||||||
|
year = {2007},<br>
|
||||||
|
note = {Best Algorithms Paper Award.}<br>
|
||||||
|
}<br>
|
||||||
|
</small>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr width="100%">
|
||||||
|
<table BORDER=0 WIDTH="100%" >
|
||||||
|
<tr ALIGN=CENTER>
|
||||||
|
<td VALIGN=TOP WIDTH="140">
|
||||||
|
<table BORDER=0 WIDTH="140" >
|
||||||
|
<tr>
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="120"></td>
|
||||||
|
|
||||||
|
<td WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="https://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="https://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="https://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="https://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="https://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="https://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="https://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</body>
|
||||||
|
</html>
|
344
thirdParty/Zoltan/docs/Zoltan_construction.html
vendored
Normal file
344
thirdParty/Zoltan/docs/Zoltan_construction.html
vendored
Normal file
@ -0,0 +1,344 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Home Page">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1375">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99">
|
||||||
|
<meta name="keywords" content="Zoltan, Zoltan Home Page, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta name="description" content="Zoltan: Home Page for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="http://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="http://www.sandia.gov/Main.html"><img SRC="http://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="http://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="http://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev_html/dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="http://www.cs.sandia.gov/~web1400/1400_download.html">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP>
|
||||||
|
<!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Zoltan:
|
||||||
|
</font></font></b>
|
||||||
|
<br>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Data-Management Services for Parallel Applications
|
||||||
|
</font></font></b>
|
||||||
|
<p>
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<p>
|
||||||
|
<b> The Zoltan Team </b><br>
|
||||||
|
<b> Sandia National Laboratories: </b><br>
|
||||||
|
<a href="http://www-sccm.stanford.edu/~boman/">Erik Boman</a> <br>
|
||||||
|
<a href="http://www.cs.sandia.gov/~kddevin">Karen Devine</a><br>
|
||||||
|
Lee Ann Fisk<br>
|
||||||
|
Robert Heaphy<br>
|
||||||
|
<a href="http://www.cs.sandia.gov/~bahendr">Bruce Hendrickson</a></b><br>
|
||||||
|
Courtenay Vaughan<br>
|
||||||
|
<br>
|
||||||
|
<b> Ohio State University</b><br>
|
||||||
|
<a href="http://bmi.osu.edu/personnel/detail.cfm?id=29">Umit Catalyurek</a><br>
|
||||||
|
Doruk Bozdag<br>
|
||||||
|
<br>
|
||||||
|
<b>National Institute of Standards and Technology</b><br>
|
||||||
|
<a href="http://math.nist.gov/~mitchell">William F. Mitchell</a><br>
|
||||||
|
<p>
|
||||||
|
<p>
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<hr width="100%">
|
||||||
|
|
||||||
|
<b>Zoltan is temporarily unavailable in preparation for a new release.
|
||||||
|
</b> <br>
|
||||||
|
We expect the new release to be completed by October 13, 2006.
|
||||||
|
If you would like an email notification of the new release, please
|
||||||
|
join the zoltan-announce mailing list at
|
||||||
|
<a href="http://software.sandia.gov/mailman/listinfo/zoltan-announce">http://software.sandia.gov/mailman/listinfo/zoltan-announce</a>.
|
||||||
|
<p>
|
||||||
|
Thank you for your patience.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<b>For more information, contact:</b>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="mailto: kddevin@sandia.gov">Karen Devine</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr width="100%">
|
||||||
|
<table BORDER=0 WIDTH="100%" >
|
||||||
|
<tr ALIGN=CENTER>
|
||||||
|
<td VALIGN=TOP WIDTH="140">
|
||||||
|
<table BORDER=0 WIDTH="140" >
|
||||||
|
<tr>
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="120"></td>
|
||||||
|
|
||||||
|
<td WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="http://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="http://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="http://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="http://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="http://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="http://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="http://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</body>
|
||||||
|
</html>
|
241
thirdParty/Zoltan/docs/Zoltan_download.html
vendored
Normal file
241
thirdParty/Zoltan/docs/Zoltan_download.html
vendored
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
<!-------- @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="filename" content="index.html">
|
||||||
|
<meta name="subject" content="Zoltan Download Page">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Home Page">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1375">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99"
|
||||||
|
<meta name="keywords" content="Zoltan, software, load balancing">
|
||||||
|
<meta name="description" content="Software Page for the Zoltan Project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]"><title>Zoltan Download Page</title>
|
||||||
|
|
||||||
|
<link rel="schema.sandia" href="https://www.sandia.gov/html_schema.htm">
|
||||||
|
<link rev="owns" title="Karen D. Devine" href="mailto:kddevin@sandia.gov">
|
||||||
|
<link rev="made" title="Karen D. Devine" href="mailto:kddevin@sandia.gov"></head><body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the
|
||||||
|
following line was part of the above body command.
|
||||||
|
link="#003366" vlink="#cc0033" alink="#000000" -->
|
||||||
|
|
||||||
|
<a name="TOP"></a>
|
||||||
|
<!-- TOP BANNER AREA STARTS HERE -->
|
||||||
|
<table valign="top" border="0">
|
||||||
|
<tbody><tr valign="top">
|
||||||
|
<td ="" valign="top" width="160" BGCOLOR="#003366">
|
||||||
|
<table valign="top" border="0" width="160">
|
||||||
|
<tbody><tr valign="top">
|
||||||
|
<td valign="top" width="160">
|
||||||
|
<!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="https://www.sandia.gov/Main.html"><img src="https://www.sandia.gov/images/snlstkdc.gif" alt="[Sandia National Laboratories]" valign="top" border="0" height="49" width="126"></a>
|
||||||
|
<p><img ismap="ismap" src="https://www.sandia.gov/images/labelNEW.gif" alt="[navigation panel]" usemap="#shortMap" border="0" height="119" hspace="2" width="111"></p></td>
|
||||||
|
|
||||||
|
<td><img src="https://www.sandia.gov/images/1pixel.gif" border="0" height="1" width="10"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
|
||||||
|
<table valign="top" border="0" width="160">
|
||||||
|
|
||||||
|
<!-- turquoise navigation buttons on left under the Sandia menu -->
|
||||||
|
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td valign="top"><!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size="+2">Zoltan Download Page</font></font></b>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</p><hr width="100%">
|
||||||
|
|
||||||
|
<p><b>NOTE:</b> If you have not registered yet, please take a moment
|
||||||
|
to do so at the <a href="http://cs.sandia.gov/web1400/1400_download.html">
|
||||||
|
<b>Download Registration Form</b></a> (Note: this information is only used to
|
||||||
|
provide usage statistics to our program sponsors).</p><p>
|
||||||
|
|
||||||
|
</p><hr>
|
||||||
|
|
||||||
|
<h3>Join the Mailing Lists</h3>
|
||||||
|
|
||||||
|
If you haven't done so already,
|
||||||
|
we recommend you subscribe to these mailing lists:
|
||||||
|
<ul>
|
||||||
|
<li> <a href="https://software.sandia.gov/mailman/listinfo/zoltan-announce">zoltan-announce</a> is used for announcement of Zoltan news, such as new releases.
|
||||||
|
</li><li> <a href="https://software.sandia.gov/mailman/listinfo/zoltan-users">zoltan-users</a> is a community forum for discussion of issues related to Zoltan.
|
||||||
|
</li></ul>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</p><hr>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<h3>Zoltan Releases for Download</h3>
|
||||||
|
|
||||||
|
The most current version of Zoltan is always available in the
|
||||||
|
<a href="https://trilinos.github.io/">Trilinos</a> framework.
|
||||||
|
You can download
|
||||||
|
Trilinos <a href="https://github.com/trilinos/Trilinos">here</a>.
|
||||||
|
In the Trilinos directory, the Zoltan code is in directory
|
||||||
|
Trilinos/packages/zoltan. In this directory, you can continue to
|
||||||
|
build Zoltan separately from Trilinos.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
Stand-alone versions of Zoltan are available below.
|
||||||
|
We recommend the latest version.
|
||||||
|
For more details, see the
|
||||||
|
Zoltan <a href="ug_html/ug_release.html">release notes</a>.
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.83.tar.gz">Version 3.83</a> (1/28/16; as in Trilinos v12.6; aaf328db7e43001ee2d3148f72f12147e51c3293) </li>
|
||||||
|
<!------
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.82.tar.gz">Version 3.82</a> (5/1/15; as in Trilinos v12) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.81.tar.gz">Version 3.81</a> (11/06/14; as in Trilinos v11.12.2) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.8.tar.gz">Version 3.8</a> (10/28/13; as in Trilinos v10.11) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.6.tar.gz">Version 3.6</a> (11/2/11; as in Trilinos v10.8) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.501.tar.gz">Version 3.501</a> (5/12/11; as in Trilinos v10.6 with additions) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.3.tar.gz">Version 3.3</a> (7/31/10; as in Trilinos v10.4) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.2.tar.gz">Version 3.2</a> (10/5/09) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.1.tar.gz">Version 3.1</a> (9/30/08) </li>
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v3.0.tar.gz">Version 3.0</a> (5/30/07) </li>
|
||||||
|
---->
|
||||||
|
<li> <a href="http://cs.sandia.gov/Zoltan/Zoltan_Distributions/zoltan_distrib_v2.1.tar.gz">Version 2.1</a> (10/05/06)</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
Zoltan is provided as a compressed tar file. Unpack with 'tar xfz zoltan*.tar.gz'.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h3>Zoltan Tutorial</h3>
|
||||||
|
The Zoltan Tutorial presented at SciDAC2007 is now on-line. Download it here:
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/Zoltan_Tutorial_Slides.pdf">Zoltan Tutorial Slides</a> (14 Mbytes; PDF)
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/Zoltan_Tutorial_Handouts.pdf">Zoltan Tutorial Handouts</a> (Four slides per page; 8.8 Mbytes; PDF)
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
</p><h5><i>Last Updated: September 23, 2008</i>
|
||||||
|
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE--------->
|
||||||
|
<!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE -->
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
|
||||||
|
<table border="0" width="100%">
|
||||||
|
<tbody><tr align="center">
|
||||||
|
<td valign="top" width="160">
|
||||||
|
<table border="0" width="160">
|
||||||
|
<tbody><tr>
|
||||||
|
<td align="center" valign="top" width="120"></td>
|
||||||
|
|
||||||
|
<td width="20"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="center" valign="top" width="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody></table>
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="https://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="https://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="https://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="https://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="https://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="https://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="https://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
|
||||||
|
</body></html>
|
735
thirdParty/Zoltan/docs/Zoltan_phil.html
vendored
Normal file
735
thirdParty/Zoltan/docs/Zoltan_phil.html
vendored
Normal file
@ -0,0 +1,735 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Home Page">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1375">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99">
|
||||||
|
<meta name="keywords" content="Zoltan, Zoltan Home Page, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta name="description" content="Zoltan: Home Page for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="https://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="https://www.sandia.gov/Main.html"><img SRC="https://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="https://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="https://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev_html/dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2A-nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_FAQ.html">
|
||||||
|
Frequently Asked Questions</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="https://github.com/sandialabs/Zoltan/releases">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP>
|
||||||
|
<!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Zoltan:
|
||||||
|
</font></font></b>
|
||||||
|
<br>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Data-Management Services for Parallel Applications
|
||||||
|
</font></font></b>
|
||||||
|
<p>
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Project Description
|
||||||
|
</font></font></b><br>
|
||||||
|
<hr>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#Overview">Overview</a></li>
|
||||||
|
<li>
|
||||||
|
Design Considerations
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#Design">Design of Toolkits and Libraries</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#ZDesign">Zoltan's Design</a></li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#ZExamples">Zoltan Examples</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Dynamic Load-Balancing and Data Migration Tools
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#Typical">Typical Approach to Dynamic Load Balancing</a
|
||||||
|
></li>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#Harder">Why Dynamic Load Balancing is Harder
|
||||||
|
than Static Partitioning</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#ZLB">Zoltan's Load-Balancing Suite</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#Mig">Data Migration Tools</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Communication Tools
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#UComm">Unstructured Communication Library</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#DD">Distributed Data Directories</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="Zoltan_phil.html#MemTools">Memory Management Tools</a></li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="Overview"><hr><b>Overview</b><p>
|
||||||
|
The Zoltan library is a collection of data management services for parallel,
|
||||||
|
unstructured, adaptive, and dynamic applications. It simplifies the
|
||||||
|
load-balancing, data movement, unstructured communication, and memory usage
|
||||||
|
difficulties that arise in dynamic applications such as adaptive
|
||||||
|
finite-element methods, particle methods, and crash simulations.
|
||||||
|
Zoltan's data-structure neutral design also lets a wide range of applications
|
||||||
|
use it without imposing restrictions on application data structures.
|
||||||
|
Its object-based interface provides a simple and inexpensive way for
|
||||||
|
application developers to use the library and researchers to make new
|
||||||
|
capabilities available under a common interface.
|
||||||
|
<p>
|
||||||
|
Zoltan provides tools that help developers of parallel applications.
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
A suite of <a href="ug_html/ug_alg.html">parallel partitioning algorithms</a>
|
||||||
|
and <a href="ug_html/ug_interface_mig.html">data migration tools</a>
|
||||||
|
dynamically redistribute data to reflect, say, changing processor workloads.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="ug_html/ug_util_dd.html">Distributed data directories</a> and
|
||||||
|
<a href="ug_html/ug_util_comm.html">unstructured communication</a>
|
||||||
|
services let
|
||||||
|
applications perform complication communication using only a few simple
|
||||||
|
primitives.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="ug_html/ug_util_mem.html">Dynamic memory management tools</a>
|
||||||
|
enhance common memory allocation functions to
|
||||||
|
simplify debugging of dynamic memory usage.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
These tools are provided in an easy-to-use toolkit that is callable from C,
|
||||||
|
C++, and Fortran90.
|
||||||
|
|
||||||
|
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="Design"><hr><b>Design of Toolkits and Libraries</b><p>
|
||||||
|
Using general-purpose libraries allows
|
||||||
|
algorithms to be shared among and compared within many applications. The
|
||||||
|
close dependence of libraries on application data, however,
|
||||||
|
requires careful design to maintain separation between the
|
||||||
|
libraries and application data structures.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
One way to provide this separation is to use object-based software design.
|
||||||
|
Instead of requiring the application to build data structures
|
||||||
|
required by the library, the application could pass functions that access
|
||||||
|
the application data structure to the libraries.
|
||||||
|
For example, rather than require an application to build a complicated graph
|
||||||
|
description, the library can require an application to provide a
|
||||||
|
function returning graph vertices and a function returning edge
|
||||||
|
connectivity for a given vertex.
|
||||||
|
Using these functions, the
|
||||||
|
library can build the data structures it needs.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
This object-based design has a number of advantages.
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Changes in the library's data structures need not
|
||||||
|
propagate back to the application. As long as the set of required functions
|
||||||
|
does not change, the application does not need to change to use new versions
|
||||||
|
of the library.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Once the set of required functions is implemented, the application can use all
|
||||||
|
the algorithms in the library.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
The required functions are generally easy for
|
||||||
|
an application to implement, as most applications need to
|
||||||
|
access their data objects and the interactions between objects
|
||||||
|
for their own computations.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Memory usage is lower as
|
||||||
|
an application does not have to build an intermediate data structure
|
||||||
|
that is later converted to appropriate data structures for the library.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
The constructor for library data structures is called only when it
|
||||||
|
is needed, and only the data needed for a particular algorithm is obtained.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
There are a few disadvantages to this object-based approach as well.
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Additional overhead is incurred as the library calls the functions to
|
||||||
|
build its data structures.
|
||||||
|
In experiments, however, this cost has been very low
|
||||||
|
relative to the cost of actual computation in the library.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
A general-purposes tool can
|
||||||
|
provide only limited support for manipulations of application data
|
||||||
|
structures (e.g., data movement).
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
For more detailed information, see
|
||||||
|
[<a href="http://cs.sandia.gov/pub/papers/kddevin/cmame.ps.gz">Hendrickson
|
||||||
|
and Devine</a>].
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="ZDesign"><hr><b>Zoltan's Design</b><p>
|
||||||
|
We have chosen an object-based, callback function design. An application
|
||||||
|
provides a number of simple callback functions that access the application
|
||||||
|
data structures. Zoltan then calls these functions to obtain data it needs.
|
||||||
|
Geometric algorithms are
|
||||||
|
supported via callback functions returning objects to be balanced and the
|
||||||
|
weights and coordinates of those objects.
|
||||||
|
Graph-based algorithms are
|
||||||
|
supported by callback functions returning objects to be
|
||||||
|
balanced, edges between objects, and object and edge weights.
|
||||||
|
For refinement-tree algorithms, additional callback functions return
|
||||||
|
parent-child relationships.
|
||||||
|
<p>
|
||||||
|
Support for data migration (the movement of data to establish a new
|
||||||
|
decomposition) is also provided through a similar callback
|
||||||
|
function interface. An application provides callback functions that pack
|
||||||
|
object data into and unpack data from communication buffers provided by
|
||||||
|
Zoltan. Zoltan calls the packing function to load communication buffers,
|
||||||
|
performs the communication necessary to move the data, and calls the unpacking
|
||||||
|
function to unload the communication buffers.
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="ZExamples"><hr><b>Zoltan Examples</b><p>
|
||||||
|
Several examples of Zoltan's use can be found in the
|
||||||
|
<a href="ug_html/ug.html">Zoltan User's Guide</a>.
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="ug_html/ug_intro.html#Load-Balancing Tools">General
|
||||||
|
examples of library usage</a>.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="ug_html/ug_examples.html">Specific examples</a>
|
||||||
|
for each phase of balancing
|
||||||
|
(<a href="ug_html/ug_examples_init.html">initialization</a>,
|
||||||
|
<a href="ug_html/ug_examples_lb.html">load balancing</a>, and
|
||||||
|
<a href="ug_html/ug_examples_mig.html">data migration</a>).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="ug_html/ug_examples_query.html">Examples of callback function
|
||||||
|
implementations</a>.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="Typical"><hr><b>Typical Approach to Dynamic Load Balancing</b><p>
|
||||||
|
Dynamic load balancing has been used in many applications, ranging from
|
||||||
|
adaptive mesh refinement to particle methods to contact detection algorithms.
|
||||||
|
In most applications using dynamic load balancing, the load-balancing
|
||||||
|
algorithm is implemented directly in the application, with close coupling
|
||||||
|
between the application's and load-balancing algorithm's data structures.
|
||||||
|
This typical approach has two disadvantages.
|
||||||
|
<ul>
|
||||||
|
<li> It is possible that the application developer did not select the
|
||||||
|
best algorithm for the application, but the developer is unable to compare the
|
||||||
|
algorithm with others without taking time to implement many algorithms in the
|
||||||
|
application.
|
||||||
|
</li>
|
||||||
|
<li> The close coupling of the algorithm's and application's
|
||||||
|
data structures limits the algorithm's use to a single application.
|
||||||
|
Developers wanting to use the algorithm in a new application have to re-write
|
||||||
|
the algorithm using the new application's data structures.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
As a result, research into and use of dynamic load-balancing algorithms are
|
||||||
|
severely impaired.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="Harder"><hr><b>Why Dynamic Load Balancing is Harder than Static Partitioning</b><p>
|
||||||
|
Many high-quality static partitioning tools exist; examples include
|
||||||
|
<a href="http://cs.sandia.gov/CRF/chac.html">Chaco</a>,
|
||||||
|
<a href="https://www-users.cs.umn.edu/~karypis/metis">METIS</a>,
|
||||||
|
<!---
|
||||||
|
<a href="https://www.uni-paderborn.de/fachbereich/AG/monien/RESEARCH/PART/party.html">Party</a>,
|
||||||
|
-->
|
||||||
|
and
|
||||||
|
<a href="https://www.labri.fr/perso/pelegrin/scotch/">SCOTCH</a>.
|
||||||
|
General-purpose dynamic load-balancing tools are less common, however,
|
||||||
|
since they are more difficult to implement. The difficulty arises from
|
||||||
|
fundamental algorithmic and software-engineering
|
||||||
|
differences between static and dynamic partitioning. These differences are
|
||||||
|
summarized in the following table.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<table border=1>
|
||||||
|
<tr>
|
||||||
|
<td valign=top><b>Static Partitioning...</b></td>
|
||||||
|
<td valign=top><b>Dynamic Load Balancing...</b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign=top>Generally used as a pre-processor to an application.</td>
|
||||||
|
<td valign=top>Runs side-by-side with an application.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign=top>Can be (and usually is) implemented serially.</td>
|
||||||
|
<td valign=top>Must be implemented in parallel.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign=top>Has only modest concern for execution time.</td>
|
||||||
|
<td valign=top>Must run quickly (time to load balance should not exceed time to run in
|
||||||
|
an unbalanced state).</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign=top>Has only modest concern for memory usage.</td>
|
||||||
|
<td valign=top>Must use little memory (should not affect scalability of
|
||||||
|
application).</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign=top>Can use file-based interfaces (read geometry from a file; write partition
|
||||||
|
info to a file).</td>
|
||||||
|
<td valign=top>Must use function-call interfaces.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign=top>Has no dependence on an application's data structures.</td>
|
||||||
|
<td valign=top>Needs information stored in an application's data structures.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign=top>Accounts for part sizes and communication costs.</td>
|
||||||
|
<td valign=top>Accounts for part sizes, communication costs, and data movement
|
||||||
|
costs.</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="ZLB"><hr><b>Zoltan's Load-Balancing Suite</b></a>
|
||||||
|
<p>
|
||||||
|
In our experience, no single partitioning strategy is effective for all
|
||||||
|
parallel computations. Some application require partitions based only on the
|
||||||
|
problem's workloads and geometry; others benefit from explicit consideration
|
||||||
|
of dependencies between data. Some applications require the highest quality
|
||||||
|
partitions possible, regardless of the cost to generate them; others can
|
||||||
|
sacrifice some quality so long as new partitions can be generated quickly.
|
||||||
|
For some applications, the cost to relocate data is prohibitively high, so
|
||||||
|
incremental partitioning algorithms are needed; other applications can
|
||||||
|
tolerate greater remapping costs. Most important, application developers
|
||||||
|
might not know in advance which strategies work best in their applications, so
|
||||||
|
the need a convenient means of comparing algorithms.
|
||||||
|
<p>
|
||||||
|
We provide two classes of parallel partitioning algorithms in the Zoltan
|
||||||
|
library:
|
||||||
|
<ul>
|
||||||
|
<li>Geometric methods
|
||||||
|
<blockquote>
|
||||||
|
<a href="ug_html/ug_alg_rcb.html">Recursive Coordinate Bisection</a><br>
|
||||||
|
<a href="ug_html/ug_alg_rib.html">Recursive Inertial Bisection</a><br>
|
||||||
|
<a href="ug_html/ug_alg_hsfc.html">Hilbert Space-Filling Curve Partitioning</a> <br>
|
||||||
|
<a href="ug_html/ug_alg_reftree.html">Refinement Tree Partitioning</a>
|
||||||
|
</blockquote>
|
||||||
|
</li>
|
||||||
|
<li>Topology-based methods
|
||||||
|
<blockquote>
|
||||||
|
<a href="ug_html/ug_alg_phg.htmml">Hypergraph partitioning</a><br>
|
||||||
|
<a href="ug_html/ug_alg_phg.htmml">Graph partitioning</a><br>
|
||||||
|
Graph partitioning (through interfaces to
|
||||||
|
<a href="ug_html/ug_alg_parmetis.html">ParMETIS</a> (U. Minn.) and
|
||||||
|
<a href="ug_html/ug_alg_jostle.html">Jostle</a> (U. Greenwich))<br>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
Once the Zoltan callback functions are implemented, an application can switch
|
||||||
|
between partitioning algorithms by changing only the
|
||||||
|
<a href="ug_html/ug_alg.html#LB_METHOD"><i>LB_METHOD</i></a> parameter
|
||||||
|
through a call to
|
||||||
|
<a href="ug_html/ug_interface_init.html#Zoltan_Set_Param"><b>Zoltan_Set_Param</b></a>.
|
||||||
|
Thus, comparing different algorithms within a single application is easy,
|
||||||
|
enabling users to try several algorithms and find
|
||||||
|
the best ones for their applications.
|
||||||
|
<p>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="Mig"><hr><b>Data Migration Tools</b></a>
|
||||||
|
<p>
|
||||||
|
A complicated part of dynamic repartitioning is the need to move data from old
|
||||||
|
processors to new ones. This data migration requires deletions and insertions
|
||||||
|
from the application data structures as well as communication between the
|
||||||
|
processors.
|
||||||
|
<p>
|
||||||
|
To help an application with
|
||||||
|
<a href="ug_html/ug_interface_mig.html">data migration</a>, Zoltan requires an application to
|
||||||
|
supply callback functions that pack data into communication buffers and unpack
|
||||||
|
data from communication buffers. Zoltan
|
||||||
|
calls the packing function to load communication buffers with objects to be
|
||||||
|
exported, performs all communication needed to move the data, and calls the
|
||||||
|
unpacking function to load the objects in the data structures on the new
|
||||||
|
processors. This mechanism eliminates the need for the application developer
|
||||||
|
to implement complicated communication for data migration.
|
||||||
|
<p>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="UComm"><hr><b>Unstructured Communication Library</b></a>
|
||||||
|
<p>
|
||||||
|
Unlike static applications, where communication patterns remain fixed
|
||||||
|
throughout the computation, dynamic applications can have complicated,
|
||||||
|
changing communication patterns. For example:
|
||||||
|
<ul>
|
||||||
|
<li>After adaptive mesh refinement,
|
||||||
|
new communication patterns must reflect dependencies between newly created
|
||||||
|
elements.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Multiphysics simulations, such as crash simulations, might require complicated
|
||||||
|
communication to transfer data between decompositions for different simulation
|
||||||
|
phases.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
Zoltan provides an
|
||||||
|
<a href="ug_html/ug_util_comm.html">unstructured communication package</a>
|
||||||
|
to simplify
|
||||||
|
communication. The package builds a communication plan, including information
|
||||||
|
about both message sends and receives for a given processor. The plan can be
|
||||||
|
reused throughout the application, or destroyed and rebuilt when communication
|
||||||
|
patterns change. The package also includes simple communication primitives that
|
||||||
|
insulate the user from details of message sends and receives.
|
||||||
|
<p>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="DD"><hr><b>Distributed Data Directories</b></a>
|
||||||
|
<p>
|
||||||
|
Dynamic applications often need to locate off-processor information. After
|
||||||
|
repartitioning, for example, a processor might need to rebuild ghost cells and
|
||||||
|
lists of data to be communicated. It might know which data it needs, but not
|
||||||
|
where the data are located.
|
||||||
|
<p>
|
||||||
|
To help locate off-processor data, Zoltan includes a
|
||||||
|
<a href="ug_html/ug_util_dd.html">distributed data
|
||||||
|
directory</a> tool that is scalable with respect to both memory usage and
|
||||||
|
computation time. Processors register their owned objects with the directory.
|
||||||
|
Then, through a rendezvous algorithm, other processors can look up the
|
||||||
|
location of data they need.
|
||||||
|
<p>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
<a name="MemTools"><hr><b>Memory Management Tools</b></a>
|
||||||
|
<p>
|
||||||
|
Dynamic applications rely heavily on the ability to allocate and free memory
|
||||||
|
as needed. Memory leaks and invalid memory accesses are common to developing
|
||||||
|
software. Although many software development tools let users track memory
|
||||||
|
bugs, these tools are often not available on state-of-the-art parallel
|
||||||
|
computers.
|
||||||
|
<p>
|
||||||
|
Zoltan's <a href="ug_html/ug_util_mem.html">memory management package</a>
|
||||||
|
provides simple in-application debugging
|
||||||
|
tools that are beneficial on state-of-the-art computing platforms. The
|
||||||
|
package includes wrappers around malloc and free that record the location of
|
||||||
|
all memory
|
||||||
|
allocation operations. Thus, tracking memory leaks is simplified, as
|
||||||
|
source-code locations of unfreed-memory allocations can be printed.
|
||||||
|
Statistics about memory allocations and frees are also available.
|
||||||
|
<p>
|
||||||
|
<!---------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr width="100%">
|
||||||
|
<table BORDER=0 WIDTH="100%" >
|
||||||
|
<tr ALIGN=CENTER>
|
||||||
|
<td VALIGN=TOP WIDTH="140">
|
||||||
|
<table BORDER=0 WIDTH="140" >
|
||||||
|
<tr>
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="120"></td>
|
||||||
|
|
||||||
|
<td WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="https://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="https://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="https://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="https://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="https://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="https://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="https://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</body>
|
||||||
|
</html>
|
662
thirdParty/Zoltan/docs/Zoltan_pubs.html
vendored
Normal file
662
thirdParty/Zoltan/docs/Zoltan_pubs.html
vendored
Normal file
@ -0,0 +1,662 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Home Page">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1375">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99">
|
||||||
|
<meta name="keywords" content="Zoltan, Zoltan Home Page, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta name="description" content="Zoltan: Home Page for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="https://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="https://www.sandia.gov/Main.html"><img SRC="https://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="https://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="https://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev_html/dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2A-nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_FAQ.html">
|
||||||
|
Frequently Asked Questions</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="https://github.com/sandialabs/Zoltan/releases">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP>
|
||||||
|
<!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Zoltan:
|
||||||
|
</font></font></b>
|
||||||
|
<br>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Data-Management Services for Parallel Applications
|
||||||
|
</font></font></b>
|
||||||
|
<p>
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Papers and Presentations
|
||||||
|
</font></font></b>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
This list may not be up-to-date...
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b> Hypergraph Partitioning</b>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<b>Hypergraph-based Dynamic Load Balancing for Adaptive Scientific Computations.</b><br>
|
||||||
|
U. Catalyurek, E. Boman, K. Devine, D. Bozdag, R. Heaphy, L.A. Riesen.<br>
|
||||||
|
<i> Proceedings of IPDPS'07</i>, Best Algorithms Paper Award, March 2007.
|
||||||
|
<br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/Catalyurek_IPDPS07.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/Catalyurek_IPDPS07.pdf">Paper</a> (PDF)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/Catalyurek_IPDPS07.txt">Citation</a> (BIBTEX)
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>A Repartitioning Hypergraph Model for Dynamic Load Balancing</b><br>
|
||||||
|
U. Catalyurek, E. Boman, K. Devine, D. Bozdag, R. Heaphy, L.A. Riesen.<br>
|
||||||
|
<i>Journal of Parallel and Distributed Computing</i>,
|
||||||
|
Vol. 69, No. 8, pp. 711-724, Aug 2009.
|
||||||
|
<br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/JPDC_repart.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/JPDC_repart.pdf">Paper</a> (PDF)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/JPDC_repart.txt">Citation</a> (BIBTEX)
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>Hypergraph-based Dynamic Partitioning and Load Balancing.</b><br>
|
||||||
|
U. Catalyurek, D. Bozdag, E. Boman, K. Devine, R. Heaphy, and L.A. Riesen.<br>
|
||||||
|
<i>Advanced Computational Infrastructures for
|
||||||
|
Parallel/Distributed Adaptive Applications,</i> M. Parashar, ed., Wiley Publishing, Dec. 2009.
|
||||||
|
<br>
|
||||||
|
<!---- <a href="http://cs.sandia.gov/Zoltan/papers/wiley_chapter.pdf">Paper</a> (PDF)
|
||||||
|
---->
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/wiley_chapter.txt">Citation</a> (BIBTEX)
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>Parallel Hypergraph Partitioning for Scientific Computing.</b><br>
|
||||||
|
K. Devine, E. Boman, R. Heaphy, R. Bisseling, U. Catalyurek.<br>
|
||||||
|
<i> Proceedings of IPDPS 2006</i>, April 2006.
|
||||||
|
<br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/IPDPS06_Final.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/IPDPS06_Final.pdf">Paper</a> (PDF)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/IPDPS06_Final.txt">Citation</a> (BIBTEX)
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>Parallel Hypergraph Partitioning for Irregular Problems.</b><br>
|
||||||
|
K. Devine, E. Boman, R. Heaphy, U. Catalyurek, R. Bisseling.<br>
|
||||||
|
<i>SIAM Parallel Processing for Scientific Computing</i>, February 2006.
|
||||||
|
<br>
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/siam_pp06.pdf">Viewgraphs</a> (PDF)
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<b>Zoltan</b>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="https://dx.doi.org/10.3233/SPR-2012-0342"><b>The Zoltan and Isorropia Parallel Toolkits for Combinatorial Scientific Computing: Partitioning, Ordering, and Coloring</b></a>
|
||||||
|
<br>E.G. Boman, U.V. Catalyurek, C. Chevalier, and K.D. Devine, Scientific Programming vol. 20, no. 2, 2012, special issue on Trilinos.
|
||||||
|
<br> <br>
|
||||||
|
<li>
|
||||||
|
<b>Getting Started with Zoltan: A Short Tutorial.</b><br>
|
||||||
|
K. Devine, E. Boman, L.A. Riesen, U. Catalyurek and C. Chevalier.<br>
|
||||||
|
<i>Proc. 2009 Dagstuhl Seminar on Combinatorial Scientific Computing</i>,
|
||||||
|
February, 2009.<br>
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/Dagstuhl09.pdf">PDF</a>
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/Dagstuhl09.txt">Citation</a> (BIBTEX)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/zoltan_tutorial_dagstuhl09.pdf">Viewgraphs</a> from the tutorial (PDF)
|
||||||
|
<br><br>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<b>Zoltan Data Management Services for Parallel Dynamic Applications.</b><br>
|
||||||
|
K. Devine, E. Boman, R. Heaphy, B. Hendrickson, and C. Vaughan.<br>
|
||||||
|
<i>Computing in Science and Engineering</i>, Vol. 4, No. 2, March/April 2002, pp. 90-97.
|
||||||
|
<br>
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/c2sciprog_final.pdf">Paper</a> (PDF)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/c2sciprog_final.txt">Citation</a> (BIBTEX)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<b><a href="ug_html/ug.html">Zoltan v3: Parallel Partitioning, Load Balancing and Data-Management Services, User's Guide
|
||||||
|
</a>.</b><br>
|
||||||
|
E. Boman, K. Devine, R. Heaphy, B. Hendrickson, V. Leung, L.A. Riesen, C. Vaughan, U. Catalyurek, D. Bozdag, W. Mitchell and J. Teresco.<br>
|
||||||
|
Sandia National Laboratories Tech. Rep. SAND2007-4748W, Albuquerque, NM, 2007.
|
||||||
|
<br>
|
||||||
|
<a href="ug_html/ug.html">Manual</a> (HTML)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/zoltanUG.txt">Citation</a> (BIBTEX)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<b><a href="dev_html/dev.html">Zoltan v3: Parallel Partitioning, Load Balancing and Data-Management Services, Developer's Guide
|
||||||
|
</a>.</b><br>
|
||||||
|
E. Boman, K. Devine, R. Heaphy, B. Hendrickson, V. Leung, L.A. Riesen, C. Vaughan, U. Catalyurek, D. Bozdag, and W. Mitchell.<br>
|
||||||
|
Sandia National Laboratories Tech. Rep. SAND2007-4749W, Albuquerque, NM, 2007.
|
||||||
|
<br>
|
||||||
|
<!-----------
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/Zoltan_pdf/dev.pdf">Manual</a> (PDF)
|
||||||
|
|
||||||
|
--------->
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/zoltanDEV.txt">Citation</a> (BIBTEX)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>Tinkertoy Parallel Computing: A Case Study With Zoltan.</b><br>
|
||||||
|
K. Devine and B. Hendrickson.<br>
|
||||||
|
<i>Int. J. Computational Science and Engineering</i>, 2005.
|
||||||
|
<br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/tinkertoy.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/papers/tinkertoy.pdf">Paper</a> (PDF)
|
||||||
|
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/tinkertoy.txt">Citation</a> (BIBTEX)
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<b>Design of Dynamic Load-Balancing Tools for Parallel Applications.</b><br>
|
||||||
|
K. Devine, B. Hendrickson, E. Boman, M. St.John, and C. Vaughan.<br>
|
||||||
|
<i>Proceedings of the International Conference on Supercomputing</i>,
|
||||||
|
Santa Fe, May, 2000. <br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/ics00.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<!----
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/papers/ics00.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
|
||||||
|
---->
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/ics00.txt">Citation</a> (BIBTEX)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<b>Dynamic Load Balancing</b>
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<b>Partitioning and Load Balancing for Emerging Parallel Applications and
|
||||||
|
Architectures.</b><br>
|
||||||
|
K. Devine, E. Boman, and G. Karypis.<br>
|
||||||
|
Chapter in <i>Parallel Processing for Scientific Computing</i>,
|
||||||
|
Heroux, Raghavan, Simon, eds. SIAM (2006) 99-126.
|
||||||
|
<br>
|
||||||
|
<!----
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/papers/pp04.pdf">Paper</A> (PDF)
|
||||||
|
|
||||||
|
---->
|
||||||
|
<a href="http://cs.sandia.gov/Zoltan/citations/pp04.txt">Citation</a> (BIBTEX)
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>New Challenges in Dynamic Load Balancing.</b><br>
|
||||||
|
K. Devine, E. Boman, R. Heaphy, B. Hendrickson, J. Teresco, J. Faik,
|
||||||
|
J. Flaherty, L. Gervasio.<br>
|
||||||
|
<i>Applied Numerical Mathematics</i>, Vol. 52, Issues 2-3, pp. 133-152, 2005.
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>Partitioning and Dynamic Load Balancing for the Numerical Solution of
|
||||||
|
Partial Differential Equations.</b><br>
|
||||||
|
J. Teresco, K. Devine, J. Flaherty.<br>
|
||||||
|
Chapter in
|
||||||
|
<i>Numerial Solution of Partial Differential Equations on Parallel
|
||||||
|
Computers</i>, Bruaset, Bj<42>rstad, Tveito, editors. <20> Springer-Verlag, 2005.
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>A model for resource-aware load balancing on heterogeneous clusters.</b><br>
|
||||||
|
J. Faik, J. Flaherty, L. Gervasio, J. Teresco, K. Devine.<br>
|
||||||
|
Williams College Department of Computer Science Technical Report CS-05-01, 2005.
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>Dynamic Load Balancing in Computational Mechanics.</b><br>
|
||||||
|
B. Hendrickson and K. Devine.<br>
|
||||||
|
<i>Comput. Methods Appl. Mech. Engrg.</i>, <b>184</b> (2000), 485-500.
|
||||||
|
<br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/cmame.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/papers/cmame.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<LI>
|
||||||
|
<b>Graph Partitioning Models for Parallel Computing.</b><br>
|
||||||
|
Bruce Hendrickson and Tamara G. Kolda.<br>
|
||||||
|
<i>Parallel Computing</i>, <b>26</b> (2000), 1519-1534. <BR>
|
||||||
|
<A HREF="http://cs.sandia.gov/~bahendr/abstracts/models.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/pub/papers/bahendr/models.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
<br>
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<LI>
|
||||||
|
<b>Load Balancing Fictions, Falsehoods and Falacies.</b><br>
|
||||||
|
Bruce Hendrickson.<br>
|
||||||
|
<i>Applied Mathematical Modelling</i>, 25:99-108, 2000.<BR>
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/~bahendr/abstracts/myths.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/pub/papers/bahendr/myths.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/~bahendr/talks/Myths_html/main.htm">HTML version of overheads</A> from plenary talk at the <i>3rd DRAMA Steering Workshop</i>,
|
||||||
|
September, 1999.<BR>
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<LI>
|
||||||
|
<b>Interprocessor Communication with Memory Constraints.</b><br>
|
||||||
|
Ali Pinar and Bruce Hendrickson.<br>
|
||||||
|
<i>Proc. 12th ACM Symp. Parallel Algorithms and Architectures</i>,
|
||||||
|
July 2000. <BR>
|
||||||
|
<A HREF="http://cs.sandia.gov/~bahendr/abstracts/spaa00.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/pub/papers/bahendr/spaa00.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<LI>
|
||||||
|
<b>Graph Partitioning and Parallel Solvers: Has the Emperor No Clothes
|
||||||
|
(Extended Abstract).</b><br>
|
||||||
|
Bruce Hendrickson.<br>
|
||||||
|
<i>Proc. Irregular'98</i>,
|
||||||
|
<A HREF="https://link.springer.de/series/lncs/"> Lecture Notes in
|
||||||
|
Computer Science, 1457</A>, pp. 218-225, 1998. Copyright Springer-Verlag. <BR>
|
||||||
|
<A HREF="http://cs.sandia.gov/~bahendr/abstracts/irreg98.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/pub/papers/bahendr/irreg98.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
<br>
|
||||||
|
<P>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<b>Parallel Adaptive <i>hp</i>-Refinement Techniques for Conservation Laws.</b><br>
|
||||||
|
K. Devine and J. Flaherty.<br>
|
||||||
|
<i>Applied Numerical Mathematics</i>, <b>20</b> (1996), 367-386.
|
||||||
|
<br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/anm96.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/papers/anm96.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<b>Dynamic Load Balancing for Parallel Finite Element Methods
|
||||||
|
with Adaptive <i>h</i>- and <i>p</i>-Refinement.</b><br>
|
||||||
|
K. Devine and J. Flaherty.<br>
|
||||||
|
<i>Proceedings of the Seventh SIAM Conference on
|
||||||
|
Parallel Processing for Scientific Computing</i>,
|
||||||
|
San Francisco, CA, February, 1995.<br>
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/abstracts/siampp95.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/Zoltan/papers/siampp95.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<LI>
|
||||||
|
<b>Parallel Algorithms for Dynamically Partitioning Unstructured Grids.</b><br>
|
||||||
|
Pedro Diniz, Steve Plimpton, Bruce Hendrickson and Robert Leland.<br>
|
||||||
|
<i>Proceedings of the Seventh SIAM Conference on Parallel
|
||||||
|
Processing for Scientific Computing</i>, San Francisco, CA, February, 1995. <BR>
|
||||||
|
<A HREF="http://cs.sandia.gov/~bahendr/abstracts/dynamic.html">Abstract</A> (HTML)
|
||||||
|
|
||||||
|
<A HREF="http://cs.sandia.gov/pub/papers/bahendr/dynamic.ps.gz">Paper</A> (PS.GZ)
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b>
|
||||||
|
Coloring
|
||||||
|
</b>
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<b>Improving Graph Coloring on Distributed Memory Parallel Computers.</b><br>
|
||||||
|
A.E. Sariy<69>ce, E. Saule and <20>.V. <20>ataly<6C>rek. <br>
|
||||||
|
<i>Proceedings of 18th Annual International Conference on High Performance Computing (HiPC 2011), </i>
|
||||||
|
Dec 2011, to appear.
|
||||||
|
<br><p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<b>Distributed-memory Parallel Algorithms for Distance-2 Coloring and Related Problems in Derivative Computation. </b><br>
|
||||||
|
D. Bozdag, <20>.V. <20>ataly<6C>rek, A. H. Gebremedhin, F. Manne, E.G. Boman, and F. <20>zg<7A>ner. <br>
|
||||||
|
<i>SIAM Journal of Scientific Computing</i>, Vol. 32, No. 4, pp. 2418-2446, 2010. <br><p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<b>A Framework for Scalable Greedy Coloring on Distributed Memory Parallel Computers. </b><br>
|
||||||
|
D. Bozdag, A. Gebremedhin, F. Manne, E.G. Boman, and <20>.V. <20>ataly<6C>rek. <br>
|
||||||
|
<i>Journal of Parallel and Distributed Computing</i>, Vol. 68, No. 4, pp. 515-535, Apr 2008. <br><p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<b>A Scalable Parallel Graph Coloring Algorithm for Distributed-Memory
|
||||||
|
Computers.</b><br>
|
||||||
|
E. Boman, D. Bozdag, U. Catalyurek, A. Gebremedhim, F. Manne.<br>
|
||||||
|
<i>EuroPar 2005</i>, August 2005.
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
<li>
|
||||||
|
<b>A Parallel Distance-2 graph coloring algorithm for distributed memory
|
||||||
|
computers.</b><br>
|
||||||
|
E. Boman, D. Bozdag, U. Catalyurek, A. Gebremedhin, F. Manne, F. Ozguner.<br>
|
||||||
|
<i>HPCC-05</i>, September 2005.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<b>Miscellaneous</b>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<b>Combinatorial Algorithms Enabling Computational Science: Tales From the
|
||||||
|
Front.</b><br>
|
||||||
|
S. Bhowmick, E. Boman, K. Devine, A. Gebremedhin, B. Hendrickson, P. Hovland, T. Munson, A. Pothen.<br>
|
||||||
|
Sandia National Laboratories Tech. Rep. SAND2006-3914C, Albuquerque, NM, 2006.
|
||||||
|
Submitted to <i>Journal of Physics: Conference Series</i>, July 2006.
|
||||||
|
</li>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr width="100%">
|
||||||
|
<table BORDER=0 WIDTH="100%" >
|
||||||
|
<tr ALIGN=CENTER>
|
||||||
|
<td VALIGN=TOP WIDTH="140">
|
||||||
|
<table BORDER=0 WIDTH="140" >
|
||||||
|
<tr>
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="120"></td>
|
||||||
|
|
||||||
|
<td WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td ALIGN=CENTER VALIGN=TOP WIDTH="100%"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="https://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="https://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="https://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="https://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="https://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="https://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="https://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
thirdParty/Zoltan/docs/dev_html/brack3d.png
vendored
Normal file
BIN
thirdParty/Zoltan/docs/dev_html/brack3d.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
409
thirdParty/Zoltan/docs/dev_html/dev.html
vendored
Normal file
409
thirdParty/Zoltan/docs/dev_html/dev.html
vendored
Normal file
@ -0,0 +1,409 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Developer's Guide">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND2006-2955">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99">
|
||||||
|
<meta name="keywords" content="Zoltan, Zoltan Developer's Guide, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta name="description" content="Zoltan: Developer's Guide for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan Developer's Guide</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="https://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="https://www.sandia.gov/Main.html"><img SRC="https://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="https://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="https://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="../ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2A-nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_FAQ.html">
|
||||||
|
Frequently Asked Questions</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="https://github.com/sandialabs/Zoltan">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 8th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="https://www.sandia.gov/general/privacy-security/index.html">Sandia Privacy and Security Notice</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP>
|
||||||
|
<!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Zoltan:
|
||||||
|
</font></font></b>
|
||||||
|
<br>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Parallel Partitioning, Load Balancing and
|
||||||
|
Data-Management Services
|
||||||
|
</font></font></b>
|
||||||
|
<p>
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
<p><b><font face="Verdana, Arial, Helvetica"><font size=+2>Developer's
|
||||||
|
Guide </font></font></b>
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<p>
|
||||||
|
<h3><b> The Zoltan Team </b></h3>
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Sandia National Laboratories</b><br>
|
||||||
|
<a href="https://www.sandia.gov/~egboman">Erik Boman</a> <br>
|
||||||
|
Cedric Chevalier<br>
|
||||||
|
<a href="https://www.sandia.gov/~kddevin">Karen Devine</a><br>
|
||||||
|
Vitus Leung<br>
|
||||||
|
Sivasankaran Rajamanickam<br>
|
||||||
|
Lee Ann Riesen<br>
|
||||||
|
Michael Wolf<br>
|
||||||
|
</td>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Ohio State University</b><br>
|
||||||
|
<a href="https://bmi.osu.edu/~umit/">Umit Catalyurek</a><br>
|
||||||
|
<a href="https://www.ece.osu.edu/~bozdagd">Doruk Bozdag</a><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
<h3><b> Past Zoltan Contributors</b></h3>
|
||||||
|
<table width="100%"
|
||||||
|
<tr>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Sandia National Laboratories: </b><br>
|
||||||
|
Robert Heaphy<br>
|
||||||
|
Bruce Hendrickson <br>
|
||||||
|
Matthew St. John<br>
|
||||||
|
Courtenay Vaughan<br>
|
||||||
|
<br>
|
||||||
|
</td>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Williams College</b><br>
|
||||||
|
<a href="https://www.teresco.org/~terescoj/">James Teresco</a><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> National Institute of Standards and Technology</b><br>
|
||||||
|
<a href="https://math.nist.gov/~mitchell">William F. Mitchell</a><br>
|
||||||
|
</td>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Rensselaer Polytechnic Institute</b><br>
|
||||||
|
Jamal Faik<br>
|
||||||
|
Luis Gervasio<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<div ALIGN=right>
|
||||||
|
<b><i>Zoltan Developer's Guide, Version 3.3</b></i></div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<p>
|
||||||
|
<blockquote>
|
||||||
|
<b>
|
||||||
|
The Zoltan Developer's Guide is undergoing major revision and will be re-released with Zoltan 4.0.
|
||||||
|
Please excuse the inconvenience.
|
||||||
|
</b>
|
||||||
|
</blockquote>
|
||||||
|
<!-------- To Zoltan developers: The former version of dev.html is in devOLD.html. -------->
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
Copyright (c) 2000-2012, Sandia National Laboratories. <br>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<!-------- To Zoltan developers: Can reactivate these links when revise guide.
|
||||||
|
<br>[<a href="../Zoltan.html">Zoltan Home Page</a> | <a href="dev_intro.html">Next:
|
||||||
|
Introduction and General Principles</a>] ------>
|
||||||
|
<!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!<hr width="100%">
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="https://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="https://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="https://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="https://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="https://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="https://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="https://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
506
thirdParty/Zoltan/docs/dev_html/devOLD.html
vendored
Normal file
506
thirdParty/Zoltan/docs/dev_html/devOLD.html
vendored
Normal file
@ -0,0 +1,506 @@
|
|||||||
|
<!-------- @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="filename" content="Zoltan.html">
|
||||||
|
<meta name="review" content="28 May, 1999">
|
||||||
|
<meta name="subject" content="Zoltan Developer's Guide">
|
||||||
|
<meta name="sandia.approval_type" content="formal">
|
||||||
|
<meta name="sandia.approved" content="SAND2006-2955">
|
||||||
|
<meta name="sandia.create_date" content="05/28/99">
|
||||||
|
<meta name="keywords" content="Zoltan, Zoltan Developer's Guide, Zoltan dynamic load balancing library, Zoltan parallel computing">
|
||||||
|
<meta name="description" content="Zoltan: Developer's Guide for the Zoltan Library project at Sandia National Laboratories">
|
||||||
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||||
|
<title>Zoltan Developer's Guide</title>
|
||||||
|
|
||||||
|
<!----CHANGE INFORMATION IN AREAS WITH THIS HEADER---->
|
||||||
|
<!----SCROLL DOWN TO FIND OTHER AREAS TO BE CHANGED---->
|
||||||
|
<!--------CHANGE THE NAME AFTER THE DASH-------->
|
||||||
|
<!--------CHANGE THE FILENAME-------->
|
||||||
|
<!--------CHANGE THE REVIEW DATE-------->
|
||||||
|
<!--------CHANGE THE SUBJECT-------->
|
||||||
|
<link rel="schema.sandia" href="http://www.sandia.gov/html_schema.htm">
|
||||||
|
<!--------CHANGE THE SAND NUMBER INFO-------->
|
||||||
|
<!--------INSERT THE DATE DOCUMENT CREATED-------->
|
||||||
|
<!--------CHANGE THE PAGE OWNER AND EMAIL ADDRESS-------->
|
||||||
|
<link rev="made" title="name of contact" >
|
||||||
|
<!--------CHANGE THE PAGE MAKER AND EMAIL ADDRESS-------->
|
||||||
|
<!--------PLACE FIVE KEY WORDS WITHIN THE QUOTES-------->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
</head>
|
||||||
|
<body text="#000000">
|
||||||
|
<!-- KDD Turned off alternative link colors in template; the >
|
||||||
|
<!-- following line was part of the above body command. >
|
||||||
|
<!-- link="#003366" vlink="#cc0033" alink="#000000">
|
||||||
|
<a NAME="TOP"></a><!---TOP BANNER AREA STARTS HERE--->
|
||||||
|
<table BORDER=0 valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160" BGCOLOR="#003366">
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="160"><!--SANDIA LOGO AT TOP LEFT-->
|
||||||
|
<a href="http://www.sandia.gov/Main.html"><img SRC="http://www.sandia.gov/images/snlstkdc.gif" ALT="[Sandia National Laboratories]" BORDER=0 valign="top" height=49 width=126></a>
|
||||||
|
<p><img ISMAP SRC="http://www.sandia.gov/images/labelNEW.gif" ALT="[navigation panel]" HSPACE=2 BORDER=0 usemap="#shortMap" height=119 width=111></td>
|
||||||
|
|
||||||
|
<td><img SRC="http://www.sandia.gov/images/1pixel.gif" BORDER=0 height=1 width=10></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table BORDER=0 WIDTH="160" valign="top" >
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 0th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan.html">Zoltan
|
||||||
|
Home Page</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 1st little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="../ug_html/ug.html">Zoltan
|
||||||
|
User's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="dev.html">Zoltan
|
||||||
|
Developer's Guide</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 2A-nd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_FAQ.html">
|
||||||
|
Frequently Asked Questions</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 3rd little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_phil.html">Zoltan
|
||||||
|
Project Description</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_pubs.html">Papers
|
||||||
|
and Presentations</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 4Ath little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_cite.html">How to Cite Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 5th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="http://www.cs.sandia.gov/~web1400/1400_download.html">Download
|
||||||
|
Zoltan</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 6th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica"><a href="../Zoltan_bugreport.html">Report a Zoltan Bug</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 7th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="mailto: zoltan-dev@software.sandia.gov">Contact Zoltan Developers</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
<tr ALIGN=LEFT VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="150"><!----------- 8th little turquoise bevel button ------------>
|
||||||
|
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="150" BGCOLOR="#00CCFF" >
|
||||||
|
<tr ALIGN=CENTER VALIGN=CENTER>
|
||||||
|
<td COLSPAN="2"><b><font face="Verdana, Arial, Helvetica">
|
||||||
|
<a href="http://www.sandia.gov/general/privacy-security/index.html">Sandia Privacy and Security Notice</a></font></b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP WIDTH="20"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td COLSPAN="2"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-------------------------------------------------------------------------->
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td VALIGN=TOP>
|
||||||
|
<!--MAIN CONTENT AREA STARTS HERE-->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!------HEADER TEXT SHOULD BE REPLACE THIS TEXT------>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Zoltan:
|
||||||
|
</font></font></b>
|
||||||
|
<br>
|
||||||
|
<b><font face="Verdana, Arial, Helvetica"><font size=+2>
|
||||||
|
Parallel Partitioning, Load Balancing and
|
||||||
|
Data-Management Services
|
||||||
|
</font></font></b>
|
||||||
|
<p>
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!--MAIN CONTENT SHOULD BE PLACED IN THE AREA BELOW-->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
<p><b><font face="Verdana, Arial, Helvetica"><font size=+2>Developer's
|
||||||
|
Guide </font></font></b>
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<p>
|
||||||
|
<h3><b> The Zoltan Team </b></h3>
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Sandia National Laboratories</b><br>
|
||||||
|
<a href="http://www.sandia.gov/~egboman">Erik Boman</a> <br>
|
||||||
|
Cedric Chevalier<br>
|
||||||
|
<a href="http://www.cs.sandia.gov/~kddevin">Karen Devine</a><br>
|
||||||
|
Vitus Leung<br>
|
||||||
|
Lee Ann Riesen<br>
|
||||||
|
</td>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Ohio State University</b><br>
|
||||||
|
<a href="http://bmi.osu.edu/~umit/">Umit Catalyurek</a><br>
|
||||||
|
<a href="http://www.ece.osu.edu/~bozdagd">Doruk Bozdag</a><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
<h3><b> Past Zoltan Contributors</b></h3>
|
||||||
|
<table width="100%"
|
||||||
|
<tr>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Sandia National Laboratories: </b><br>
|
||||||
|
Robert Heaphy<br>
|
||||||
|
<a href="http://www.cs.sandia.gov/~bahendr">Bruce Hendrickson</a></b><br>
|
||||||
|
Matthew St. John<br>
|
||||||
|
Courtenay Vaughan<br>
|
||||||
|
<br>
|
||||||
|
</td>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Williams College</b><br>
|
||||||
|
<a href="http://www.teresco.org/~terescoj/">James Teresco</a><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> National Institute of Standards and Technology</b><br>
|
||||||
|
<a href="http://math.nist.gov/~mitchell">William F. Mitchell</a><br>
|
||||||
|
</td>
|
||||||
|
<td width="50%" valign=top>
|
||||||
|
<b> Rensselaer Polytechnic Institute</b><br>
|
||||||
|
Jamal Faik<br>
|
||||||
|
Luis Gervasio<br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<div ALIGN=right>
|
||||||
|
<b><i>Zoltan Developer's Guide, Version 3.2</b></i></div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>
|
||||||
|
<table border="1"> <tr> <td>
|
||||||
|
<a href="http://www.cs.sandia.gov/~kddevin/Zoltan_pdf/dev.pdf">DOWNLOAD PDF VERSION HERE.</a>
|
||||||
|
</td> </tr> </table>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_intro.html">Introduction and General Principles</a></h4>
|
||||||
|
|
||||||
|
<blockquote><a href="dev_intro_philosophy.html">Philosophy of Zoltan</a>
|
||||||
|
<br><a href="dev_intro_coding.html">Coding Principles in Zoltan</a>
|
||||||
|
<ol TYPE=A><a href="dev_intro_coding.html#include">Include files</a>
|
||||||
|
<br><a href="dev_intro_coding.html#global">Global Variables</a>
|
||||||
|
<br><a href="dev_intro_coding.html#functions">Function Names</a>
|
||||||
|
<br><a href="dev_intro_coding.html#par_comm">Parallel Communication</a>
|
||||||
|
<br><a href="dev_intro_coding.html#memory1">Memory Management</a>
|
||||||
|
<br><a href="dev_intro_coding.html#return">Errors, Warnings and Return Codes</a>
|
||||||
|
</ol>
|
||||||
|
<a href="dev_intro_sqe.html">Zoltan Quality Assurance</a>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_dist.html">Zoltan Distribution</a></h4>
|
||||||
|
|
||||||
|
<ol TYPE=1><a href="dev_dist_cvs.html">CVS</a>
|
||||||
|
<br><a href="dev_dist_dir.html">Layout of Directories</a>
|
||||||
|
<br><a href="dev_dist_compile.html">Compilation and Makefiles</a></ol>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_lb.html">Zoltan Interface and Data Structures</a></h4>
|
||||||
|
|
||||||
|
<ol TYPE=1><a href="dev_lb_interface.html">Interface Functions</a>
|
||||||
|
<br><a href="dev_lb_types.html">ID Data Types</a>
|
||||||
|
<br><a href="dev_lb_structs.html">Data Structures</a></ol>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_services.html">Services (to simplify new algorithm development)</a></h4>
|
||||||
|
|
||||||
|
<ol TYPE=1><a href="dev_services_params.html">Parameter Setting Routines</a>
|
||||||
|
<br><a href="dev_services_parallel.html">Parallel Computing Routines</a>
|
||||||
|
<br><a href="dev_services_objlist.html">Common Functions for Querying Applications</a>
|
||||||
|
<br><a href="dev_services_hash.html">Hash Function</a>
|
||||||
|
<br><a href="dev_services_time.html">Timing Routines</a>
|
||||||
|
<br><a href="dev_services_zoltantimer.html">High-Level Timing Services: ZOLTAN_TIMER</a>
|
||||||
|
<br><a href="dev_services_debug.html">Debugging Services</a></ol>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_add.html">Adding New Load-Balancing Algorithms to Zoltan</a></h4>
|
||||||
|
|
||||||
|
<ol TYPE=1><a href="dev_add_interface.html">Load-Balancing Interface Routines</a>
|
||||||
|
<br><a href="dev_add_lb.html">Load-Balancing Function Implementation</a>
|
||||||
|
<br><a href="dev_add_struct.html">Data Structures</a>
|
||||||
|
<br><a href="dev_add_memory.html">Memory Management</a>
|
||||||
|
<br><a href="dev_add_params.html">Parameters</a>
|
||||||
|
<br><a href="dev_add_remap.html">Part Remapping</a>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_mig.html">Migration Tools</a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_fortran.html">FORTRAN Interface</a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_cpp.html">C++ Interface</a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_refs.html">References</a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_driver.html">Appendix: Using the Test Drivers <i>zdrive</i>, <i>zCPPdrive</i> and <i>zfdrive</i></a></h4>
|
||||||
|
|
||||||
|
<ul><a href="dev_driver.html#Introduction">Introduction</a>
|
||||||
|
<br><a href="dev_driver.html#running zdrive">Running the Test Drivers</a>
|
||||||
|
<br><a href="dev_driver.html#adding algorithms">Adding New Algorithms</a></ul>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_view.html">Appendix: Visualization of Geometric Partitions</a></h4>
|
||||||
|
|
||||||
|
<ul><a href="dev_view.html#Vis_2D">2D problems with <I>gnuplot</I></a>
|
||||||
|
<br><a href="dev_view.html#Vis_3D">3D problems with <I>vtk_view</I></a>
|
||||||
|
<br><a href="dev_view.html#Vis_offscreen">Off-screen rendering with <I>vtk_write</I></a>
|
||||||
|
<br><a href="dev_view.html#Vis_other">Other file formats</a>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_test_script.html">Appendix: Using the Test Script <i>test_zoltan</i></a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_rcb.html">Appendix: Recursive Coordinate Bisection (RCB)</a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_rib.html">Appendix: Recursive Inertial Bisection (RIB)</a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_parmetis.html">Appendix: Graph Partitioning (ParMETIS and Jostle) </a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_phg.html">Appendix: Hypergraph Partitioning (PHG) </a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_reftree.html">Appendix: Refinement Tree </a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_hsfc.html">Appendix: Hilbert Space_Filling Curve (HSFC)</a></h4>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
<a href="dev_degenerate.html">Appendix: Handling Degenerate Geometries</a></h4>
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
Copyright (c) 2000-2007, Sandia National Laboratories. <br>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<br>[<a href="../Zoltan.html">Zoltan Home Page</a> | <a href="dev_intro.html">Next:
|
||||||
|
Introduction and General Principles</a>] <!---------MAIN CONTENT AREA ENDS HERE---------><!-- CHANGE CONTACT + E-MAIL, NOTE "SUBJECT" IN E-MAIL CODE --></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<!<hr width="100%">
|
||||||
|
<!--Image maps below-->
|
||||||
|
<map name="shortMap">
|
||||||
|
<area shape="rect" coords="2,2,108,14"href="http://www.sandia.gov/about/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,19,108,31"href="http://www.sandia.gov/mission/ste/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,36,108,48"href="http://www.sandia.gov/mission/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,53,108,65"href="http://www.sandia.gov/contact-us/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,70,108,82"href="http://www.sandia.gov/news/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,87,108,99"href="http://www.sandia.gov/search/index.html"></area>
|
||||||
|
<area shape="rect" coords="2,104,108,116"href="http://www.sandia.gov/Main.html"></area>
|
||||||
|
</map>
|
||||||
|
<!----------------THIS IS A CHANGE AREA---------------->
|
||||||
|
<!----NAME AND DATE OF LAST REVISION SHOULD BE HERE---->
|
||||||
|
<!---------------END OF THIS CHANGE AREA--------------->
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
127
thirdParty/Zoltan/docs/dev_html/dev_add.html
vendored
Normal file
127
thirdParty/Zoltan/docs/dev_html/dev_add.html
vendored
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<!-------- @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.6 sun4m) [Netscape]">
|
||||||
|
<meta name="sandia.approved" content="SAND99-1376">
|
||||||
|
<meta name="author" content="karen devine, kddevin@sandia.gov">
|
||||||
|
<title> Zoltan Developer's Guide: Adding Algorithms</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF">
|
||||||
|
|
||||||
|
<div align=right><b><i><a href="dev.html">Zoltan Developer's Guide</a>
|
||||||
|
| <a href="dev_add_interface.html">Next</a> | <a href="dev_services_debug.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<a NAME="new_methods"></a>Adding New Load-Balancing Algorithms to Zoltan</h2>
|
||||||
|
The Zoltan library is designed so that adding new load-balancing algorithms
|
||||||
|
to the library is simple. In many cases, existing code can be easily modified
|
||||||
|
to use the interface query functions to build the data structures needed
|
||||||
|
for the algorithm. The process for adding new algorithms to the library
|
||||||
|
is described below; more detail is provided at each link.
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
Make sure you follow the <a href="dev_intro_philosophy.html">Philosophy
|
||||||
|
of Zoltan</a> and the <a href="dev_intro_coding.html">Coding Principles
|
||||||
|
in Zoltan</a>.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Use the <a href="dev_add_struct.html">Data Structures</a>
|
||||||
|
provided by Zoltan.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Implement a <a href="dev_add_lb.html">Load-Balancing Function</a> front-end
|
||||||
|
to the algorithm. Note that Zoltan load-balance methods should assign objects both to processors and parts, which may be different. The recommended strategy is to assign objects to parts first, then use Zoltan_LB_Part_To_Proc to generate the corresponding processors.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Add the algorithm to the <a href="dev_add_interface.html">Load-Balancing
|
||||||
|
Interface Routines</a>.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Add the <a href="dev_add_params.html">Parameters</a> needed by the algorithm.
|
||||||
|
Also make sure that the algorithm uses the <a href="../ug_html/ug_param.html#General_Parameters">General Parameters</a> in Zoltan properly, in particular
|
||||||
|
<a href="../ug_html/ug_alg.html#LB Parameters"><b>Imbalance_Tol</b></a> and
|
||||||
|
<a href="../ug_html/ug_param.html#Debug Levels in Zoltan"><b>Debug_Level.</b></a></li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
If necessary, write a routine to free your dynamically allocated data structures.
|
||||||
|
See tips on <a href="dev_add_memory.html">memory management</a></li>
|
||||||
|
in Zoltan.</a></li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
If your algorithm uses persistent data structures,
|
||||||
|
like the RCB tree with <a href="../ug_html/ug_alg_rcb.html">KEEP_CUTS</a>,
|
||||||
|
write a routine to copy your load balancing
|
||||||
|
<a href="dev_add_struct.html#Copy">data structure</a>. </li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
We recommend you add part remapping to your algorithm using
|
||||||
|
<a href="dev_add_.html"><b>Zoltan_LB_Remap</b></a>.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Update the <a href="dev_fortran.html#fortran dev add">Fortran</a>
|
||||||
|
and <a href="dev_cpp.html">C++</a> interfaces, if necessary.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Document your new method. The documentation should be written in a format
|
||||||
|
that can easily be converted into HTML and PDF. Consider adding a
|
||||||
|
simple application to the <I>examples</I> directory demonstrating the
|
||||||
|
use of your method.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Please contact the Zoltan team if you would like your method to be distributed
|
||||||
|
with future versions of Zoltan.</li>
|
||||||
|
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<br>[<a href="dev.html">Table of Contents</a> | <a href="dev_add_interface.html">Next:
|
||||||
|
Load-Balancing Interface Routines</a> | <a href="dev_services_debug.html">Previous:
|
||||||
|
Debugging Services</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</body>
|
||||||
|
</html>
|
101
thirdParty/Zoltan/docs/dev_html/dev_add_interface.html
vendored
Normal file
101
thirdParty/Zoltan/docs/dev_html/dev_add_interface.html
vendored
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<!-------- @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: Adding Interface Routines</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF">
|
||||||
|
|
||||||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_add_lb.html">Next</a> | <a href="dev_add.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<a NAME="new_interface"></a>Load-Balancing Interface Routines</h2>
|
||||||
|
Any new method that you wish to add to the Zoltan library must have an
|
||||||
|
interface that conforms to the prototype <b><a href="dev_add_lb.html">LB_FN</a></b>.
|
||||||
|
Note that the load balancing
|
||||||
|
function may return either import lists, export lists, or both. All
|
||||||
|
processes must return the same type of list. If import (export) lists
|
||||||
|
are not computed, then the variable <i>num_import</i> (<i>num_export</i>)
|
||||||
|
must be set to a negative number (typically -1) upon return.
|
||||||
|
Full support of the <a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>
|
||||||
|
parameter is not required.
|
||||||
|
If <a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>
|
||||||
|
is not set to NONE,
|
||||||
|
the new algorithm may return either import or export lists; the Zoltan
|
||||||
|
interface will then build the lists requested by
|
||||||
|
<a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>.
|
||||||
|
|
||||||
|
<p>
|
||||||
|
A new algorithm must be added to the load-balancing interface for use
|
||||||
|
with parameter
|
||||||
|
<a href="../ug_html/ug_alg.html#LB_METHOD">LB_METHOD</a>.
|
||||||
|
An entry for the new algorithm must be added to the enumerated type <b>Zoltan_LB_Method</b>
|
||||||
|
in <i>lb/lb_const.h</i>. An external <b><a href="dev_add_lb.html">LB_FN</a></b>
|
||||||
|
prototype for the load-balancing function must also be added to <i>lb/lb_const.h</i>;
|
||||||
|
see the prototype for function <i>Zoltan_RCB</i> as an example. A character
|
||||||
|
string describing the new algorithm should be chosen to be used as the parameter
|
||||||
|
value for
|
||||||
|
<a href="../ug_html/ug_alg.html#LB_METHOD">LB_METHOD</a>.
|
||||||
|
In
|
||||||
|
function <b>Zoltan_LB_Set_LB_Method</b>,
|
||||||
|
a test for this string should be added
|
||||||
|
and the <i>Method</i> and <i>LB_Fn</i> fields of the <b><a href="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</a></b>
|
||||||
|
should be set to the new enumerated type value and new load-balancing function
|
||||||
|
pointer.
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<br>[<a href="dev.html">Table of Contents</a> | <a href="dev_add_lb.html">Next:
|
||||||
|
Load-Balancing Function Implementation</a> | <a href="dev_add.html">Previous:
|
||||||
|
Adding New Algorithms</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</body>
|
||||||
|
</html>
|
259
thirdParty/Zoltan/docs/dev_html/dev_add_lb.html
vendored
Normal file
259
thirdParty/Zoltan/docs/dev_html/dev_add_lb.html
vendored
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
<!-------- @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 HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||||
|
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; U; SunOS 5.6 sun4m) [Netscape]">
|
||||||
|
<META NAME="sandia.approved" CONTENT="SAND99-1376">
|
||||||
|
<META NAME="author" CONTENT="karen devine, kddevin@sandia.gov">
|
||||||
|
|
||||||
|
<TITLE> Zoltan Developer's Guide: Adding Load-Balancing Functions</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
<BODY BGCOLOR="#FFFFFF">
|
||||||
|
|
||||||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_add_struct.html">Next</a> | <a href="dev_add_interface.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
|
||||||
|
<H2>
|
||||||
|
<A NAME="new_implementation"></A>Load-Balancing Function Implementation</H2>
|
||||||
|
The new load-balancing algorithm should be implemented as an <B>ZOLTAN_LB_FN</B>.
|
||||||
|
The type definition for an <B>ZOLTAN_LB_FN</B> is in <I>lb/lb_const.h</I> and
|
||||||
|
is described below. When the new algorithm is selected,
|
||||||
|
the <I>LB_Fn</I> field of the <B>Zoltan_Struct</B> is set to point to the <B>ZOLTAN_LB_FN</B>
|
||||||
|
function for the new algorithm. This pointer is then used in invoking load
|
||||||
|
balancing in <B><A HREF="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</A></B>.
|
||||||
|
<BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<hr>
|
||||||
|
<HR>typedef int <B>ZOLTAN_LB_FN</B>
|
||||||
|
(struct <B><A HREF="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</A></B> *<I>zz</I>,
|
||||||
|
float *<I>part_sizes</I>,
|
||||||
|
int *<I>num_import</I>,
|
||||||
|
<B><A HREF="dev_lb_types.html">ZOLTAN_ID_PTR</A></B> *<I>import_global_ids</I>,
|
||||||
|
<B><A HREF="dev_lb_types.html">ZOLTAN_ID_PTR</A></B> *<I>import_local_ids</I>,
|
||||||
|
int **<I>import_procs</I>,
|
||||||
|
int **<I>import_to_parts</I>,
|
||||||
|
int *<I>num_export</I>,
|
||||||
|
<B><A HREF="dev_lb_types.html">ZOLTAN_ID_PTR</A></B> *<I>export_global_ids</I>,
|
||||||
|
<B><A HREF="dev_lb_types.html">ZOLTAN_ID_PTR</A></B> *<I>export_local_ids</I>,
|
||||||
|
int **<I>export_procs</I>,
|
||||||
|
int **<I>export_to_parts</I>);
|
||||||
|
<HR>
|
||||||
|
<BR>The <B>ZOLTAN_LB_FN</B> function type describes the arguments passed to a
|
||||||
|
load-balancing function. The input to the function is a <B><A HREF="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</A></B>
|
||||||
|
containing pointers to application-registered functions to be used in the
|
||||||
|
load-balancing algorithm. The remaining arguments are output parameters
|
||||||
|
listing the objects to be imported or exported to the processor in the
|
||||||
|
new decomposition. The arrays for global and local IDs and source processors
|
||||||
|
must be allocated by the load-balancing function. The load-balancing function
|
||||||
|
may return either the import arrays, the export arrays, or both. If no
|
||||||
|
import data is returned, *<I>num_import </I>must be set to a negative number,
|
||||||
|
and similarly with *<I>num_export.</I>
|
||||||
|
Full support of the <a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>
|
||||||
|
parameter is not required.
|
||||||
|
If <a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>
|
||||||
|
is not set to NONE,
|
||||||
|
the new algorithm may return either import or export lists; the Zoltan
|
||||||
|
interface will then build the lists requested by
|
||||||
|
<a href="../ug_html/ug_alg.html#RETURN_LISTS">RETURN_LISTS</a>.
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
<TABLE WIDTH="100%" >
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP WIDTH="20%"><B>Arguments:</B></TD>
|
||||||
|
|
||||||
|
<TD WIDTH="80%"></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> zz</I></TD>
|
||||||
|
|
||||||
|
<TD>A pointer to the <B><A HREF="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</A></B>
|
||||||
|
to be used in the load-balancing algorithm.</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> part_sizes</I></TD>
|
||||||
|
|
||||||
|
<TD>Input: an array of part sizes for each weight component.
|
||||||
|
Entry
|
||||||
|
<i>part_sizes[i*obj_weight_dim+j]</i>
|
||||||
|
contains the user-requested
|
||||||
|
part size for part <i>i</i> with respect to object weight <i>j</i> for
|
||||||
|
<i>i</i>=0,1,...,number of parts-1, and
|
||||||
|
<i>j</i>=0,1,...,<i>obj_weight_dim</i>-1.
|
||||||
|
If the application sets parameter
|
||||||
|
<i><a href="../ug_html/ug_param.html#OBJ_WEIGHT_DIM">OBJ_WEIGHT_DIM</a></i>,
|
||||||
|
<i>obj_weight_dim</i> is the set value of
|
||||||
|
<i><a href="../ug_html/ug_param.html#OBJ_WEIGHT_DIM">OBJ_WEIGHT_DIM</a></i>;
|
||||||
|
otherwise, <i>obj_weight_dim</i> is one.
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> num_import</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, the number of objects to be imported to the processor
|
||||||
|
for the new decomposition. A negative number indicates that no import data
|
||||||
|
has been computed and the import arrays should be ignored.</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> import_global_ids</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of <I>num_import</I> global IDs
|
||||||
|
of objects to be imported to the processor for the new decomposition.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> <I>import_local_ids</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of <I>num_import</I> local IDs
|
||||||
|
of objects to be imported to the processor for the new decomposition.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> <I>import_procs</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of size <I>num_import</I> containing the processor
|
||||||
|
IDs of processors owning (in the old decomposition) the objects to be imported
|
||||||
|
for the new decomposition.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> <I>import_to_parts</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of size <I>num_import</I> containing the part
|
||||||
|
IDs of parts to which objects will be imported
|
||||||
|
<i>in the NEW decomposition</i>.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD> <I>num_export</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, the number of objects to be exported from the processor
|
||||||
|
for the new decomposition. A negative number indicates that no export data
|
||||||
|
has been computed and the export arrays should be ignored.</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD> <I>export_global_ids</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of <I>num_export</I> global IDs
|
||||||
|
of objects to be exported from the processor for the new decomposition.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD> <I>export_local_ids</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of <I>num_export</I> local IDs
|
||||||
|
of objects to be exported from the processor for the new decomposition.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD> <I>export_procs</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of size <I>num_export</I> containing the
|
||||||
|
processor IDs of processors owning (in the old decomposition) the objects
|
||||||
|
to be exported for the new decomposition.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD> <I>export_to_parts</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, an array of size <I>num_export</I> containing the
|
||||||
|
part IDs of parts to which the objects will be
|
||||||
|
exported for the new decomposition.
|
||||||
|
If this array is non-null, it must be allocated by
|
||||||
|
<b><a href="dev_add_memory.html#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD></TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD><B>Returned Value:</B></TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> int</TD>
|
||||||
|
|
||||||
|
<TD><A HREF="../ug_html/ug_interface.html#Error Codes">Error code</A>.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<HR WIDTH="100%">
|
||||||
|
<BR>[<A HREF="dev.html">Table of Contents</A> | <A HREF="dev_add_struct.html">Next:
|
||||||
|
Data Structures</A> | <A HREF="dev_add_interface.html">Previous:
|
||||||
|
Load-Balancing Interface Routines</A> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
276
thirdParty/Zoltan/docs/dev_html/dev_add_memory.html
vendored
Normal file
276
thirdParty/Zoltan/docs/dev_html/dev_add_memory.html
vendored
Normal file
@ -0,0 +1,276 @@
|
|||||||
|
<!-------- @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: Adding Algorithms: How to handle memory</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF">
|
||||||
|
|
||||||
|
<div align=right><b><i><a href="dev.html">Zoltan Developer's Guide</a>
|
||||||
|
| <a href="dev_add_params.html">Next</a> | <a href="dev_add_struct.html">Previous</a></i></b></div>
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
Memory Management in Zoltan Algorithms</h2>
|
||||||
|
Zoltan uses a <a href="../ug_html/ug_util_mem.html">memory management
|
||||||
|
package</a> to simplify debugging of memory problems.
|
||||||
|
It is strongly recommended that algorithm
|
||||||
|
developers use the routines in this package, such as
|
||||||
|
<a href="../ug_html/ug_util_mem.html#Zoltan_Malloc"><b>ZOLTAN_MALLOC</b> </a>,
|
||||||
|
<a href="../ug_html/ug_util_mem.html#Zoltan_Calloc"><b>ZOLTAN_CALLOC</b> </a> and
|
||||||
|
<b><a href="../ug_html/ug_util_mem.html#Zoltan_Free">ZOLTAN_FREE</a></b>, instead
|
||||||
|
of the standard C routines for most memory management.
|
||||||
|
<p>
|
||||||
|
Macros that simplify the <a href="dev_lb_types.html#ID alloc">allocation of global and local identifiers (IDs)</a>
|
||||||
|
are defined in <i>zz/zz_id_const.h</i>. These macros are described in the
|
||||||
|
<a href="dev_lb_types.html">ID Data Types</a> section. The macros include
|
||||||
|
error checking for the allocations and, thus, their use is highly recommended.
|
||||||
|
|
||||||
|
<p>When a dynamic structure needs to be returned to the application,
|
||||||
|
special memory allocation routines are needed. For example, the import
|
||||||
|
and export lists of data to migrate are returned to an application from
|
||||||
|
<b><a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</a></b>
|
||||||
|
and
|
||||||
|
<b><a href="../ug_html/ug_interface_mig.html#Zoltan_Invert_Lists">Zoltan_Invert_Lists</a></b>.
|
||||||
|
There are two special routines for managing memory for such situations,
|
||||||
|
called <b><a href="#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b> and <b><a href="#Zoltan_Special_Free">Zoltan_Special_Free</a></b>.
|
||||||
|
Algorithms must use these functions to maintain compatibility with both
|
||||||
|
C and Fortran90 applications; these special routines manage memory in a
|
||||||
|
way that is compatible with both languages.
|
||||||
|
<p>Some load-balancing algorithms may contain persistent data structures,
|
||||||
|
that is, data structures that are preserved between calls to the load-balancing
|
||||||
|
routine. The <a href="dev_lb_structs.html"><b>Zoltan_Struct</b></a> structure contains a field
|
||||||
|
<a href="dev_add_struct.html"><i>LB.Data_Structure</i></a>
|
||||||
|
for this purpose, allowing multiple Zoltan structures to preserve
|
||||||
|
their own decomposition data. The developer should write a function that
|
||||||
|
frees this data structure. Use <b>Zoltan_RCB_Free_Structure </b>as an
|
||||||
|
example.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<hr>
|
||||||
|
<a NAME="Zoltan_Special_Malloc"></a>
|
||||||
|
<hr>
|
||||||
|
int <b>Zoltan_Special_Malloc</b>(struct
|
||||||
|
<b><a href="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</a></b>
|
||||||
|
*<i>zz</i>, void **<i>array</i>, int <i>size</i>, <b>ZOLTAN_SPECIAL_MALLOC_TYPE</b><i>type</i>);
|
||||||
|
<hr>
|
||||||
|
<p>The <b>Zoltan_Special_Malloc</b> routine allocates memory to be returned to the application by Zoltan (e.g., the result arrays
|
||||||
|
of
|
||||||
|
<b><a href="../ug_html/ug_interface_lb.html#Zoltan_LB_Partition">Zoltan_LB_Partition</a></b>
|
||||||
|
and
|
||||||
|
<b><a href="../ug_html/ug_interface_mig.html#Zoltan_Invert_Lists">Zoltan_Invert_Lists</a></b>).
|
||||||
|
Returned memory must be allocated by <b>Zoltan_Special_Malloc</b> to insure it is allocated
|
||||||
|
by the same language as the application. Memory allocated by <b>Zoltan_Special_Malloc</b>
|
||||||
|
must be deallocated by <b><a href="#Zoltan_Special_Free">Zoltan_Special_Free</a></b>.
|
||||||
|
<br>
|
||||||
|
<table WIDTH="100%" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="20%"><b>Arguments:</b></td>
|
||||||
|
|
||||||
|
<td WIDTH="80%"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP><i> zz</i></td>
|
||||||
|
|
||||||
|
<td>The Zoltan structure currently in use.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP><i> array</i></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
Upon return, a pointer to the allocated space.
|
||||||
|
Usually of type int** or <b><a href="dev_lb_types.html">ZOLTAN_ID_PTR</a></b>*.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP><i> size</i></td>
|
||||||
|
|
||||||
|
<td>The number of elements (not bytes) to be allocated.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP> <i>type</i></td>
|
||||||
|
|
||||||
|
<td>The type of array to allocate. Must be one of <b>ZOLTAN_SPECIAL_MALLOC_INT</b>,
|
||||||
|
<b>ZOLTAN_SPECIAL_MALLOC_GID</b>
|
||||||
|
or <b>ZOLTAN_SPECIAL_MALLOC_LID</b> for processor numbers, <a href="dev_lb_types.html">global IDs</a> and <a href="dev_lb_types.html">local IDs</a>, respectively.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><b>Returned Value:</b></td>
|
||||||
|
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP> int</td>
|
||||||
|
|
||||||
|
<td>1 if the allocation succeeded; 0 if it failed.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP><b>Example:</b></td>
|
||||||
|
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<tt>
|
||||||
|
ierr = <b>Zoltan_Special_Malloc</b>(<i>zz</i>, (void **)<i>import_gid</i>,
|
||||||
|
<br> <i>num_import</i>,
|
||||||
|
<br> <b>ZOLTAN_SPECIAL_MALLOC_GID</b>);
|
||||||
|
</tt>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP></td>
|
||||||
|
|
||||||
|
<td>Allocates an array with <i>num_import</i> <a href="dev_lb_types.html">global IDs</a>
|
||||||
|
and returns a pointer to the allocated space in <i>import_gid</i>.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<hr>
|
||||||
|
<a NAME="Zoltan_Special_Free"></a>
|
||||||
|
<hr>
|
||||||
|
int <b>Zoltan_Special_Free</b>(struct <b><a href="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</a></b>
|
||||||
|
*<i>zz</i>, void **<i>array</i>,<b> ZOLTAN_SPECIAL_MALLOC_TYPE</b> <i>type</i>);
|
||||||
|
<hr>
|
||||||
|
<p><b>Zoltan_Special_Free</b> frees memory allocated by <b><a href="#Zoltan_Special_Malloc">Zoltan_Special_Malloc</a></b>.
|
||||||
|
The array pointer is set to NULL upon return.
|
||||||
|
<br>
|
||||||
|
<table WIDTH="100%" >
|
||||||
|
<tr VALIGN=TOP>
|
||||||
|
<td VALIGN=TOP WIDTH="20%"><b>Arguments:</b></td>
|
||||||
|
|
||||||
|
<td WIDTH="80%"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP><i> zz</i></td>
|
||||||
|
|
||||||
|
<td>The Zoltan structure currently in use.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP><i> array</i></td>
|
||||||
|
|
||||||
|
<td>The array to be freed. Upon return, the pointer is set to NULL.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP> <i>type</i></td>
|
||||||
|
|
||||||
|
<td>The type of the array. Must be one of <b>ZOLTAN_SPECIAL_MALLOC_INT</b>,
|
||||||
|
<b>ZOLTAN_SPECIAL_MALLOC_GID</b>
|
||||||
|
or <b>ZOLTAN_SPECIAL_MALLOC_LID</b> for processor numbers, <a href="dev_lb_types.html">global IDs</a> and <a href="dev_lb_types.html">local IDs</a>, respectively.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><b>Returned Value:</b></td>
|
||||||
|
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP> int</td>
|
||||||
|
|
||||||
|
<td>1 if the deallocation succeeded; 0 if it failed.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP><b>Example:</b></td>
|
||||||
|
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<tt>
|
||||||
|
ierr = <b>Zoltan_Special_Free</b>(<i>zz</i>, (void **)<i>import_gid</i>,
|
||||||
|
<br> <b>ZOLTAN_SPECIAL_MALLOC_GID</b>);
|
||||||
|
</tt>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td VALIGN=TOP></td>
|
||||||
|
|
||||||
|
<td>Frees the <b><a href="dev_lb_types.html">global IDs</a></b>
|
||||||
|
array <i>import_gid</i> and sets it to NULL.</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
<!------------------------------------------------------------------------->
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<br>[<a href="dev.html">Table of Contents</a> | <a href="dev_add_params.html">Next:
|
||||||
|
Parameters</a> | <a href="dev_add_struct.html">Previous:
|
||||||
|
Data Structures</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</body>
|
||||||
|
</html>
|
118
thirdParty/Zoltan/docs/dev_html/dev_add_params.html
vendored
Normal file
118
thirdParty/Zoltan/docs/dev_html/dev_add_params.html
vendored
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
<!-------- @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: Adding Parameters</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF">
|
||||||
|
|
||||||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_add_remap.html">Next</a> | <a href="dev_add_memory.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<a NAME="new_parameters"></a>Adding new parameters</h2>
|
||||||
|
All parameters in Zoltan should be set and accessed through the <a href="dev_services_params.html">parameter
|
||||||
|
setting routines</a>. To add a new parameter to an existing method, you
|
||||||
|
need to do the following:
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
In the source code for the desired method, search for the place where
|
||||||
|
the static array of parameters is defined. It will look something like:
|
||||||
|
<i>static
|
||||||
|
PARAM_VARS Method_params[] = { ... }</i>. Add a line with the name
|
||||||
|
of the new parameter, a pointer to the variable you want to associate (usually
|
||||||
|
NULL), and its type.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
In the method source code, bind the parameter to a local variable through
|
||||||
|
<b><a href="dev_services_params.html#Zoltan_Bind_Param">Zoltan_Bind_Param</a></b>.
|
||||||
|
Make sure you do this before <b><a href="dev_services_params.html#Zoltan_Assign_Param_Vals">Zoltan_Assign_Param_Vals
|
||||||
|
</a></b>is
|
||||||
|
invoked.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Update the parameter function for the method in question. This routine
|
||||||
|
is typically called <b>Zoltan_</b><i>Method</i><b>_Set_Param</b><i>. </i>This
|
||||||
|
routine checks if a given string is a valid parameter for that method.
|
||||||
|
It may also verify the values.</li>
|
||||||
|
</ul>
|
||||||
|
When you add a new method to Zoltan, you also need to:
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Write a parameter function for your method that checks whether a given
|
||||||
|
string and value is a valid parameter pair for your method. See <b>Zoltan_RCB_Set_Param</b>
|
||||||
|
in <i>rcb/rcb.c</i> for an example.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Let your method access the parameters via <b><a href="dev_services_params.html#Zoltan_Bind_Param">Zoltan_Bind_Param
|
||||||
|
</a></b>and
|
||||||
|
<b><a href="dev_services_params.html#Zoltan_Assign_Param_Vals">Zoltan_Assign_Param_Vals</a></b>.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Change the parameter function array in <i>params/set_params.c</i> to include
|
||||||
|
your parameter function. Simply add a new entry to the static array that
|
||||||
|
looks like: <i>static ZOLTAN_SET_PARAM_FN * Param_func[] = {...}</i>.</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Make sure your method uses the <a href="../ug_html/ug_param.html#General_Parameters">key
|
||||||
|
parameters</a> in Zoltan correctly.</li>
|
||||||
|
</ul>
|
||||||
|
One useful convention is to put your method routine and your corresponding
|
||||||
|
parameter function in the same source file. This way you can define the
|
||||||
|
parameters in a static array. This convention eliminates the risk
|
||||||
|
of bugs caused by duplicate declarations (that are, incorrectly, not identical).
|
||||||
|
<br>
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<br>[<a href="dev.html">Table of Contents</a> | <a href="dev_add_remap.html">Next:
|
||||||
|
Part Remapping</a> | <a href="dev_add_memory.html">Previous:
|
||||||
|
Memory Management</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</body>
|
||||||
|
</html>
|
248
thirdParty/Zoltan/docs/dev_html/dev_add_remap.html
vendored
Normal file
248
thirdParty/Zoltan/docs/dev_html/dev_add_remap.html
vendored
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
<!-------- @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 HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||||
|
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; U; SunOS 5.6 sun4m) [Netscape]">
|
||||||
|
<META NAME="sandia.approved" CONTENT="SAND99-1376">
|
||||||
|
<META NAME="author" CONTENT="karen devine, kddevin@sandia.gov">
|
||||||
|
|
||||||
|
<TITLE> Zoltan Developer's Guide: Part Remapping</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
<BODY BGCOLOR="#FFFFFF">
|
||||||
|
|
||||||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_mig.html">Next</a> | <a href="dev_add_params.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
|
||||||
|
<H2>
|
||||||
|
<A NAME="new_implementation"></A>Part Remapping</H2>
|
||||||
|
Part remapping can be incorporated into load-balancing algorithms.
|
||||||
|
The part remapping algorithm works as follows:
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
After partitioning within an <a href="dev_add_lb.html"><b>ZOLTAN_LB_FN</b></a>
|
||||||
|
but before import or export lists are built, the partitioning algorithm calls
|
||||||
|
<a href="#Zoltan_LB_Remap"><b>Zoltan_LB_Remap</b></a>.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Zoltan_LB_Remap"><b>Zoltan_LB_Remap</b></a> builds a bipartite
|
||||||
|
graph based on local import or export information (depending on which is
|
||||||
|
available in the partitioning algorithm). Vertices of the graph are
|
||||||
|
processor or part numbers used in the old (input to the partitioner)
|
||||||
|
and new (computed by the partitioner) decompositions. Edges connect
|
||||||
|
old and new vertices; edge weight for edge <i>e<sub>ij</sub></i> is the
|
||||||
|
number of objects in old part <i>i</i> that are also in new part
|
||||||
|
<i>j</i>. The bipartite graph is stored as a hypergraph, so that Zoltan's
|
||||||
|
hypergraph matching routines may be applied.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Zoltan_LB_Remap"><b>Zoltan_LB_Remap</b></a> gathers the local
|
||||||
|
hypergraph edges onto each processor and performs a serial matching of
|
||||||
|
the vertices. This matching defines the remapping.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Zoltan_LB_Remap"><b>Zoltan_LB_Remap</b></a> remaps the input
|
||||||
|
processor and part information to reflect the remapping and returns
|
||||||
|
the result to the application. It also builds array <i>zz->LB.Remap</i>
|
||||||
|
that is used in other functions (e.g.,
|
||||||
|
<b><a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Box_PP_Assign">Zoltan_LB_Box_PP_Assign</a></b> and
|
||||||
|
<b><a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Point_PP_Assign">Zoltan_LB_Point_PP_Assign</a></b>).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Using the remapping information returned from
|
||||||
|
<a href="#Zoltan_LB_Remap"><b>Zoltan_LB_Remap</b></a>, the partitioning
|
||||||
|
algorithm builds the import or export lists to return to the application.
|
||||||
|
Note: if the partitioning algorithm builds import lists, data may have to be
|
||||||
|
moved to appropriate processors before building import lists to reflect
|
||||||
|
the remapping; see <i>rcb/shared.c</i> for an example.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<hr><a NAME="Zoltan_LB_Remap"></a>
|
||||||
|
<HR>int <B>Zoltan_LB_Remap</B>
|
||||||
|
(struct <B><A HREF="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</A></B> *<I>zz</I>,
|
||||||
|
int *<I>new_map</I>,
|
||||||
|
int <I>num_obj</I>,
|
||||||
|
int *<I>procs</I>,
|
||||||
|
int *<I>old_parts</I>,
|
||||||
|
int *<I>new_parts</I>,
|
||||||
|
int <I>export_list_flag</I>);
|
||||||
|
<HR>
|
||||||
|
<BR>
|
||||||
|
<b>Zoltan_LB_Remap</b> 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.
|
||||||
|
<b>Zoltan_LB_Remap</b> should be invoked when Zoltan parameter
|
||||||
|
<i><a href="../ug_html/ug_alg.html#REMAP">REMAP</a></i> is one.
|
||||||
|
Even when
|
||||||
|
<i><a href="../ug_html/ug_alg.html#REMAP">REMAP</a></i> is one,
|
||||||
|
remapping is not done under a number of conditions; these conditions are
|
||||||
|
listed with the description of
|
||||||
|
<i><a href="../ug_html/ug_alg.html#REMAP">REMAP</a></i>.
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
<TABLE WIDTH="100%" >
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP WIDTH="20%"><B>Arguments:</B></TD>
|
||||||
|
|
||||||
|
<TD WIDTH="80%"></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> zz</I></TD>
|
||||||
|
|
||||||
|
<TD>A pointer to the <B><A HREF="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</A></B>
|
||||||
|
used in the partitioning algorithm.</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> new_map</I></TD>
|
||||||
|
|
||||||
|
<TD>Upon return, a flag indicating whether remapping was actually done.
|
||||||
|
Remapping is not done under a number of conditions (described with
|
||||||
|
parameter
|
||||||
|
<i><a href="../ug_html/ug_alg.html#REMAP">REMAP</a></i>) or when the
|
||||||
|
computed remap gives a worse or equivalent result than the decomposition
|
||||||
|
computed by the partitioning algorithm.
|
||||||
|
</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> num_obj</I></TD>
|
||||||
|
|
||||||
|
<TD>Input: the number of objects the processor knows about after
|
||||||
|
computing the decomposition. If the partitioning algorithm computes
|
||||||
|
export lists, <i>num_obj</i> is the number of objects stored on the
|
||||||
|
processor; if it computes import lists, <i>num_obj</i> is the number of
|
||||||
|
objects that will be stored on the processor in the new decomposition.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP><I> procs</I></TD>
|
||||||
|
|
||||||
|
<TD>
|
||||||
|
Upon input:
|
||||||
|
an array of size <i>num_obj</i> containing processor
|
||||||
|
assignments for the objects;
|
||||||
|
if <i>export_list_flag</i> == 1,
|
||||||
|
<i>procs</i> contains processor assignments
|
||||||
|
in the NEW decomposition (computed by the partitioner); otherwise,
|
||||||
|
<i>procs</i> contains processor assignments
|
||||||
|
in the OLD decomposition (input by the application).
|
||||||
|
Upon return, <i>procs</i> contains remapped
|
||||||
|
processor assignments for the NEW decomposition, regardless of the value of
|
||||||
|
<i>export_list_flag</i>.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> <I>old_parts</I></TD>
|
||||||
|
|
||||||
|
<TD>
|
||||||
|
Upon input:
|
||||||
|
an array of size <i>num_obj</i> containing part
|
||||||
|
assignments for the objects in the OLD decomposition (input by the
|
||||||
|
application).
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> <I>new_parts</I></TD>
|
||||||
|
|
||||||
|
<TD>
|
||||||
|
Upon input:
|
||||||
|
an array of size <i>num_obj</i> containing part
|
||||||
|
assignments for the objects in the NEW decomposition (computed by the
|
||||||
|
partitioning algorithm).
|
||||||
|
Upon return:
|
||||||
|
<i>new_parts</i> contains remapped part assignments in the NEW decomposition.
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> <I>export_list_flag</I></TD>
|
||||||
|
|
||||||
|
<TD>
|
||||||
|
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.
|
||||||
|
</td>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD></TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD><B>Returned Value:</B></TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR VALIGN=TOP>
|
||||||
|
<TD VALIGN=TOP> int</TD>
|
||||||
|
|
||||||
|
<TD><A HREF="../ug_html/ug_interface.html#Error Codes">Error code</A>.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<HR WIDTH="100%">
|
||||||
|
<BR>[<A HREF="dev.html">Table of Contents</A> | <A HREF="dev_mig.html">Next:
|
||||||
|
Migration Tools</A> | <A HREF="dev_add_params.html">Previous:
|
||||||
|
Adding new parameters</A> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
228
thirdParty/Zoltan/docs/dev_html/dev_add_struct.html
vendored
Normal file
228
thirdParty/Zoltan/docs/dev_html/dev_add_struct.html
vendored
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
<!-------- @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: Adding Data Structures</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF">
|
||||||
|
|
||||||
|
<div align=right><b><i><a href="dev.html">Zoltan Developer's Guide</a>
|
||||||
|
| <a href="dev_add_memory.html">Next</a> | <a href="dev_add_lb.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<a NAME="new_data_structs"></a>Data Structures</h2>
|
||||||
|
The main data structures for the algorithm should be pointed to by the
|
||||||
|
<i>LB.Data_Structure</i>
|
||||||
|
field of the <b><a href="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</a></b>.
|
||||||
|
This requirement allows reuse of data structures from one invocation of
|
||||||
|
the new load-balancing algorithm to the next. It also prevents the use
|
||||||
|
of global data structures for the algorithm so that multiple instances
|
||||||
|
of the algorithm may be used (i.e., the same algorithm can be used for
|
||||||
|
multiple <b><a href="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</a></b> structures).
|
||||||
|
An example showing the construction of data structures for the
|
||||||
|
<a href="../ug_html/ug_alg_rcb.html">Recursive
|
||||||
|
Coordinate Bisection (RCB)</a> algorithm is included
|
||||||
|
in the <a href="#RCB_example">figure</a> below.
|
||||||
|
<center><table BORDER=2 COLS=1 WIDTH="90%" NOSAVE >
|
||||||
|
<tr>
|
||||||
|
<td><a NAME="RCB_example"></a>
|
||||||
|
<tt>
|
||||||
|
<br>/* Allocate RCB data structure for this Zoltan structure.
|
||||||
|
<br> * If the previous data structure still exists, free the Dots
|
||||||
|
first;
|
||||||
|
<br> * the other fields can be reused.
|
||||||
|
<br> */
|
||||||
|
<br>if (zz->LB.Data_Structure == NULL) {
|
||||||
|
<br> rcb = (RCB_STRUCT *) <a href="../ug_html/ug_util_mem.html#Zoltan_Malloc">ZOLTAN_MALLOC</a>(sizeof(RCB_STRUCT));
|
||||||
|
<br> zz->LB.Data_Structure = (void *) rcb;
|
||||||
|
<br> rcb->Tree_Ptr = (struct rcb_tree *)
|
||||||
|
<br>
|
||||||
|
<a href="../ug_html/ug_util_mem.html#Zoltan_Malloc">ZOLTAN_MALLOC</a>(zz->Num_Proc*sizeof(struct
|
||||||
|
rcb_tree));
|
||||||
|
<br> rcb->Box = (struct rcb_box *) <a href="../ug_html/ug_util_mem.html#Zoltan_Malloc">ZOLTAN_MALLOC</a>(sizeof(struct
|
||||||
|
rcb_box));
|
||||||
|
<br>}
|
||||||
|
<br>else {
|
||||||
|
<br> rcb = (RCB_STRUCT *) zz->LB.Data_Structure;
|
||||||
|
<br> <a href="../ug_html/ug_util_mem.html#Zoltan_Free">ZOLTAN_FREE</a>(&(rcb->Dots));
|
||||||
|
<br>}
|
||||||
|
</tt>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<caption ALIGN=BOTTOM><i>Example demonstrating allocation of data structures
|
||||||
|
for the RCB algorithm. (Taken from rcb/rcb_util.c.)</i></caption>
|
||||||
|
</table></center>
|
||||||
|
|
||||||
|
<p>The data needed for the algorithm is collected through calls to the
|
||||||
|
query functions registered by the application. Algorithms should test the
|
||||||
|
query function pointers for NULL and report errors when needed functions
|
||||||
|
are not registered. The appropriate query functions can be called to build
|
||||||
|
the algorithm's data structures up front, or they can be called during
|
||||||
|
the algorithm's execution to gather data only as it is needed. The <a href="#query_example">figure</a>
|
||||||
|
below shows how the <i>Dots</i> data structure needed by RCB is built.
|
||||||
|
The call to <i>zz->Get_Num_Obj</i> invokes an <b><a href="../ug_html/ug_query_lb.html#ZOLTAN_NUM_OBJ_FN">ZOLTAN_NUM_OBJ_FN</a></b>
|
||||||
|
query function to determine the number of objects on the processor.
|
||||||
|
Space for the <i>Dots</i> data structure is allocated through calls to
|
||||||
|
<b><a href="../ug_html/ug_util_mem.html#Zoltan_Malloc">ZOLTAN_MALLOC</a></b>, <a href="dev_lb_types.html#ID alloc"><b>ZOLTAN_MALLOC_GID_ARRAY</b></a>,
|
||||||
|
and <a href="dev_lb_types.html#ID alloc"><b>ZOLTAN_MALLOC_LID_ARRAY</b></a>. The <i>Dots</i> information is obtained
|
||||||
|
through a call to the Zoltan service function <b><a href="dev_services_objlist.html">Zoltan_Get_Obj_List</a></b>; this
|
||||||
|
function calls either an <b><a href="../ug_html/ug_query_lb.html#ZOLTAN_OBJ_LIST_FN">ZOLTAN_OBJ_LIST_FN</a></b>
|
||||||
|
or an <b><a href="../ug_html/ug_query_lb.html#ZOLTAN_FIRST_OBJ_FN">ZOLTAN_FIRST_OBJ_FN</a></b>/<b><a href="../ug_html/ug_query_lb.html#ZOLTAN_NEXT_OBJ_FN">ZOLTAN_NEXT_OBJ_FN</a></b>
|
||||||
|
pair to get the object IDs and weights. The data for each
|
||||||
|
<i>Dot</i> is
|
||||||
|
set in the function <i>initialize_dot</i>, which includes calls to<i> zz->Get_Geom</i>,
|
||||||
|
an <b><a href="../ug_html/ug_query_lb.html#ZOLTAN_GEOM_FN">ZOLTAN_GEOM_FN</a></b>
|
||||||
|
query function.
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<center><table BORDER=2 COLS=1 WIDTH="90%" NOSAVE >
|
||||||
|
<tr>
|
||||||
|
<td><a NAME="query_example"></a>
|
||||||
|
<tt>
|
||||||
|
<br>/*
|
||||||
|
<br> * Allocate space for objects. Allow extra space
|
||||||
|
<br> * for objects that are imported to the processor.
|
||||||
|
<br> */
|
||||||
|
<p>*num_obj = zz->Get_Num_Obj(zz->Get_Num_Obj_Data, &ierr);
|
||||||
|
<br>if (ierr) {
|
||||||
|
<br> <a href="dev_intro_coding.html#ZOLTAN_PRINT">ZOLTAN_PRINT_ERROR</a>(zz->Proc,
|
||||||
|
yo,
|
||||||
|
<br>
|
||||||
|
"Error returned from Get_Num_Obj.");
|
||||||
|
<br> return(ierr);
|
||||||
|
<br>}
|
||||||
|
<p>*max_obj = (int)(1.5 * *num_obj) + 1;
|
||||||
|
<br>*global_ids = <a href="dev_lb_types.html#ID alloc">ZOLTAN_MALLOC_GID_ARRAY</a>(zz, (*max_obj));
|
||||||
|
<br>*local_ids = <a href="dev_lb_types.html#ID alloc">ZOLTAN_MALLOC_LID_ARRAY</a>(zz, (*max_obj));
|
||||||
|
<br>*dots = (struct Dot_Struct *)
|
||||||
|
<br> <a href="../ug_html/ug_util_mem.html#Zoltan_Malloc">ZOLTAN_MALLOC</a>((*max_obj)*sizeof(struct
|
||||||
|
Dot_Struct));
|
||||||
|
<p>if (!(*global_ids) || (zz->Num_LID && !(*local_ids)) ||
|
||||||
|
!(*dots)) {
|
||||||
|
<br> <a href="dev_intro_coding.html#ZOLTAN_PRINT">ZOLTAN_PRINT_ERROR</a>(zz->Proc,
|
||||||
|
yo, "Insufficient memory.");
|
||||||
|
<br> return(<a href="../ug_html/ug_interface.html#Error Codes">ZOLTAN_MEMERR</a>);
|
||||||
|
<br>}
|
||||||
|
<p>if (*num_obj > 0) {
|
||||||
|
<p> if (wgtflag) {
|
||||||
|
<p> /*
|
||||||
|
<br> * Allocate space for object weights.
|
||||||
|
<br> */
|
||||||
|
<p> objs_wgt = (float *) <a href="../ug_html/ug_util_mem.html#Zoltan_Malloc">ZOLTAN_MALLOC</a>((*num_obj)*sizeof(float));
|
||||||
|
<br> if (!objs_wgt) {
|
||||||
|
<br> <a href="dev_intro_coding.html#ZOLTAN_PRINT">ZOLTAN_PRINT_ERROR</a>(zz->Proc,
|
||||||
|
yo, "Insufficient memory.");
|
||||||
|
<br> return(<a href="../ug_html/ug_interface.html#Error Codes">ZOLTAN_MEMERR</a>);
|
||||||
|
<br> }
|
||||||
|
<br> for (i = 0; i < *num_obj; i++) objs_wgt[i]
|
||||||
|
= 0.;
|
||||||
|
<br> }
|
||||||
|
<p> /*
|
||||||
|
<br> * Get list of objects' IDs and weights.
|
||||||
|
<br> */
|
||||||
|
<p> <a href="dev_services_objlist.html">Zoltan_Get_Obj_List</a>(zz, *global_ids, *local_ids, wgtflag,
|
||||||
|
<br> objs_wgt, &ierr);
|
||||||
|
<br> if (ierr) {
|
||||||
|
<br> <a href="dev_intro_coding.html#ZOLTAN_PRINT">ZOLTAN_PRINT_ERROR</a>(zz->Proc,
|
||||||
|
yo,
|
||||||
|
<br>
|
||||||
|
"Error returned from Zoltan_Get_Obj_List.");
|
||||||
|
<br> <a href="../ug_html/ug_util_mem.html#Zoltan_Free">ZOLTAN_FREE</a>(&objs_wgt);
|
||||||
|
<br> return(ierr);
|
||||||
|
<br> }
|
||||||
|
<p> ierr = initialize_dot(zz, *global_ids, *local_ids, *dots,
|
||||||
|
<br>
|
||||||
|
*num_obj, wgtflag, objs_wgt);
|
||||||
|
<br> if (ierr == ZOLTAN_FATAL || ierr == ZOLTAN_MEMERR) {
|
||||||
|
<br> <a href="dev_intro_coding.html#ZOLTAN_PRINT">ZOLTAN_PRINT_ERROR</a>(zz->Proc,
|
||||||
|
yo,
|
||||||
|
<br>
|
||||||
|
"Error returned from initialize_dot.");
|
||||||
|
<br> <a href="../ug_html/ug_util_mem.html#Zoltan_Free">ZOLTAN_FREE</a>(&objs_wgt);
|
||||||
|
<br> return(ierr);
|
||||||
|
<br> }
|
||||||
|
<p> <a href="../ug_html/ug_util_mem.html#Zoltan_Free">ZOLTAN_FREE</a>(&objs_wgt);
|
||||||
|
<br>}
|
||||||
|
</tt>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<caption ALIGN=BOTTOM><i>Example demonstrating how data structures are
|
||||||
|
built for the RCB algorithm. (Taken from rcb/shared.c.)</i></caption>
|
||||||
|
</table></center>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The data structures pointed to by <i>zz->LB.Data_Structure</i> will be freed
|
||||||
|
at some point, and may be copied.
|
||||||
|
<p>A function that frees these structures and resets <i>zz->LB.Data_Structure</i>
|
||||||
|
to NULL should be written. The function should be called when the load-balancing
|
||||||
|
algorithm exits, either normally or due to an error condition.
|
||||||
|
The function
|
||||||
|
<b>Zoltan_RCB_Free_Structure</b> in <i>rcb/rcb_util.c</i> may be used as an example.
|
||||||
|
<A NAME="Copy"></A>
|
||||||
|
<p>If your algorithm uses the <a href="../ug_html/ug_alg_rcb.html">KEEP_CUTS</a>
|
||||||
|
parameter, a function that copies one <i>zz->LB.Data_Structure</i> to another is
|
||||||
|
required. This is particularly important for C++,
|
||||||
|
which may create temporary objects
|
||||||
|
at runtime by invoking a copy operator (which will call your copy function).
|
||||||
|
It is a convenience for C applications, which may wish to copy one Zoltan_Struct
|
||||||
|
to another.
|
||||||
|
See the function <b>Zoltan_RCB_Copy_Structure</b> in <i>rcb/rcb_util.c</i>
|
||||||
|
for an example.
|
||||||
|
|
||||||
|
<hr WIDTH="100%">
|
||||||
|
<br>[<a href="dev.html">Table of Contents</a> | <a href="dev_add_memory.html">Next:
|
||||||
|
Memory Management</a> | <a href="dev_add_lb.html">Previous:
|
||||||
|
Load-Balancing Function Implementation</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
<br>
|
||||||
|
</body>
|
||||||
|
</html>
|
227
thirdParty/Zoltan/docs/dev_html/dev_cpp.html
vendored
Normal file
227
thirdParty/Zoltan/docs/dev_html/dev_cpp.html
vendored
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
<!-------- @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 HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||||
|
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; U; SunOS 4.1.3_U1 sun4m) [Netscape]">
|
||||||
|
<META NAME="sandia.approved" CONTENT="SAND99-1376">
|
||||||
|
<META NAME="author" CONTENT="lee ann fisk, lafisk@sandia.gov">
|
||||||
|
|
||||||
|
<TITLE> Zoltan Developer's Guide: C++ Interface</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
<BODY BGCOLOR="#FFFFFF">
|
||||||
|
|
||||||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_refs.html">Next</a> | <a href="dev_fortran.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
|
||||||
|
<H2>
|
||||||
|
<A NAME="cpp dev"></A>C++ Interface</H2>
|
||||||
|
As with the Fortran interface just described, any change to the user
|
||||||
|
API of Zoltan should be reflected in the C++ interface. This section
|
||||||
|
explains the conventions used in the C++ interface, which you will want
|
||||||
|
to follow when you modify or expand it.
|
||||||
|
|
||||||
|
<UL><A HREF="#cpp dev classes">Classes</A><BR>
|
||||||
|
<A HREF="#cpp dev conventions">Programming Conventions</A>
|
||||||
|
<UL>
|
||||||
|
<A HREF="#cpp dev namespaces"><I>Namespaces</I></A><BR>
|
||||||
|
<A HREF="#cpp dev cnames"><I>Class names</I></A><BR>
|
||||||
|
<A HREF="#cpp dev mnames"><I>Method names</I></A><BR>
|
||||||
|
<A HREF="#cpp dev constmethods"><I>Const methods</I></A><BR>
|
||||||
|
<A HREF="#cpp dev parameters"><I>Declaration of method parameters</I></A><BR>
|
||||||
|
<A HREF="#cpp dev copy"><I>Copy constructor, copy operator</I></A>
|
||||||
|
</UL>
|
||||||
|
<A HREF="#cpp dev updating">Keeping the C++ interface up-to-date</A><BR>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H3> <A NAME="cpp dev classes"></A>Classes</H3>
|
||||||
|
The C language Zoltan library already observes the principles of
|
||||||
|
object oriented program design. Each sub function of Zoltan (load
|
||||||
|
balancing, timing, etc.) has a data structure
|
||||||
|
associated with it. This data structure maintains all the state required
|
||||||
|
for one instance of that sub function. Each request of the library for
|
||||||
|
some operation requires that data structure.
|
||||||
|
|
||||||
|
<P>The classes in the Zoltan C++ library follow the structure just described.
|
||||||
|
Each class is defined in a header
|
||||||
|
file and encapsulates a Zoltan data structure and the functions that
|
||||||
|
operate on that structure. A C++ application wishing to use a
|
||||||
|
feature of Zoltan, would include the feature's header file in it's source, and
|
||||||
|
link with the Zoltan C library.
|
||||||
|
|
||||||
|
<P>The C language load balancing data stucture
|
||||||
|
(<B><A HREF="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</A></B>)
|
||||||
|
and the C functions that operate on it are accessed
|
||||||
|
through the C++ <B>Zoltan</B> class, defined in <I>zoltan_cpp.h</I>.
|
||||||
|
|
||||||
|
<P>The communication package is encapsulated the <B>Zoltan_Comm</B> class
|
||||||
|
defined in <I>zoltan_comm_cpp.h</I>.
|
||||||
|
Again, to use the communication utility of Zoltan from a C++ program,
|
||||||
|
include <I>zoltan_comm_cpp.h</I> and use the C++ methods defined there.
|
||||||
|
|
||||||
|
<P>The C++ Zoltan timer class is called <B>Zoltan_Timer_Object</B> and
|
||||||
|
is defined in <I>zoltan_timer_cpp.h</I>.
|
||||||
|
|
||||||
|
<P>The distributed directory utility of Zoltan is encapsulated in the
|
||||||
|
class <B>Zoltan_DD</B> defined in <I>zoltan_dd_cpp.h</I>
|
||||||
|
|
||||||
|
<H3> <A NAME="cpp dev conventions"></A>Programming Conventions</H3>
|
||||||
|
When modifying the interface to Zoltan , you will want to modify
|
||||||
|
the appropriate C++ header file accordingly. This section describes the
|
||||||
|
conventions to follow to maintain a consistent and correct library interface
|
||||||
|
for the C++ user of Zoltan.
|
||||||
|
|
||||||
|
<H4><I><A NAME="cpp dev namespaces">Namespaces</A></I></H4>
|
||||||
|
In order to maintain portability across platforms, there is no Zoltan
|
||||||
|
namespace. Many C++ compilers do not support namespaces at this time.
|
||||||
|
The name of each Zoltan class begins with <B>Zoltan_</B>, and hopefully
|
||||||
|
this will never clash with another namespace.
|
||||||
|
|
||||||
|
<H4><I><A NAME="cpp dev cnames">Class names</A></I></H4>
|
||||||
|
Class names are <B>Zoltan_</B> followed by text indicating the sub
|
||||||
|
function of Zoltan that is encapsulated by the class.
|
||||||
|
|
||||||
|
<H4><I><A NAME="cpp dev mnames">Method names</A></I></H4>
|
||||||
|
Method names are derived from the C library function names in such a
|
||||||
|
way that the name will be obvious to a person familiar with the C library.
|
||||||
|
We remove the beginning of the C library name, the part that identifies
|
||||||
|
the subset of the Zoltan library that the function is part of, and keep
|
||||||
|
the last part of the C library name, the part that describes what the
|
||||||
|
function does. For example the C function <B>Zoltan_LB_Partition</B> becomes
|
||||||
|
the C++ method <B>LB_Partition</B> in the class <B>Zoltan</B> and
|
||||||
|
C function <B>Zoltan_Comm_Create</B> becomes the C++ method
|
||||||
|
<B>Create</B> in the class <B>Zoltan_Comm</B>.
|
||||||
|
|
||||||
|
<H4><I><A NAME="cpp dev constmethods">Const methods</A></I></H4>
|
||||||
|
All class methods which can be declared <B>const</B>, because they
|
||||||
|
do not modify the object, should be declared <B>const</B>. This allows
|
||||||
|
C++ programmers to call these methods on their <B>const</B> objects.
|
||||||
|
|
||||||
|
<H4><I><A NAME="cpp dev parameters">Declaration of method parameters</A></I></H4>
|
||||||
|
|
||||||
|
Parameters that are not changed in the method should be declared <B>const</B>.
|
||||||
|
This can get complicated, but it helps to read declarations from right to
|
||||||
|
left. <B>const int * & p</B> says <I>p is a reference to a pointer to
|
||||||
|
a const int</I> and means the method will not change the value pointed
|
||||||
|
to by <I>p</I>. On the other hand <B>int * const & p</B> says that
|
||||||
|
<I>p is a reference to a const pointer to int</I> so the method will
|
||||||
|
not change the pointer.
|
||||||
|
|
||||||
|
<P>Variables that are passed by value in a C function will be passed by
|
||||||
|
const reference in the C++ method. This is semantically the same, but
|
||||||
|
it is more efficient, and it will work with temporary variables created
|
||||||
|
by a compiler.
|
||||||
|
|
||||||
|
<P>If a C function takes a pointer to a single built-in type (not an aggregate
|
||||||
|
type), the associated C++ method will take a reference variable.
|
||||||
|
If a C function takes a pointer to a pointer, the C++ function will take
|
||||||
|
a pointer reference. The references are more efficient, and it is
|
||||||
|
the behavior a C++ programmer expects.
|
||||||
|
A pointer to an array remains a pointer to an array.
|
||||||
|
|
||||||
|
<P><TABLE rules=cols,rows frame=box align=center cellpadding=5>
|
||||||
|
<TR> <TH>C function parameter</TH> <TH>C++ method parameter</TH> <TH> method's const behavior</TR>
|
||||||
|
<TR> <TD>int val</TD>
|
||||||
|
<TD>const int &val</TD>
|
||||||
|
<TD>won't change value</TD></TR>
|
||||||
|
<TR> <TD>int *singlep</TD>
|
||||||
|
<TD>int &singlep <br> const int &singlep</TD>
|
||||||
|
<TD>may change value <br> won't change value</TD></TR>
|
||||||
|
<TR> <TD>int **singlep</TD>
|
||||||
|
<TD>int *&singlep <br> const int * &p <br> int *const &p <br> const int * const &p</TD>
|
||||||
|
<TD>may change pointer or value<br>won't change value<br>won't change pointer to value<br>won't change anything</TD></TR>
|
||||||
|
<TR> <TD>int *arrayp</TD>
|
||||||
|
<TD>int *arrayp <br> const int * arrayp</TD>
|
||||||
|
<TD>may change array contents <br> won't change array contents</TD> </TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P>If a C function takes a pointer to an array of <I>char</I>, the
|
||||||
|
associated C++ method will take a <I>string</I> object.
|
||||||
|
|
||||||
|
<P><TABLE rules=cols,rows frame=box align=center cellpadding=5>
|
||||||
|
<TR> <TH>C function parameter</TH> <TH>C++ method parameter</TH> </TR>
|
||||||
|
<TR> <TD>char *fname</TD> <TD>std::string &fname</TD> </TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<P> In all honesty, it is tedious to carefully apply const'ness in
|
||||||
|
parameter declarations, and we did not do it consistently throughout the
|
||||||
|
C++ wrapping of Zoltan. Please feel free to add <I>const</I> declarations
|
||||||
|
where they belong, and try to use them correctly if you add or modify Zoltan
|
||||||
|
C++ methods.
|
||||||
|
|
||||||
|
<H4><I><A NAME="cpp dev copy">Copy constructor, copy operator</A></I></H4>
|
||||||
|
Each class should have a copy constructor and a copy operator.
|
||||||
|
|
||||||
|
|
||||||
|
<H3> <A NAME="cpp dev updating"></A>Keeping the C++ interface up-to-date</H3>
|
||||||
|
Here we provide a checklist of things to be done when the C interface to
|
||||||
|
the Zoltan library is changed:
|
||||||
|
|
||||||
|
<UL>
|
||||||
|
<LI>If a new major component is added to Zoltan, create a C++ class for
|
||||||
|
that component in a new header file, using the programming conventions
|
||||||
|
described above. </LI>
|
||||||
|
<LI>If functions are added or removed, or their parameter lists are
|
||||||
|
changed, then update the header file defining the class that contains
|
||||||
|
those functions.</LI>
|
||||||
|
<LI>When Zoltan data structures are changed, be sure to change the C functions
|
||||||
|
that copy the data structure. (They contain <B>Copy</B> in their name.)
|
||||||
|
Correct copying is more important in C++,
|
||||||
|
where the compiler may generate new temporary objects, than it is in C.</LI>
|
||||||
|
<LI>If you change the C++ API, be sure to change:
|
||||||
|
<UL>
|
||||||
|
<LI><B>zCPPdrive</B>, the test program for the Zoltan C++ library</LI>
|
||||||
|
<LI>the C++ examples in the <B>Examples</B> directory</LI>
|
||||||
|
<LI>the method prototypes in the <A HREF="../ug_html/ug.html">Zoltan User's Guide</A>.</LI>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<HR WIDTH="100%">
|
||||||
|
<BR>[<A HREF="dev.html">Table of Contents</A> | <A HREF="dev_refs.html">Next:
|
||||||
|
References</A> | <A HREF="dev_fortran.html">Previous:
|
||||||
|
FORTRAN Interface</A> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
172
thirdParty/Zoltan/docs/dev_html/dev_degenerate.html
vendored
Normal file
172
thirdParty/Zoltan/docs/dev_html/dev_degenerate.html
vendored
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
<!-------- @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 HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||||
|
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; U; SunOS 5.6 sun4m) [Netscape]">
|
||||||
|
<META NAME="sandia.approved" CONTENT="SAND99-1376">
|
||||||
|
<META NAME="author" CONTENT="lee ann fisk, lafisk@sandia.gov">
|
||||||
|
<TITLE> Zoltan Developer's Guide: Degenerate Geometries</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
<BODY BGCOLOR="#FFFFFF">
|
||||||
|
|
||||||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a>
|
||||||
|
| <a href="dev_hsfc.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
|
||||||
|
<H2>
|
||||||
|
<A NAME="HSFC"></A>Appendix: Handling Degenerate Geometries</H2>
|
||||||
|
|
||||||
|
The geometry processed by one of the geometric methods
|
||||||
|
<a href="dev_rcb.html">RCB</a>, <a href="dev_rib.html">RIB</a>, or
|
||||||
|
<a href="dev_hsfc.html">HSFC</a>
|
||||||
|
may be degenerate. By this we mean
|
||||||
|
it may have 3-dimensional coordinates but be essentially flat, or
|
||||||
|
it may have 3 or 2-dimensional coordinates but be essentially a line
|
||||||
|
in space. If we treat the geometry as a lower dimensional object
|
||||||
|
for the purpose of partitioning, the result may be a more natural
|
||||||
|
partition (one the user would have expected) and a faster
|
||||||
|
run time.
|
||||||
|
<p>
|
||||||
|
The caller may set the <B>REDUCE_DIMENSIONS</B> parameter to TRUE
|
||||||
|
in any of the three geometric methods if they want Zoltan to check
|
||||||
|
for a degenerate condition and do lower dimensional partitioning
|
||||||
|
if such a condition if found. They may set the <B>DEGENERATE_RATIO</B>
|
||||||
|
to specify how flat or thin a geometry must be to be considered
|
||||||
|
degenerate.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<H3>
|
||||||
|
Outline of Algorithm</H3>
|
||||||
|
|
||||||
|
All three geometric methods call
|
||||||
|
<a href="dev_services_objlist.html#Zoltan_Get_Coordinates"><b>Zoltan_Get_Coordinates</b></a>
|
||||||
|
to obtain the
|
||||||
|
problem coordinates. If <B>REDUCE_DIMENSIONS</B> is TRUE, we check
|
||||||
|
in this function to see if the geometry is degenerate. If it is,
|
||||||
|
we transform the coordinates to the lower dimensional space, flag
|
||||||
|
that the problem is now lower dimensional, and return the transformed
|
||||||
|
coordinates. The
|
||||||
|
<a href="dev_rcb.html">RCB</a>, <a href="dev_rib.html">RIB</a>, or
|
||||||
|
<a href="dev_hsfc.html">HSFC</a>
|
||||||
|
calculation is performed on the new coordinates in the lower dimensional
|
||||||
|
space.
|
||||||
|
<p>
|
||||||
|
If <B>KEEP_CUTS</B> is TRUE, the transformation is saved so that in
|
||||||
|
<a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Box_Assign"><b>Zoltan_LB_Box_Assign</b></a> or <a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Point_Assign"><b>Zoltan_LB_Point_Assign</b></a>
|
||||||
|
the coordinates can be transformed before the assignment is calculated.
|
||||||
|
If <B>RCB_REUSE</B> is TRUE in the <a href="dev_rcb.html">RCB</a> method,
|
||||||
|
the transformation is also saved. On re-partitioning, we can do some
|
||||||
|
simple tests to see if the degeneracy condition has changed before
|
||||||
|
completely re-calculating the coordinate transformation.
|
||||||
|
<p>
|
||||||
|
To determine if the geometry is degenerate, we calculate
|
||||||
|
the same inertial matrix that is calculated for <a href="dev_rib.html">RIB</a>,
|
||||||
|
except that we ignore vertex weights. The 3 orthogonal eigenvectors
|
||||||
|
of the inertial matrix describe the three primary directions of the
|
||||||
|
geometry. The bounding box oriented in these directions is tested
|
||||||
|
for degeneracy. In particular (for a 3 dimensional geometry) if the
|
||||||
|
length of the longest side divided by the length of the shortest side
|
||||||
|
exceeds the DEGENERATE_RATIO, we consider the geometry to be flat. If
|
||||||
|
in addition, the length longest side divided by the length of the
|
||||||
|
middle side exceeds the
|
||||||
|
DEGENERATE_RATIO, we consider the geometry to be essentially a line.
|
||||||
|
<p>
|
||||||
|
If a 3 dimensional geometry is determined to be flat, we transform
|
||||||
|
coordinates to a coordinate system where the XY plane corresponds
|
||||||
|
to the oriented bounding box,
|
||||||
|
and project all coordinates to that plane. These
|
||||||
|
X,Y coordinates are returned to the partitioning algorithm, which
|
||||||
|
performs two dimensional partitioning. Similarly if the geometry
|
||||||
|
is very thin, we transform coordinates to a coordinate system
|
||||||
|
with the X axis going through the
|
||||||
|
bounding box in it's principal direction, and project all points to
|
||||||
|
that axis. Then one dimensional partitioning is performed.
|
||||||
|
<p>
|
||||||
|
There is a small problem in calculating
|
||||||
|
<a href="../ug_html/ug_interface_augment.html#Zoltan_LB_Box_Assign"><b>Zoltan_LB_Box_Assign</b></a>
|
||||||
|
when the partitioning was performed
|
||||||
|
on transformed geometry. The caller provides the box vertices in
|
||||||
|
problem coordinates, but the partition was calculated in
|
||||||
|
transformed coordinates. When the vertices are transformed, they
|
||||||
|
are in general no longer the vertices of an axis-aligned box in
|
||||||
|
the new coordinate system. The
|
||||||
|
<B>Box_Assign</B> calculation requires an axis-aligned box, and
|
||||||
|
so we use the bounding box of the transformed vertices. The resulting
|
||||||
|
list of processes or parts intersecting the box may therefore
|
||||||
|
contain some processes or parts which actually do not intersect
|
||||||
|
the box in problem coordinates, however it will not omit any.
|
||||||
|
|
||||||
|
|
||||||
|
<H3>Data Structure Definitions</H3>
|
||||||
|
The transformation is stored in a <B>Zoltan_Transform_Struct</B>
|
||||||
|
structure which is
|
||||||
|
defined in <i>zz/zz_const.h</i>. It is saved as part of the algorithm
|
||||||
|
specific information stored in the
|
||||||
|
<b><a href="dev_add_struct.html">LB.Data_Structure</a></b> field of the
|
||||||
|
<b><a href="dev_lb_structs.html#Zoltan_Struct">Zoltan_Struct</a></b>.
|
||||||
|
The flag that indicates whether the geometry was found to be
|
||||||
|
degenerate is the <B>Target_Dim</B> field of this structure.
|
||||||
|
<p>
|
||||||
|
To use the degenerate geometry detection capability from a new
|
||||||
|
geometric method, you would add a <B>Zoltan_Transform_Struct</b>
|
||||||
|
structure to the algorithm specific data structure, add code to
|
||||||
|
<B>Zoltan_Get_Coordinates</B> to look for it, and check the
|
||||||
|
<B>Target_Dim</B> field on return to see if the problem dimension
|
||||||
|
was reduced. You would also need to include the
|
||||||
|
coordinate transformation in your Box_Assign and Point_Assign
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
|
||||||
|
<BR>
|
||||||
|
<BR>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR WIDTH="100%">
|
||||||
|
<BR>[<A HREF="dev.html">Table of Contents</A>
|
||||||
|
| <A HREF="dev_hsfc.html"> Previous: Hibert Space Filling Curve (HSFC)</A> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
74
thirdParty/Zoltan/docs/dev_html/dev_dist.html
vendored
Normal file
74
thirdParty/Zoltan/docs/dev_html/dev_dist.html
vendored
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<!-------- @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 HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
||||||
|
<META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; U; SunOS 4.1.3_U1 sun4m) [Netscape]">
|
||||||
|
<META NAME="sandia.approved" CONTENT="SAND99-1376">
|
||||||
|
<META NAME="author" CONTENT="karen devine, kddevin@sandia.gov">
|
||||||
|
|
||||||
|
<TITLE> Zoltan Developer's Guide: Distribution</TITLE>
|
||||||
|
</HEAD>
|
||||||
|
<BODY BGCOLOR="#FFFFFF">
|
||||||
|
|
||||||
|
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_dist_cvs.html">Next</a> | <a href="dev_intro_sqe.html">Previous</a></i></b></div>
|
||||||
|
|
||||||
|
|
||||||
|
<H2>
|
||||||
|
<A NAME="distribution"></A>Zoltan Distribution</H2>
|
||||||
|
The organization of the Zoltan software distribution is described in the
|
||||||
|
following sections. Full pathnames are specific to Sandia's CSRI SON
|
||||||
|
LAN.
|
||||||
|
<BLOCKQUOTE><A HREF="dev_dist_cvs.html">CVS (source code control)</A>
|
||||||
|
<BR><A HREF="dev_dist_dir.html">Layout of Directories</A>
|
||||||
|
<BR><A HREF="dev_dist_compile.html">Compilation and Makefiles</A></BLOCKQUOTE>
|
||||||
|
|
||||||
|
<HR WIDTH="100%">
|
||||||
|
<BR>[<A HREF="dev.html">Table of Contents</A> | <A HREF="dev_dist_cvs.html">Next:
|
||||||
|
CVS</A> | <A HREF="dev_intro_sqe.html">Previous: Zoltan
|
||||||
|
Quality Assurance</A> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user