You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
444 lines
20 KiB
444 lines
20 KiB
<!-------- @HEADER
|
|
!
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!
|
|
! Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
|
|
! Copyright 2012 Sandia Corporation
|
|
!
|
|
! Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
|
! the U.S. Government retains certain rights in this software.
|
|
!
|
|
! Redistribution and use in source and binary forms, with or without
|
|
! modification, are permitted provided that the following conditions are
|
|
! met:
|
|
!
|
|
! 1. Redistributions of source code must retain the above copyright
|
|
! notice, this list of conditions and the following disclaimer.
|
|
!
|
|
! 2. Redistributions in binary form must reproduce the above copyright
|
|
! notice, this list of conditions and the following disclaimer in the
|
|
! documentation and/or other materials provided with the distribution.
|
|
!
|
|
! 3. Neither the name of the Corporation nor the names of the
|
|
! contributors may be used to endorse or promote products derived from
|
|
! this software without specific prior written permission.
|
|
!
|
|
! THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
|
|
! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
|
|
! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
!
|
|
! Questions? Contact Karen Devine kddevin@sandia.gov
|
|
! Erik Boman egboman@sandia.gov
|
|
!
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
!
|
|
! @HEADER
|
|
------->
|
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.6 sun4m) [Netscape]">
|
|
<meta name="sandia.approval_type" content="formal">
|
|
<meta name="sandia.approved" content="SAND2007-4748W">
|
|
<meta name="author" content="Zoltan PI">
|
|
|
|
<title>Zoltan User's Guide: Library Usage</title>
|
|
|
|
</head>
|
|
<body bgcolor="#FFFFFF">
|
|
|
|
<div align=right><b><i><a href="ug.html">Zoltan User's Guide</a>
|
|
| <a href="ug_cpp.html">Next</a> | <a href="ug_intro.html">Previous</a></i></b></div>
|
|
|
|
<h2>
|
|
<a NAME="Using the Library"></a>Using the Zoltan library</h2>
|
|
This section contains information needed to use the Zoltan library with
|
|
applications:
|
|
<blockquote>
|
|
<a href="#System Requirements">System requirements</a>
|
|
<br><a href="#Building the Library">Building the Zoltan library</a>
|
|
<br><a href="#Testing the Library">Testing the Zoltan library</a>
|
|
<br><a href="#ReportingBugs">Reporting bugs</a> in Zoltan
|
|
<br><a href="#Incorporating Zoltan">Incorporating Zoltan into Applications</a>
|
|
<br><a href="#Building Applications">Building applications</a>
|
|
that use Zoltan
|
|
<br><a href="#Data Types for Object IDs">Data types</a> for global and
|
|
local IDs
|
|
<br><a href="ug_cpp.html">C++ interface</a>
|
|
<br><a href="ug_fortran.html">F90 interface</a>
|
|
</blockquote>
|
|
|
|
<hr>
|
|
<h3>
|
|
<a NAME="System Requirements"></a>System Requirements</h3>
|
|
Zoltan was designed to run on parallel computers and clusters of workstations.
|
|
The most common builds and installations of Zoltan use the following:
|
|
<ul>
|
|
<li>
|
|
ANSI C or C++ compiler.</li>
|
|
|
|
<li>
|
|
<a href="https://www-unix.mcs.anl.gov/mpi/">MPI</a> library for message
|
|
passing (version 1.1 or higher), such as MPICH, OpenMPI or LAM.</li>
|
|
|
|
<li>
|
|
A Unix-like operating system (e.g., Linux or Mac OS X) and
|
|
<i>gmake</i> (GNU Make) are recommended to build the library.</li>
|
|
|
|
<li>
|
|
A Fortran90 compatible compiler is required if you wish to
|
|
<a href="ug_fortran.html">use Zoltan
|
|
with Fortran applications</a>.</li>
|
|
</ul>
|
|
|
|
Zoltan has been tested on a variety of platforms, including Linux, Mac OS X,
|
|
a variety of clusters, and Sandia's ASC RedStorm</a> machine.
|
|
Builds for Windows platforms are available as part of the
|
|
<a href=#CMake>Trilinos CMake build system</a>.
|
|
|
|
<hr>
|
|
<h3>
|
|
<a NAME="Building the Library"></a>Building the Zoltan Library</h3>
|
|
The Zoltan library is implemented in ANSI C and can be compiled with any
|
|
ANSI C compiler.
|
|
In Zoltan, there are two build environments currently supported:
|
|
an <a href="#Autotools">Autotools build environment</a>
|
|
and a <a href=#CMake">CMake build environment</a>
|
|
used with the <a href="https://trilinos.sandia.gov">Trilinos</a>
|
|
framework.
|
|
The Autotools build environment can be used to build Zoltan in a stand-alone
|
|
installation; the CMake build environment must be used within Trilinos.
|
|
<p>
|
|
|
|
<h4><a NAME="Autotools"></a>Using Autotools to Build Zoltan</h4>
|
|
|
|
Users should not run autotools directly in the main Zoltan directory;
|
|
rather they should create a build-directory (e.g., a subdirectory of
|
|
the main Zoltan directory) in which they configure and build Zoltan.
|
|
Say, for example, a user creates a directory called BUILD_DIR in the
|
|
Zoltan directory. Then, to configure and build zoltan, the user would
|
|
<blockquote>
|
|
cd zoltan/BUILD_DIR <br>
|
|
../configure {options described below} <br>
|
|
make everything <br>
|
|
make install <br>
|
|
</blockquote>
|
|
|
|
Options to the configure command allow paths
|
|
to third-party libraries such as ParMETIS, PT-Scotch and PaToH to be specified.
|
|
Building with MPI compilers (e.g., mpicc) is the default for Autotools builds
|
|
of Zoltan; many options allow specification of particular MPI paths and
|
|
compilers.
|
|
<p>
|
|
Users desiring a <a href="ug_fortran.html">Fortran90 interface</a>
|
|
to Zoltan must
|
|
specify the "--enable-f90interface" option.
|
|
<p>
|
|
All options can be seen
|
|
with the following command issued in the zoltan/BUILD_DIR directory:
|
|
<blockquote>
|
|
../configure --help
|
|
</blockquote>
|
|
<p>
|
|
The following script is an example of configuration and build commands
|
|
using Autotools. It specifies that Zoltan should be built with both
|
|
the <a href="ug_alg_parmetis.html">ParMETIS</a> and
|
|
<a href="ug_alg_ptscotch.html">PT-Scotch</a> interfaces.
|
|
Paths to both ParMETIS and PT-Scotch are given.
|
|
The prefix option states where Zoltan should be installed;
|
|
in this example, Zoltan's include files will be installed in
|
|
/homes/username/zoltan/BUILD_DIR/include, and the libraries
|
|
will be installed in /homes/username/zoltan/BUILD_DIR/lib.
|
|
This examples assumes the script is run from
|
|
/homes/username/zoltan/BUILD_DIR.
|
|
<blockquote>
|
|
#<br>
|
|
../configure \<br>
|
|
--prefix=/homes/username/zoltan/BUILD_DIR \<br>
|
|
--with-gnumake \<br>
|
|
--with-scotch \<br>
|
|
--with-scotch-incdir="/Net/local/proj/zoltan/arch/all/src/Scotch5" \<br>
|
|
--with-scotch-libdir="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/Scotch5" \<br>
|
|
--with-parmetis \<br>
|
|
--with-parmetis-incdir="/Net/local/proj/zoltan/arch/all/src/ParMETIS3" \<br>
|
|
--with-parmetis-libdir="/Net/local/proj/zoltan/arch/linux64/lib/openmpi/ParMETIS3" <br>
|
|
make everything <br>
|
|
make install
|
|
</blockquote>
|
|
<p>
|
|
The configure script also allows you to specify the data type for a
|
|
global identifier. The choices are
|
|
unsigned int, unsigned long, and unsigned long long.
|
|
The default data type is unsigned int. If your
|
|
space of global identifiers requires more than 32 bits, you can specify a 64-bit data type.
|
|
<p>
|
|
<blockquote>
|
|
--with-id-type=uint<br>
|
|
--with-id-type=ulong<br>
|
|
--with-id-type=ullong<br>
|
|
</blockquote>
|
|
<p>
|
|
Support of 64-bit identifiers is new as of Zoltan version 3.5.
|
|
At this point in time all methods except for
|
|
<a href="ug_alg_reftree.html">refinement tree partitioning</a>
|
|
have been modified to work with 64-bit identifiers. Zoltan's
|
|
Fortran90 interface does not yet support 64-bit identifiers.
|
|
<p>
|
|
More examples are in the directory zoltan/SampleConfigurationScripts.
|
|
<p>
|
|
After the configuration is done in
|
|
the build directory, object files and executables can be removed with
|
|
<i>make clean</i>; the same configuration will be used for subsequent builds.
|
|
Configuration information is removed with <i>make distclean</i>.
|
|
<p>
|
|
<h4><a NAME="CMake"></a>Using CMake to Build Zoltan</h4>
|
|
Zoltan can be built as part of the Trilinos framework using the
|
|
CMake build system. CMake builds will succeed only when Zoltan is
|
|
in the Trilinos directory structure (as when downloaded with Trilinos).
|
|
Users should not run CMake directly in the main Zoltan directory;
|
|
rather they should create a build-directory (e.g., a subdirectory of
|
|
the main Trilinos directory) in which they configure and build Zoltan.
|
|
Say, for example, a user creates a directory called BUILD_DIR in the
|
|
Trilinos directory. Then, to configure and build zoltan, the user would
|
|
<blockquote>
|
|
cd Trilinos/BUILD_DIR <br>
|
|
cmake \ <br>
|
|
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ <br>
|
|
-D Trilinos_ENABLE_Zoltan:BOOL=ON \ <br>
|
|
{options described below} \ <br>
|
|
.. <br>
|
|
make <br>
|
|
make install <br>
|
|
</blockquote>
|
|
<p>
|
|
CMake also allows you to specify the data type for a
|
|
global identifier. The choices are
|
|
unsigned int, unsigned long, and unsigned long long.
|
|
The default data type for a global identifier is unsigned int. The options to set the global identifier
|
|
data type are shown below.
|
|
<p>
|
|
<blockquote>
|
|
-D Zoltan_ENABLE_UINT_IDS:Bool=ON<br>
|
|
-D Zoltan_ENABLE_ULONG_IDS:Bool=ON<br>
|
|
-D Zoltan_ENABLE_ULLONG_IDS:Bool=ON<br>
|
|
</blockquote>
|
|
<p>
|
|
Support of 64-bit identifiers is new as of Zoltan version 3.5.
|
|
At this point in time all methods except for
|
|
<a href="ug_alg_reftree.html">refinement tree partitioning</a>
|
|
have been modified to work with 64-bit identifiers. Zoltan's Fortran90
|
|
interface does not yet support 64-bit identifiers.
|
|
<p>
|
|
<b>Serial</b> builds are the default in Trilinos; for serial builds, Zoltan
|
|
builds and links with the siMPI library provided by Pat Miller in the Zoltan
|
|
distribution. More commonly, Zoltan users desire <b>parallel</b> builds with
|
|
MPI libraries such as OpenMPI or MPICH. For such builds, users must specify
|
|
CMake option
|
|
<blockquote>
|
|
-D TPL_ENABLE_MPI:BOOL=ON
|
|
</blockquote>
|
|
Trilinos also defaults to using a Fortran compiler, but Fortran is not
|
|
required to build Zoltan; the option to disable this check is<br>
|
|
-D Trilinos_ENABLE_Fortran:BOOL=OFF
|
|
<p>
|
|
|
|
Other options to the cmake command allow paths
|
|
to third-party libraries such as ParMETIS, PT-Scotch and PaToH to be specified.
|
|
<p>
|
|
Users desiring a <a href="ug_fortran.html">Fortran90 interface</a>
|
|
to Zoltan must
|
|
specify the option<br>
|
|
-D Zoltan_ENABLE_F90INTERFACE:BOOL=ON<br>
|
|
<p>
|
|
All options can be seen
|
|
with the following command issued in the Trilinos/BUILD_DIR directory:
|
|
<blockquote>
|
|
rm CMakeCache.txt<br>
|
|
cmake -LAH -D Trilinos_ENABLE_Zoltan:BOOL=ON ..
|
|
</blockquote>
|
|
<p>
|
|
The following script is an example of configuration and build commands
|
|
using CMake. It specifies that Zoltan should be built with both
|
|
the <a href="ug_alg_parmetis.html">ParMETIS</a> and
|
|
<a href="ug_alg_ptscotch.html">PT-Scotch</a> interfaces.
|
|
Paths to both ParMETIS and PT-Scotch are given.
|
|
The prefix option states where Zoltan should be installed;
|
|
in this example, Zoltan's include files will be installed in
|
|
/homes/username/Trilinos/BUILD_DIR/include, and the libraries
|
|
will be installed in /homes/username/Trilinos/BUILD_DIR/lib.
|
|
This examples assumes the script is run from
|
|
/homes/username/Trilinos/BUILD_DIR.
|
|
<blockquote>
|
|
#<br>
|
|
cmake \ <br>
|
|
-D CMAKE_INSTALL_PREFIX:FILEPATH="/home/username/Trilinos/BUILD_DIR" \ <br>
|
|
-D TPL_ENABLE_MPI:BOOL=ON \ <br>
|
|
-D CMAKE_C_FLAGS:STRING="-m64 -g" \ <br>
|
|
-D CMAKE_CXX_FLAGS:STRING="-m64 -g" \ <br>
|
|
-D CMAKE_Fortran_FLAGS:STRING="-m64 -g" \ <br>
|
|
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \ <br>
|
|
-D Trilinos_ENABLE_Zoltan:BOOL=ON \ <br>
|
|
-D Zoltan_ENABLE_EXAMPLES:BOOL=ON \ <br>
|
|
-D Zoltan_ENABLE_TESTS:BOOL=ON \ <br>
|
|
-D Zoltan_ENABLE_ParMETIS:BOOL=ON \ <br>
|
|
-D ParMETIS_INCLUDE_DIRS:FILEPATH="/home/username/code/ParMETIS3_1" \ <br>
|
|
-D ParMETIS_LIBRARY_DIRS:FILEPATH="/home/username/code/ParMETIS3_1" \ <br>
|
|
-D Zoltan_ENABLE_Scotch:BOOL=ON \ <br>
|
|
-D Scotch_INCLUDE_DIRS:FILEPATH="/home/username/code/scotch_5.1/include" \ <br>
|
|
-D Scotch_LIBRARY_DIRS:FILEPATH="/home/username/code/scotch_5.1/lib" \ <br>
|
|
.. <br>
|
|
make <br>
|
|
make install
|
|
</blockquote>
|
|
<p>
|
|
More examples are in the directory zoltan/SampleCmakeScripts.
|
|
More details of CMake use in Trilinos are
|
|
in <br>
|
|
Trilinos/cmake/TrilinosCMakeQuickstart.txt.
|
|
<hr>
|
|
<h3>
|
|
<a NAME="Testing the Library"></a>Testing the Zoltan Library</h3>
|
|
The <I>examples</I> directory contains simple C and C++ examples which use
|
|
the Zoltan library. The makefile in this directory has three targets:
|
|
These examples are built automatically when the
|
|
<a href="#Autotools">Autotools build environment</a> or
|
|
<a href="#CMake">CMake build environment</a> is used.
|
|
<p>
|
|
The "right" answer for these tests depends on the number of processes with
|
|
which you run the tests. In general, if they compile successfully,
|
|
run quickly (in seconds), and produce reasonable looking output, then
|
|
Zoltan is built successfully.
|
|
<hr>
|
|
<h3>
|
|
<a NAME="ReportingBugs"></a>Reporting Bugs in Zoltan</h3>
|
|
Zoltan uses <a href="https://www.bugzilla.org">Bugzilla</a> to collect
|
|
bug reports. Please read the <a href="../Zoltan_bugreport.html">instructions for reporting bugs</a> through the Zoltan Bugzilla database.
|
|
<p>
|
|
|
|
<hr>
|
|
<h3>
|
|
<a NAME="Incorporating Zoltan"></a>Incorporating Zoltan into Applications</h3>
|
|
Incorporating Zoltan into applications requires three basic steps:
|
|
<ul>
|
|
<li>
|
|
Writing <a href="ug_query.html">query functions</a>
|
|
that return information about the application to Zoltan.
|
|
<li>
|
|
<a href="ug_interface_init.html">Initializing</a> Zoltan, <a href="ug_interface_init.html#Zoltan_Create">creating a
|
|
Zoltan object</a>, and
|
|
<a href="ug_interface_init.html#Zoltan_Set_Param">setting
|
|
appropriate parameters</a>.
|
|
<li>
|
|
Calling Zoltan tools to perform <a href="ug_interface_lb.html">partitioning</a>, <a href="ug_interface_order.html">ordering</a>, <a href="ug_interface_mig.html">migration</a>, <a href="ug_interface_color.html">coloring</a>, etc.
|
|
</ul>
|
|
The set of <a href="ug_query.html">query functions</a>
|
|
needed by an application depends on the
|
|
particular tools (e.g., <a href="ug_interface_lb.html">partitioning</a>,
|
|
<a href="ug_interface_order.html">ordering</a>) used and on
|
|
the <a href="ug_alg.html">algorithms</a>
|
|
selected within the tools. Not all query functions are needed by
|
|
every application. See documentation on tools and algorithms to determine
|
|
which query functions are needed.
|
|
<hr>
|
|
<h3>
|
|
<a NAME="Building Applications"></a>Building Applications that use Zoltan</h3>
|
|
The C library interface is described in the include file <i>include/zoltan.h</i>;
|
|
this file should be included in all C application source files that call
|
|
Zoltan library routines.
|
|
<p>
|
|
The <a href="ug_cpp.html">C++ interface</a> to
|
|
Zoltan is implemented in header files which define classes that
|
|
wrap the Zoltan C library. The file <I>include/zoltan_cpp.h</I> defines the
|
|
<B>Zoltan</B> class which encapsulates a load balancing data structure and the
|
|
Zoltan load balancing functions which operate upon it. Include this header file
|
|
instead in your C++ application. Note that C++ applications should call the
|
|
C function <B><a href="ug_interface_init.html#Zoltan_Initialize">Zoltan_Initialize</a></B> before creating a <B>Zoltan</B> object.
|
|
<p>
|
|
<a href="ug_fortran_apps.html">Fortran applications</a> must USE
|
|
<a href="ug_fortran_api.html#fortran ug api zoltan module">module zoltan</a> and
|
|
specify the Zoltan installation's <i>include</i> directory
|
|
as a directory to be searched for module information files.
|
|
<p>
|
|
The C, C++ or Fortran application should then be linked with the Zoltan library
|
|
(built with Fortran support in the Fortran case) by including
|
|
<blockquote><i>-lzoltan </i></blockquote>
|
|
in the linking command for the application.
|
|
Communication within
|
|
Zoltan is performed through MPI, so appropriate MPI libraries must be linked
|
|
with the application. Third-party libraries, such as <a href="ug_alg_parmetis.html">ParMETIS</a>, <a href="ug_alg_ptscotch.html">PT-Scotch</a>
|
|
and <a href="ug_alg_patoh.html">PaToH</a>, must be also be
|
|
linked with the application if they were included in compilation of the
|
|
Zoltan library.
|
|
<p>
|
|
The installed files <i>include/Makefile.export.zoltan*</i> contain macros that
|
|
can specify Zoltan paths and libraries in an application's Makefiles.
|
|
Using these files, applications can be assured they are using the same
|
|
build options that were used when Zoltan was built.
|
|
<hr>
|
|
<h3>
|
|
<a NAME="Data Types for Object IDs"></a>Data Types for Object IDs</h3>
|
|
Application query functions and application callable library functions
|
|
use global and local identifiers (IDs) for objects. <i>All objects to be
|
|
used in load balancing must have unique global IDs.</i> Zoltan stores an
|
|
ID as an array of ZOLTAN_ID_TYPE. The default for ZOLTAN_ID_TYPE is unsigned
|
|
int, but configuration parameters can select unsigned long or unsigned long long
|
|
as the type; see above for the appropriate configuration flags for
|
|
<a href="#Autotools">Autotools</a> and <a href="#CMake">CMake</a>.
|
|
The number of entries in these arrays
|
|
can be set using the <a href="ug_param.html#NUM_GID_ENTRIES">NUM_GID_ENTRIES</a>
|
|
and <a href="ug_param.html#NUM_LID_ENTRIES">NUM_LID_ENTRIES</a> parameters;
|
|
by default, one ZOLTAN_ID_TYPE represents an ID. Applications may use
|
|
whatever format is most convenient to store their IDs; the IDs can then
|
|
be converted to and from Zoltan's ID format in the <a href="ug_query.html">application-registered
|
|
query functions</a>.
|
|
<p>
|
|
Definitions of ZOLTAN_ID_TYPE and ZOLTAN_ID_MPI_TYPE
|
|
are in <i>include/zoltan_types.h</i>; they can
|
|
be used by an application for memory allocation, MPI communication, and
|
|
as arguments to
|
|
<a href="ug_interface.html">load-balancing interface functions</a>
|
|
and
|
|
<a href="ug_query.html">application-registered query functions</a>.
|
|
In the Fortran interface, IDs are passed as arrays of integers since unsigned
|
|
integers are not supported in Fortran. See the description of the <a href="ug_fortran_api.html#fortran ug api IDs">Fortran
|
|
interface</a> for more details.
|
|
<p>The local IDs passed to Zoltan are not used by the library; they are
|
|
provided for the convenience of the application and can contain any information
|
|
desired by the application. For instance, local array indices for objects
|
|
may be passed as local IDs, enabling direct access to object data in the
|
|
query function routines. See the <a href="ug_query.html">application-registered
|
|
query functions</a> for more details. The source code distribution contains
|
|
an example application <i><a href="../dev_html/dev_driver.html">zdrive</a></i>
|
|
in which global IDs are integers and local IDs are local array indices.
|
|
One may choose not to use local ids at all, in which case <a href="ug_param.html#NUM_LID_ENTRIES">NUM_LID_ENTRIES</a>
|
|
may be set to zero.
|
|
<p>Some Zoltan routines (e.g.,
|
|
<a href="ug_interface_lb.html#Zoltan_LB_Partition"><b>Zoltan_LB_Partition</b></a>
|
|
and
|
|
<a href="ug_interface_mig.html#Zoltan_Invert_Lists"><b>Zoltan_Invert_Lists</b></a>)
|
|
allocate arrays of type <b>ZOLTAN_ID_PTR</b> and return them to the application.
|
|
Others (e.g., <b><a href="ug_interface_order.html#Zoltan_Order">Zoltan_Order</a></b> and
|
|
<a href="ug_util_dd.html#DD_Find"><b>Zoltan_DD_Find</b></a>) require
|
|
the application to allocate memory for IDs. Memory for IDs can be allocated
|
|
as follows:
|
|
<blockquote><tt>
|
|
ZOLTAN_ID_PTR gids;<br>
|
|
int num_gids, int num_gid_entries;<br>
|
|
gids = (ZOLTAN_ID_PTR) <a href="ug_util_mem.html#Zoltan_Malloc">ZOLTAN_MALLOC</a>(num_gids * num_gid_entries * sizeof(ZOLTAN_ID_TYPE);<br>
|
|
</tt></blockquote>
|
|
The system call <i>malloc</i> may be used instead of
|
|
<a href="ug_util_mem.html#Zoltan_Malloc"><b>ZOLTAN_MALLOC</b></a>.
|
|
<hr WIDTH="100%">[<a href="ug.html">Table of Contents</a> | <a href="ug_cpp.html">Next:
|
|
C++ Interface</a> | <a href="ug_intro.html">Previous:
|
|
Introduction</a> | <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
|
|
</body>
|
|
</html>
|
|
|