1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
|
\par
\section{Driver programs for the {\tt GPart} object}
\label{section:GPart:drivers}
\par
This section contains brief descriptions of four driver programs.
\par
%=======================================================================
\begin{enumerate}
%-----------------------------------------------------------------------
\item
\begin{verbatim}
testDDviaFishnet msglvl msgFile inGraphFile freeze minweight maxweight
seed outIVfile
\end{verbatim}
This driver program constructs a domain decomposition via the {\it
fishnet} algorithm \cite{ash97-DDSEP}.
It reads in a {\tt Graph} object from a file, finds the domain
decomposition using the four input parameters, then optionally
writes out the map from vertices to components to a file.
\par
\begin{itemize}
\item
The {\tt msglvl} parameter determines the amount of output.
\item
The {\tt msgFile} parameter determines the output file --- if {\tt
msgFile} is {\tt stdout}, then the output file is {\it stdout},
otherwise a file is opened with {\it append} status to receive any
output data.
\item
The {\tt inGraphFile} parameter is the input file for the {\tt Graph}
object. It must be of the form {\tt *.graphf} or {\tt *.graphb}.
The {\tt Graph} object is read from the file via the
{\tt Graph\_readFromFile()} method.
\item
The {\tt freeze} parameter is used to place nodes of high degree
into the multisector.
If the external degree of a vertex is {\tt freeze} times the
average degree, then it is placed in the multisector.
\item
The {\it target} minimum weight for a domain is {\tt minweight}.
\item
The {\it target} maximum weight for a domain is {\tt maxweight}.
\item
The {\tt seed} parameter is a random number seed.
\item
The {\tt outIVfile} parameter is the output file for the {\tt IV}
object that contains the map from vertices to components.
If {\tt outIVfile} is {\tt "none"}, then there is no output,
otherwise {\tt outIVfile}
must be of the form {\tt *.ivf} or {\tt *.ivb}.
\end{itemize}
%-----------------------------------------------------------------------
\item
\begin{verbatim}
testTwoSetViaBKL msglvl msgFile inGraphFile inIVfile
seed alpha outIVfile
\end{verbatim}
This driver program constructs a two-set partition via the
Block Kernighan-Lin algorithm \cite{ash97-DDSEP}.
It reads in a {\tt Graph} object and an {\tt IV} object that holds
the map from vertices to components (e.g., the output from the
driver program {\tt testDDviaFishet}) from two files,
constructs the domain-segment graph and finds an initial
separator, then optionally
writes out the new map from vertices to components to a file.
\par
\begin{itemize}
\item
The {\tt msglvl} parameter determines the amount of output.
\item
The {\tt msgFile} parameter determines the output file --- if {\tt
msgFile} is {\tt stdout}, then the output file is {\it stdout},
otherwise a file is opened with {\it append} status to receive any
output data.
\item
The {\tt inGraphFile} parameter is the input file for the {\tt Graph}
object. It must be of the form {\tt *.graphf} or {\tt *.graphb}.
The {\tt Graph} object is read from the file via the
{\tt Graph\_readFromFile()} method.
\item
The {\tt inIVfile} parameter is the input file for the {\tt IV}
object that contains the map from vertices to domains and multisector.
It {\tt inIVfile} must be of the form {\tt *.ivf} or {\tt *.ivb}.
\item
The {\tt seed} parameter is a random number seed.
\item
The {\tt alpha} parameter controls the partition evaluation function.
\item
The {\tt outIVfile} parameter is the output file for the {\tt IV}
object that contains the map from vertices to separator and the
two components.
If {\tt outIVfile} is {\tt "none"}, then there is no output,
otherwise {\tt outIVfile}
must be of the form {\tt *.ivf} or {\tt *.ivb}.
\end{itemize}
%-----------------------------------------------------------------------
\item
\begin{verbatim}
testSmoothBisector msglvl msgFile inGraphFile inIVfile
option alpha outIVfile
\end{verbatim}
This driver program smooths a bisector of a graph by solving a
sequence of max-flow network problems.
It reads in a {\tt Graph} object and an {\tt IV} object that holds
the map from vertices to components (e.g., the output from the
driver program {\tt testTwoSetViaBKL}) from two files,
smooths the separator and
then optionally writes out the new component ids map to a file.
\par
\begin{itemize}
\item
The {\tt msglvl} parameter determines the amount of output.
\item
The {\tt msgFile} parameter determines the output file --- if {\tt
msgFile} is {\tt stdout}, then the output file is {\it stdout},
otherwise a file is opened with {\it append} status to receive any
output data.
\item
The {\tt inGraphFile} parameter is the input file for the {\tt Graph}
object. It must be of the form {\tt *.graphf} or {\tt *.graphb}.
The {\tt Graph} object is read from the file via the
{\tt Graph\_readFromFile()} method.
\item
The {\tt inIVfile} parameter is the input file for the {\tt IV}
object that contains the map from vertices to domains and multisector.
It {\tt inIVfile} must be of the form {\tt *.ivf} or {\tt *.ivb}.
\item
The {\tt option} parameter specifies the type of network
optimization problem that will be solved.
\begin{itemize}
\item
{\tt option = 1} --- each network has two layers and is bipartite.
\item
{\tt option = 2}
--- each network has two layers but need not be bipartite.
\item
{\tt option = 2} --- each network has {\tt option/2} layers
on each side of the separator.
\end{itemize}
\item
The {\tt alpha} parameter controls the partition evaluation function.
\item
The {\tt outIVfile} parameter is the output file for the {\tt IV}
object that contains the map from vertices to separator and the
two components.
If {\tt outIVfile} is {\tt "none"}, then there is no output,
otherwise {\tt outIVfile}
must be of the form {\tt *.ivf} or {\tt *.ivb}.
\end{itemize}
%-----------------------------------------------------------------------
\item
\begin{verbatim}
testRBviaDDsep msglvl msgFile inGraphFile seed minweight maxweight
freeze alpha maxdomweight DDoption nlayer
testRBviaDDsep2 msglvl msgFile inGraphFile nruns seed minweight maxweight
freeze alpha maxdomweight DDoption nlayer
\end{verbatim}
These driver programs construct a multisector via recursive
bisection and orders the graph using nested dissection and
multisection using the multisector.
{\tt testRBviaDDsep} executes only one run while
{\tt testRBviaDDsep2} executes {\tt nruns} runs with random
permutations of the graph.
\par
\begin{itemize}
\item
The {\tt msglvl} parameter determines the amount of output.
\item
The {\tt msgFile} parameter determines the output file --- if {\tt
msgFile} is {\tt stdout}, then the output file is {\it stdout},
otherwise a file is opened with {\it append} status to receive any
output data.
\item
The {\tt inGraphFile} parameter is the input file for the {\tt Graph}
object. It must be of the form {\tt *.graphf} or {\tt *.graphb}.
The {\tt Graph} object is read from the file via the
{\tt Graph\_readFromFile()} method.
\item
The {\tt nruns} parameter is the number of runs made with the
graph randomly permuted.
\item
The {\tt seed} parameter is a random number seed.
\item
The {\it target} minimum weight for a domain is {\tt minweight}.
\item
The {\it target} maximum weight for a domain is {\tt maxweight}.
\item
The {\tt freeze} parameter is used to place nodes of high degree
into the multisector.
If the external degree of a vertex is {\tt freeze} times the
average degree, then it is placed in the multisector.
\item
The {\tt alpha} parameter controls the partition evaluation function.
\item
The {\tt maxdomweight} parameter controls the recursive bisection
--- no subgraph with weight less than {\tt maxdomweight} is
further split.
\item
The {\tt DDoption} parameter controls the initial domain/segment
partition on each subgraph.
When {\tt DDDoption = 1} we use the fishnet algorithm for each
subgraph.
When {\tt DDDoption = 1} we use the fishnet algorithm once for the
entire graph and this is then projected down onto each subgraph.
\item
The {\tt nlayer} parameter governs the smoothing process by specifying
the type of network optimization problem that will be solved.
\begin{itemize}
\item
{\tt nlayer = 1} --- each network has two layers and is bipartite.
\item
{\tt nlayer = 2}
--- each network has two layers but need not be bipartite.
\item
{\tt nlayer > 2} --- each network has {\tt option/2} layers
on each side of the separator.
\end{itemize}
\end{itemize}
%-----------------------------------------------------------------------
\item
\begin{verbatim}
mkDSTree msglvl msgFile inGraphFile seed minweight maxweight
freeze alpha maxdomweight DDoption nlayer outDSTreeFile
\end{verbatim}
This driver program constructs a domain/separator tree using
recursive bisection.
The {\tt DSTree} object is optionally written to a file.
\par
\begin{itemize}
\item
The {\tt msglvl} parameter determines the amount of output.
\item
The {\tt msgFile} parameter determines the output file --- if {\tt
msgFile} is {\tt stdout}, then the output file is {\it stdout},
otherwise a file is opened with {\it append} status to receive any
output data.
\item
The {\tt inGraphFile} parameter is the input file for the {\tt Graph}
object. It must be of the form {\tt *.graphf} or {\tt *.graphb}.
The {\tt Graph} object is read from the file via the
{\tt Graph\_readFromFile()} method.
\item
The {\tt seed} parameter is a random number seed.
\item
The {\it target} minimum weight for a domain is {\tt minweight}.
\item
The {\it target} maximum weight for a domain is {\tt maxweight}.
\item
The {\tt freeze} parameter is used to place nodes of high degree
into the multisector.
If the external degree of a vertex is {\tt freeze} times the
average degree, then it is placed in the multisector.
\item
The {\tt alpha} parameter controls the partition evaluation function.
\item
The {\tt maxdomweight} parameter controls the recursive bisection
--- no subgraph with weight less than {\tt maxdomweight} is
further split.
\item
The {\tt DDoption} parameter controls the initial domain/segment
partition on each subgraph.
When {\tt DDDoption = 1} we use the fishnet algorithm for each
subgraph.
When {\tt DDDoption = 1} we use the fishnet algorithm once for the
entire graph and this is then projected down onto each subgraph.
\item
The {\tt nlayer} parameter governs the smoothing process by specifying
the type of network optimization problem that will be solved.
\begin{itemize}
\item
{\tt nlayer = 1} --- each network has two layers and is bipartite.
\item
{\tt nlayer = 2}
--- each network has two layers but need not be bipartite.
\item
{\tt nlayer > 2} --- each network has {\tt option/2} layers
on each side of the separator.
\end{itemize}
\item
The {\tt outDSTreeFile} parameter is the output file
for the {\tt DSTree} object.
It must be of the form {\tt *.dstreef} or {\tt *.dstreeb}.
If {\tt outDSTreeFile} is not {\tt "none"},
the {\tt DSTree} object is written to the file via the
{\tt DSTree\_writeToFile()} method.
\end{itemize}
%-----------------------------------------------------------------------
\end{enumerate}
|