summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/adrivers.c
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/adrivers.c')
-rw-r--r--benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/adrivers.c117
1 files changed, 0 insertions, 117 deletions
diff --git a/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/adrivers.c b/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/adrivers.c
deleted file mode 100644
index e9c5fe0..0000000
--- a/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/adrivers.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 1997, Regents of the University of Minnesota
- *
- * adrivers.c
- *
- * This file contains the driving routines for the various parallel
- * multilevel partitioning and repartitioning algorithms
- *
- * Started 11/19/96
- * George
- *
- * $Id: adrivers.c,v 1.5 2003/07/30 18:37:58 karypis Exp $
- *
- */
-
-#include <parmetislib.h>
-
-
-
-/*************************************************************************
-* This function is the driver for the adaptive refinement mode of ParMETIS
-**************************************************************************/
-void Adaptive_Partition(CtrlType *ctrl, GraphType *graph, WorkSpaceType *wspace)
-{
- int i;
- int tewgt, tvsize;
- float gtewgt, gtvsize;
- float ubavg, lbavg, lbvec[MAXNCON];
-
- /************************************/
- /* Set up important data structures */
- /************************************/
- SetUp(ctrl, graph, wspace);
-
- ubavg = savg(graph->ncon, ctrl->ubvec);
- tewgt = idxsum(graph->nedges, graph->adjwgt);
- tvsize = idxsum(graph->nvtxs, graph->vsize);
- gtewgt = (float) GlobalSESum(ctrl, tewgt) + 1.0; /* The +1 were added to remove any FPE */
- gtvsize = (float) GlobalSESum(ctrl, tvsize) + 1.0;
- ctrl->redist_factor = ctrl->redist_base * ((gtewgt/gtvsize)/ ctrl->edge_size_ratio);
-
- IFSET(ctrl->dbglvl, DBG_PROGRESS, rprintf(ctrl, "[%6d %8d %5d %5d][%d]\n",
- graph->gnvtxs, GlobalSESum(ctrl, graph->nedges), GlobalSEMin(ctrl, graph->nvtxs), GlobalSEMax(ctrl, graph->nvtxs), ctrl->CoarsenTo));
-
- if (graph->gnvtxs < 1.3*ctrl->CoarsenTo ||
- (graph->finer != NULL && graph->gnvtxs > graph->finer->gnvtxs*COARSEN_FRACTION)) {
-
- /***********************************************/
- /* Balance the partition on the coarsest graph */
- /***********************************************/
- graph->where = idxsmalloc(graph->nvtxs+graph->nrecv, -1, "graph->where");
- idxcopy(graph->nvtxs, graph->home, graph->where);
-
- Moc_ComputeParallelBalance(ctrl, graph, graph->where, lbvec);
- lbavg = savg(graph->ncon, lbvec);
-
- if (lbavg > ubavg + 0.035 && ctrl->partType != REFINE_PARTITION)
- Balance_Partition(ctrl, graph, wspace);
-
- if (ctrl->dbglvl&DBG_PROGRESS) {
- Moc_ComputeParallelBalance(ctrl, graph, graph->where, lbvec);
- rprintf(ctrl, "nvtxs: %10d, balance: ", graph->gnvtxs);
- for (i=0; i<graph->ncon; i++)
- rprintf(ctrl, "%.3f ", lbvec[i]);
- rprintf(ctrl, "\n");
- }
-
- /* check if no coarsening took place */
- if (graph->finer == NULL) {
- Moc_ComputePartitionParams(ctrl, graph, wspace);
- Moc_KWayBalance(ctrl, graph, wspace, graph->ncon);
- Moc_KWayAdaptiveRefine(ctrl, graph, wspace, NGR_PASSES);
- }
- }
- else {
- /*******************************/
- /* Coarsen it and partition it */
- /*******************************/
- switch (ctrl->ps_relation) {
- case COUPLED:
- Mc_LocalMatch_HEM(ctrl, graph, wspace);
- break;
- case DISCOUPLED:
- default:
- Moc_GlobalMatch_Balance(ctrl, graph, wspace);
- break;
- }
-
- Adaptive_Partition(ctrl, graph->coarser, wspace);
-
- /********************************/
- /* project partition and refine */
- /********************************/
- Moc_ProjectPartition(ctrl, graph, wspace);
- Moc_ComputePartitionParams(ctrl, graph, wspace);
-
- if (graph->ncon > 1 && graph->level < 4) {
- Moc_ComputeParallelBalance(ctrl, graph, graph->where, lbvec);
- lbavg = savg(graph->ncon, lbvec);
-
- if (lbavg > ubavg + 0.025) {
- Moc_KWayBalance(ctrl, graph, wspace, graph->ncon);
- }
- }
-
- Moc_KWayAdaptiveRefine(ctrl, graph, wspace, NGR_PASSES);
-
- if (ctrl->dbglvl&DBG_PROGRESS) {
- Moc_ComputeParallelBalance(ctrl, graph, graph->where, lbvec);
- rprintf(ctrl, "nvtxs: %10d, cut: %8d, balance: ", graph->gnvtxs, graph->mincut);
- for (i=0; i<graph->ncon; i++)
- rprintf(ctrl, "%.3f ", lbvec[i]);
- rprintf(ctrl, "\n");
- }
- }
-}
-