- 26 Oct, 2017 1 commit
-
-
Christopher Subich authored
First and most trivially, this change adds a few more timing push/pop invocations relating to multigrid and especially to some of the MPI synchronization steps that might cause processors to wait on each other. More substantively, this change also adds a new tridiangonal solver based on the bog-standard forwards/backwards elimination Thompson algorithm (see Wikipedia). This should be acceptable because the 1D problems being solved themselves come from a 2D problem, so we don't expect ill-conditioning; calling out to the GMRES banded solver was surprisingly a computational bottleneck perhaps because of pivoting. This change seems to decrease the line-solve time by about 80%, which in turn decreases the overall runtime (tank_rho test case) by 40%.
-
- 26 Jun, 2017 1 commit
-
-
Christopher Subich authored
This commit adds stack-structured timing code, such that bits of SPINS can be instrumented with > timing_push("short name") > [... work goes here] > timing_pop() This is recursive, such that already-timed portions of the code can call the timing code to further instrument subroutines or discrete code segments, and the resulting structure follows the -dynamic- call stack. This does have the odd result that portions of the code that are re-used (namely spectral derivatives) can show up as several 'leaf' nodes in the graph. To print out the report to standard error, call > timing_stack_report() The exact format of the report should be considered tentative.
-
- 15 Jun, 2017 1 commit
-
-
Christopher Subich authored
-
- 18 Sep, 2015 2 commits
-
-
David Deepwell authored
and write vertical chain was moved to BaseCase (can write out vertical profile at a high temporal frequency)
-
David Deepwell authored
Safety dump estimates output write time and writes fields with enough time before the computation limit is reached
-