[cig-commits] r19818 - short/3D/PyLith/benchmarks/trunk/static/performance/solvertest

brad at geodynamics.org brad at geodynamics.org
Mon Mar 19 14:30:19 PDT 2012


Author: brad
Date: 2012-03-19 14:30:19 -0700 (Mon, 19 Mar 2012)
New Revision: 19818

Added:
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_add.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_mult.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_pctests.sh
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_diag.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_full.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_lower.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_upper.cfg
Removed:
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur.cfg
Modified:
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/calc_error.py
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_convtest.sh
Log:
Created shell script for PC tests. Added additional files for more field split and schur complement tests.

Modified: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/calc_error.py
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/calc_error.py	2012-03-19 19:52:54 UTC (rev 19817)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/calc_error.py	2012-03-19 21:30:19 UTC (rev 19818)
@@ -3,7 +3,7 @@
 # Calculate error in solution field and fault tractions.
 
 test = "revised_tol8"
-base = "stable_smalltol"
+base = "revised_smalltol"
 
 import tables
 import numpy

Deleted: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit.cfg	2012-03-19 19:52:54 UTC (rev 19817)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -1,17 +0,0 @@
-[pylithapp.timedependent.formulation]
-split_fields = True
-matrix_type = aij
-
-[pylithapp.petsc]
-ksp_gmres_restart = 500
-fs_pc_type = fieldsplit
-fs_pc_fieldsplit_real_diagonal = 
-fs_pc_fieldsplit_type = multiplicative
-fs_fieldsplit_0_pc_type = ml
-fs_fieldsplit_1_pc_type = ml
-fs_fieldsplit_2_pc_type = ml
-fs_fieldsplit_3_pc_type = ml
-fs_fieldsplit_0_ksp_type = preonly
-fs_fieldsplit_1_ksp_type = preonly
-fs_fieldsplit_2_ksp_type = preonly
-fs_fieldsplit_3_ksp_type = preonly

Copied: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_add.cfg (from rev 18984, short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit.cfg)
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_add.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_add.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -0,0 +1,17 @@
+[pylithapp.timedependent.formulation]
+split_fields = True
+matrix_type = aij
+
+[pylithapp.petsc]
+ksp_gmres_restart = 500
+fs_pc_type = fieldsplit
+fs_pc_fieldsplit_real_diagonal = 
+fs_pc_fieldsplit_type = additive
+fs_fieldsplit_0_pc_type = ml
+fs_fieldsplit_1_pc_type = ml
+fs_fieldsplit_2_pc_type = ml
+fs_fieldsplit_3_pc_type = jacobi
+fs_fieldsplit_0_ksp_type = preonly
+fs_fieldsplit_1_ksp_type = preonly
+fs_fieldsplit_2_ksp_type = preonly
+fs_fieldsplit_3_ksp_type = preonly

Copied: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_mult.cfg (from rev 18984, short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit.cfg)
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_mult.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/fieldsplit_mult.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -0,0 +1,17 @@
+[pylithapp.timedependent.formulation]
+split_fields = True
+matrix_type = aij
+
+[pylithapp.petsc]
+ksp_gmres_restart = 500
+fs_pc_type = fieldsplit
+fs_pc_fieldsplit_real_diagonal = True
+fs_pc_fieldsplit_type = multiplicative
+fs_fieldsplit_0_pc_type = ml
+fs_fieldsplit_1_pc_type = ml
+fs_fieldsplit_2_pc_type = ml
+fs_fieldsplit_3_pc_type = jacobi
+fs_fieldsplit_0_ksp_type = preonly
+fs_fieldsplit_1_ksp_type = preonly
+fs_fieldsplit_2_ksp_type = preonly
+fs_fieldsplit_3_ksp_type = preonly

Modified: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_convtest.sh
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_convtest.sh	2012-03-19 19:52:54 UTC (rev 19817)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_convtest.sh	2012-03-19 21:30:19 UTC (rev 19818)
@@ -1,28 +1,26 @@
 #!/bin/bash
 
