← Back to team overview

dolfin team mailing list archive

[noreply@xxxxxxxxxxxxx: [Branch ~dolfin-core/dolfin/main] Rev 4496: Add strategy string for SCOTCH. Impossible to understand.]

 

// Set strategy (SCOTCH uses very crytic strings for this) +
std::string strategy =
"b{sep=m{asc=b{bnd=q{strat=f},org=q{strat=f}},low=q{strat=m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}|m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}},seq=q{strat=m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}|m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}}},seq=b{job=t,map=t,poli=S,sep=m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}|m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}}}";

That's even worse than the options for ParMETIS.

--
Anders
--- Begin Message ---
------------------------------------------------------------
revno: 4496
committer: Garth N. Wells <gnw20@xxxxxxxxx>
branch nick: dolfin-all
timestamp: Fri 2010-02-12 16:53:06 +0000
message:
  Add strategy string for SCOTCH. Impossible to understand.
modified:
  demo/pde/poisson/cpp/main.cpp
  dolfin/graph/SCOTCH.cpp


--
lp:dolfin
https://code.launchpad.net/~dolfin-core/dolfin/main

Your team DOLFIN Core Team is subscribed to branch lp:dolfin.
To unsubscribe from this branch go to https://code.launchpad.net/~dolfin-core/dolfin/main/+edit-subscription.
=== modified file 'demo/pde/poisson/cpp/main.cpp'
--- demo/pde/poisson/cpp/main.cpp	2010-02-12 13:32:09 +0000
+++ demo/pde/poisson/cpp/main.cpp	2010-02-12 16:53:06 +0000
@@ -57,8 +57,8 @@
   parameters["mesh_partitioner"] = "SCOTCH";
 
   // Create mesh and function space
-  //UnitSquare mesh(32, 32);
-  Mesh mesh("../../../../data/meshes/unstruct-trimesh-2.xml.gz");  
+  UnitSquare mesh(64, 64);
+  //Mesh mesh("../../../../data/meshes/unstruct-trimesh-2.xml.gz");  
   Poisson::FunctionSpace V(mesh);
 
   // Define boundary condition

=== modified file 'dolfin/graph/SCOTCH.cpp'
--- dolfin/graph/SCOTCH.cpp	2010-02-12 13:32:09 +0000
+++ dolfin/graph/SCOTCH.cpp	2010-02-12 16:53:06 +0000
@@ -452,6 +452,10 @@
   // Check graph 
   if (SCOTCH_dgraphCheck(&dgrafdat))
     error("Consistency error in SCOTCH graph.");
+  
+
+  SCOTCH_dgraphGhst(&dgrafdat);
+
 
   // Number of partitions (set equal to number of processes)
   SCOTCH_Num npart = MPI::num_processes();
@@ -460,6 +464,10 @@
   SCOTCH_Strat strat;
   SCOTCH_stratInit(&strat);
 
+  // Set strategy (SCOTCH uses very crytic strings for this)
+  std::string strategy = "b{sep=m{asc=b{bnd=q{strat=f},org=q{strat=f}},low=q{strat=m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}|m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}},seq=q{strat=m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}|m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}}},seq=b{job=t,map=t,poli=S,sep=m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}|m{type=h,vert=80,low=h{pass=10}f{bal=0.0005,move=80},asc=b{bnd=d{dif=1,rem=1,pass=40}f{bal=0.005,move=80},org=f{bal=0.005,move=80}}}}}";
+  SCOTCH_stratDgraphMap (&strat, strategy.c_str());
+
   // Hold partition data
   std::vector<SCOTCH_Num> partloctab(vertlocnbr);
 


--- End Message ---

Attachment: signature.asc
Description: Digital signature


Follow ups