mirror of
https://github.com/PhasicFlow/phasicFlow.git
synced 2025-06-22 16:28:30 +00:00
Zoltan is added as thirdParty package
This commit is contained in:
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>
|
124
thirdParty/Zoltan/docs/dev_html/dev_dist_compile.html
vendored
Normal file
124
thirdParty/Zoltan/docs/dev_html/dev_dist_compile.html
vendored
Normal file
@ -0,0 +1,124 @@
|
||||
<!-------- @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: Compilation</title>
|
||||
|
||||
</head>
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_lb.html">Next</a> | <a href="dev_dist_dir.html">Previous</a></i></b></div>
|
||||
|
||||
|
||||
<h2>
|
||||
<a NAME="compilation"></a>Compilation and Makefiles</h2>
|
||||
The Zoltan distribution includes a main (top-level) makefile with targets
|
||||
for the Zoltan library, the test driver programs, and some graphical tools.
|
||||
When the library is
|
||||
<a href="../ug_html/ug_usage.html#Building the Library">compiled for a specific target platform</a>, <i>A</i>, Autotools and CMake obtain provide
|
||||
platform-specific configuration information.
|
||||
<p>
|
||||
Both the Autotools and CMake build systems must be maintained in Zoltan.
|
||||
Thus, new source code files and directories must be added for both systems.
|
||||
It is easiest to follow the examples of existing files in the build
|
||||
environments; good examples
|
||||
are <i>hsfc.h</i>, <i>hsfc.c</i>, <i>dr_loadbal_const.h</i> and
|
||||
<i>dr_loadbal.c</i>.
|
||||
<p>
|
||||
To add new source files or source directories:
|
||||
<ul>
|
||||
<li>
|
||||
Autotools: Add new library files or directories to
|
||||
<i>zoltan/src/Makefile.am</i>; add
|
||||
new driver files to <i>zoltan/src/driver/Makefile.am</i>.
|
||||
In the main
|
||||
zoltan directory, run the <i>bootstrap-local</i> script to rebuild the
|
||||
automated Makefiles.
|
||||
</li>
|
||||
<li>
|
||||
CMake: Add new library files to <i>zoltan/src/CMakeLists.txt</i>; add
|
||||
new driver files to <i>zoltan/src/driver/CMakeLists.txt</i>.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Alternatively, new algorithms can be added as separate libraries with which
|
||||
Zoltan may link.
|
||||
The implementation of the <a href="../ug_html/ug_alg_parmetis.html">ParMETIS</a>
|
||||
interface in Zoltan can serve as an example.
|
||||
<p>
|
||||
To add new third-party libraries:
|
||||
<ul>
|
||||
<li>
|
||||
Autotools: Add checks new library paths and include files to
|
||||
<i>zoltan/configure.ac</i>. Search for the string "parmetis" in
|
||||
<i>zoltan/configure.ac</i>, and follow
|
||||
its example for the new library.
|
||||
Also edit
|
||||
<i>zoltan/src/include/Zoltan_config.h.in</i> to include a macro for
|
||||
the new third-party library; follow the example of "HAVE_PARMETIS".
|
||||
In the main
|
||||
zoltan directory, run the <i>bootstrap-local</i> script to rebuild the
|
||||
automated configure and Makefiles.
|
||||
</li>
|
||||
<li>
|
||||
CMake:
|
||||
Follow the instructions in <i>Trilinos/cmake/HOWTO.ADD_TPL</i>
|
||||
In <i>zoltan/src/CMakeLists.txt</i>
|
||||
and <i>zoltan/cmake/Zoltan_config.h.in</i>,
|
||||
follow the example of "HAVE_PARMETIS".
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr WIDTH="100%">
|
||||
<br>[<a href="dev.html">Table of Contents</a> | <a href="dev_lb.html">Next:
|
||||
Zoltan Interface and Data Structures</a> | <a href="dev_dist_dir.html">Previous:
|
||||
Layout of Directories</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
||||
</body>
|
||||
</html>
|
95
thirdParty/Zoltan/docs/dev_html/dev_dist_cvs.html
vendored
Normal file
95
thirdParty/Zoltan/docs/dev_html/dev_dist_cvs.html
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
<!-------- @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: CVS</TITLE>
|
||||
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
|
||||
<div ALIGN=right><b><i><a href="dev.html">Zoltan Developer's Guide</a> | <a href="dev_dist_dir.html">Next</a> | <a href="dev_dist.html">Previous</a></i></b></div>
|
||||
|
||||
|
||||
<H2>
|
||||
<A NAME="CVS"></A>CVS</H2>
|
||||
The source code and documentation for the Zoltan library is maintained
|
||||
under the Concurrent Versions System (CVS) software. CVS allows multiple
|
||||
developers to edit their own copies of the software and merges updated
|
||||
versions with the developers' own versions. Zoltan's repository
|
||||
is part of the <a href="https://trilinos.sandia.gov">Trilinos</a> repository.
|
||||
|
||||
Developers must set the CVSROOT environment variable to the repository
|
||||
directory:
|
||||
<BLOCKQUOTE>setenv CVSROOT <i>username</i>@software.sandia.gov:/space/CVS
|
||||
</BLOCKQUOTE>
|
||||
where <i>username</i> is the developer's username on the CVS server
|
||||
software.sandia.gov.
|
||||
Since Zoltan is part of Trilinos, it is best to check out Trilinos from
|
||||
the repository:
|
||||
<BLOCKQUOTE>cvs checkout -P Trilinos</BLOCKQUOTE>
|
||||
Zoltan is then in directory Trilinos/packages/zoltan.
|
||||
|
||||
<p>
|
||||
Alternatively, one can get a working copy of only the Zoltan software:
|
||||
<BLOCKQUOTE>cvs checkout -P zoltan</BLOCKQUOTE>
|
||||
However, changes to the
|
||||
<a href="../ug_html/ug_usage.html#TrilinosAutotools">Autotools build
|
||||
environment</a> require directories above the Zoltan directory in
|
||||
the Trilinos repository, so it is best to check out the entire Trilinos
|
||||
repository.
|
||||
|
||||
<P>
|
||||
<HR WIDTH="100%">
|
||||
<BR>[<A HREF="dev.html">Table of Contents</A> | <A HREF="dev_dist_dir.html">Next:
|
||||
Layout of Directories</A> | <A HREF="dev_dist.html">Previous:
|
||||
Zoltan Distribution</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