-if [ $# != 1 ]; then
-  echo "Usage: runconvtest.sh VERSION"
-  exit 1
-fi
+for ver in hex8 tet4; do
 
-ver=$1
+  # Small tolerance w/ASM
+  sim=${ver}_smalltol
+  pylith hex8.cfg asm.cfg --petsc.ksp_rtol=1.0e-18 >& ${sim}.log
+  cd output; changeprefix hex8 ${sim}; cd ../
 
-# Small tolerance w/ASM
-sim=${ver}_smalltol
-pylith hex8.cfg asm.cfg --petsc.ksp_rtol=1.0e-18 >& ${sim}.log
-cd output; changeprefix hex8 ${sim}; cd ../
+  # Field split w/custom, PC rtol=1.0e-6
+  sim=${ver}_tol6
+  pylith hex8.cfg fieldsplit.cfg custompc.cfg --petsc.ksp_rtol=1.0e-6  >& ${sim}.log
+  cd output; changeprefix hex8 ${sim}; cd ../
 
-# Field split w/custom, PC rtol=1.0e-6
-sim=${ver}_tol6
-pylith hex8.cfg fieldsplit.cfg custompc.cfg --petsc.ksp_rtol=1.0e-6  >& ${sim}.log
-cd output; changeprefix hex8 ${sim}; cd ../
+  # Field split w/custom, PC rtol=1.0e-7
+  sim=${ver}_tol7
+  pylith hex8.cfg fieldsplit.cfg custompc.cfg --petsc.ksp_rtol=1.0e-7  >& ${sim}.log
+  cd output; changeprefix hex8 ${sim}; cd ../
 
-# Field split w/custom, PC rtol=1.0e-7
-sim=${ver}_tol7
-pylith hex8.cfg fieldsplit.cfg custompc.cfg --petsc.ksp_rtol=1.0e-7  >& ${sim}.log
-cd output; changeprefix hex8 ${sim}; cd ../
+  # Field split w/custom, PC rtol=1.0e-8
+  sim=${ver}_tol8
+  pylith hex8.cfg fieldsplit.cfg custompc.cfg --petsc.ksp_rtol=1.0e-8  >& ${sim}.log
+  cd output; changeprefix hex8 ${sim}; cd ../
 
-# Field split w/custom, PC rtol=1.0e-8
-sim=${ver}_tol8
-pylith hex8.cfg fieldsplit.cfg custompc.cfg --petsc.ksp_rtol=1.0e-8  >& ${sim}.log
-cd output; changeprefix hex8 ${sim}; cd ../
+done
+

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_pctests.sh
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_pctests.sh	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_pctests.sh	2012-03-19 21:30:19 UTC (rev 19818)
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+if [ $# == 1 ]; then
+  sims=$1
+else
+  sims="all"
+fi
+
+# ----------------------------------------------------------------------
+if [ $sims == "all" ] || [ $sims == "asm" ]; then
+  # ASM
+  #
+  # STATUS: OK
+  echo "ASM preconditioner"
+  pylith tet4.cfg asm.cfg >& tet4_asm.log
+  pylith hex8.cfg asm.cfg >& hex8_asm.log
+fi
+
+# ----------------------------------------------------------------------
+if [ $sims == "all" ] || [ $sims == "fieldsplit" ]; then
+
+  # field split, additive
+  #
+  # STATUS: OK
+  echo "field split, additive"
+  pylith tet4.cfg fieldsplit_add.cfg >& tet4_fieldsplit_add.log
+  pylith hex8.cfg fieldsplit_add.cfg >& hex8_fieldsplit_add.log
+
+  # field split, multiplicative
+  #
+  # STATUS: OK
+  echo "field split, multiplicative"
+  pylith tet4.cfg fieldsplit_mult.cfg >& tet4_fieldsplit_mult.log
+  pylith hex8.cfg fieldsplit_mult.cfg >& hex8_fieldsplit_mult.log
+
+  # field split, multiplicative w/custom fault preconditioner
+  #
+  # STATUS: OK
+  echo "field split, multiplicative w/custom pc"
+  pylith tet4.cfg fieldsplit_mult.cfg custompc.cfg >& tet4_fieldsplit_mult_custompc.log
+  pylith hex8.cfg fieldsplit_mult.cfg custompc.cfg >& hex8_fieldsplit_mult_custompc.log
+
+fi
+
+# ----------------------------------------------------------------------
+if [ $sims == "all" ] || [ $sims == "schur" ]; then
+
+  # Schur complement, diagonal
+  #
+  # STATUS: BUG, hangs at very beginning of solve for tet4 
+  #              true residual does not decrease for hex8
+  echo "schur, diag"
+  pylith tet4.cfg schur_diag.cfg >& tet4_schur_diag.log
+  pylith hex8.cfg schur_diag.cfg >& hex8_schur_diag.log
+
+  # Schur complement, lower
+  #
+  # STATUS: BUG, hangs at very beginning of solve for tet4 
+  #              hangs at iteration 8 for hex8
+  echo "schur, lower"
+  pylith tet4.cfg schur_lower.cfg >& tet4_schur_lower.log
+  pylith hex8.cfg schur_lower.cfg >& hex8_schur_lower.log
+
+  # Schur complement, upper
+  #
+  # STATUS: BUG, hangs at very beginning of solve for tet4 
+  #              works for hex8
+  echo "schur, upper"
+  pylith tet4.cfg schur_upper.cfg >& tet4_schur_upper.log
+  pylith hex8.cfg schur_upper.cfg >& hex8_schur_upper.log
+
+  # Schur complement, full
+  #
+  # STATUS: BUG, hangs at very beginning of solve for tet4 
+  #              works for hex8
+  echo "schur, full"
+  pylith tet4.cfg schur_full.cfg >& tet4_schur_full.log
+  pylith hex8.cfg schur_full.cfg >& hex8_schur_full.log
+
+fi

Deleted: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur.cfg	2012-03-19 19:52:54 UTC (rev 19817)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -1,14 +0,0 @@
-[pylithapp.timedependent.formulation]
-split_fields = False
-matrix_type = aij
-
-[pylithapp.petsc]
-ksp_gmres_restart = 100
-pc_type = fieldsplit
-pc_fieldsplit_detect_saddle_point =
-pc_fieldsplit_type       = schur
-pc_fieldsplit_schur_factorization_type = full
-pc_fieldsplit_schur_precondition = diag
-fieldsplit_0_pc_type     = ml
-fieldsplit_0_ksp_type    = preonly
-fieldsplit_1_pc_type     = ml

Copied: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_diag.cfg (from rev 19046, short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur.cfg)
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_diag.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_diag.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -0,0 +1,14 @@
+[pylithapp.timedependent.formulation]
+split_fields = False
+matrix_type = aij
+
+[pylithapp.petsc]
+ksp_gmres_restart = 100
+pc_type = fieldsplit
+pc_fieldsplit_detect_saddle_point = True
+pc_fieldsplit_type = schur
+pc_fieldsplit_schur_factorization_type = diag
+pc_fieldsplit_schur_precondition = diag
+fieldsplit_0_pc_type = ml
+fieldsplit_0_ksp_type = preonly
+fieldsplit_1_pc_type = ml

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_full.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_full.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_full.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -0,0 +1,15 @@
+[pylithapp.timedependent.formulation]
+split_fields = False
+matrix_type = aij
+
+[pylithapp.petsc]
+ksp_gmres_restart = 100
+pc_type = fieldsplit
+pc_fieldsplit_detect_saddle_point = True
+pc_fieldsplit_type = schur
+pc_fieldsplit_schur_factorization_type = full
+pc_fieldsplit_schur_precondition = diag
+fieldsplit_0_pc_type = ml
+fieldsplit_0_ksp_type = preonly
+fieldsplit_1_pc_type = none
+fieldsplit_1_ksp_type = minres

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_lower.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_lower.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_lower.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -0,0 +1,15 @@
+[pylithapp.timedependent.formulation]
+split_fields = False
+matrix_type = aij
+
+[pylithapp.petsc]
+ksp_gmres_restart = 100
+pc_type = fieldsplit
+pc_fieldsplit_detect_saddle_point = True
+pc_fieldsplit_type = schur
+pc_fieldsplit_schur_factorization_type = lower
+pc_fieldsplit_schur_precondition = diag
+fieldsplit_0_pc_type = ml
+fieldsplit_0_ksp_type = preonly
+fieldsplit_1_pc_type = none
+fieldsplit_1_ksp_type = minres

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_upper.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_upper.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/schur_upper.cfg	2012-03-19 21:30:19 UTC (rev 19818)
@@ -0,0 +1,15 @@
+[pylithapp.timedependent.formulation]
+split_fields = False
+matrix_type = aij
+
+[pylithapp.petsc]
+ksp_gmres_restart = 100
+pc_type = fieldsplit
+pc_fieldsplit_detect_saddle_point = True
+pc_fieldsplit_type = schur
+pc_fieldsplit_schur_factorization_type = upper
+pc_fieldsplit_schur_precondition = diag
+fieldsplit_0_pc_type = ml
+fieldsplit_0_ksp_type = preonly
+fieldsplit_1_pc_type = none
+fieldsplit_1_ksp_type = minres



More information about the CIG-COMMITS mailing list