[root]/CCA/Components/SimulationController
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 120 (100.0%) | 3285 (100.0%) | 27.3 |
allen | 74 (61.7%) | 2711 (82.5%) | 36.6 |
dav | 17 (14.2%) | 414 (12.6%) | 24.3 |
ahumphrey | 18 (15.0%) | 122 (3.7%) | 6.7 |
harman | 3 (2.5%) | 20 (0.6%) | 6.6 |
jas | 7 (5.8%) | 11 (0.3%) | 1.5 |
bpeterson | 1 (0.8%) | 7 (0.2%) | 7.0 |
Adjusted wall time used to the total
0 lines of code changed in 6 files:
added additonal space
4 lines of code changed in 1 file:
Fix a few missed updates from Allens commit a little while back with regards to PIDX sections. Have not tested, but believe this is correct.
4 lines of code changed in 1 file:
restored flag to false
3 lines of code changed in 1 file:
clean up of the controllers
1032 lines of code changed in 5 files:
incorporated suggestion for a header
29 lines of code changed in 3 files:
changed the sus format output cleanup the wall times calculations
395 lines of code changed in 3 files:
fixed boolean chaeck and added modified var mapper for saving vars in the timestep.xml file
64 lines of code changed in 1 file:
added the ability of the user to init the simulation but wait until VisIt is connected to run
73 lines of code changed in 1 file:
moved the increment and time setting to the top of the loop
10 lines of code changed in 1 file:
moved first check to before adjustDelT
5 lines of code changed in 1 file:
clean up the current time incrementing, delT calculation, and sim controller reporting
210 lines of code changed in 3 files:
Add in the Wasatch 3P NSCBC library build/check in configure system. If you are using Wasatch and pointing
to old Watach 3Ps, this will cause your build to break... you will need to update your W3P to include
the NSCBC library.
M build_scripts/build_wasatch_3p.sh
- Added in Tony Saad's build commands for NSCBC library. Added hooks to allow configure to
specify whether to build it or not.
M configVars.mk.in
- Added in HAVE_NSCBC and NSCBC_INCLUDE flags.
M configure.ac
M configure
- Order Wasatch 3P lines to always be SpatialOps, ExprLib, TabProps, RadProps, NSCBC, POKITT.
- Add in verification of NSCBC files and NSCBC flags.
- Re-ordered the Pokitt test to be after the NSCBC test (just to keep using the same order when looking W3P libs).
M CCA/Components/SimulationController/AMRSimulationController.cc
- Few layout cleanups for easier reading.
M CCA/Components/SimulationController/SimulationController.cc
- Rename 't' to 'time'. Please don't use one letter variable names.
- Commented out "stdDeviation()" function as it isn't used and causes compiler warnings.
M Core/DataArchive/DataArchive.cc
- Fix error message when looking for <Data> to accurately report the name of the file that was searched.
10 lines of code changed in 2 files:
initalize d_prev_delt and made adjustDelT more readable
36 lines of code changed in 2 files:
M CCA/Components/DataArchiver/DataArchiver.cc
- Comment end of function.
M CCA/Components/SimulationController/AMRSimulationController.cc
- Set a var ('checkpointing') to remember if this is a checkpoint so we don't have to do the check twice.
The previous code was problematic as it used an individual rank's currentSeconds() and we
were doing the check (for the same timestep) twice with different wall times.
3 lines of code changed in 1 file:
Fix a nasty synchronization bug in checkpointing based on wall clock time.
This, I believe, mainly only shows up with very quick time steps, but it
could, conceivably, show up 'randomly' any time. The problem was that
each rank was determining "what the wall clock time is"... And each processors
clock could be off, or the check could be just a micro second delayed,
causing one core to not think that it is time for a checkpoint, and all
others to try to checkpoint, thus causing a hang (or segfault).
It would appear that this issue has been in the code for a long time.
In almost (?) all cases where real time is used, the time is found by
rank 0 and broadcast to everyone else. However, (at least) in this case
all ranks were calling currentSeconds(). I believe that I have found
the two locations this was happening and fixed it, and want to get this
fix committed for Sid to try and so that Ben's runs can be attempted.
However, it would behoove us to actually go through this code in detail
to make sure that we haven't missed anything and that redundant work
is not being performed. Also, I don't think that the broadcast will
be a major problem, but I'd like to get Alan's (et al) thoughts on this.
M CCA/Components/DataArchiver/DataArchiver.cc
- Removed tabs, Minor white space clean ups. Use > 80 columns of code where it makes sense.
Be consistent with placement of '{' in for loops, and use of else on a new line.
- d_checkpointWalltimeInterval is an integer, though there were (are?) a
few places it was being treated like a float. Probably didn't make a
difference, but we should be consistent.
- Have rank 0 determine the time and bcast it if we are doing wall clock
check pointing.
M CCA/Components/SimulationController/AMRSimulationController.cc
- Have rank 0 determine the time and bcast it if we are doing wall clock
check pointing.
18 lines of code changed in 1 file:
added debug streams
8 lines of code changed in 2 files:
This commit allows for dumping the grid.xml file in binary. It is turned off by default at this point.
Additionally, the <Data> section is split out of the grid.xml file and put into its own file (XML/ASCII) -
but only when using the XML_TEXTWRITER or the binary output.
If the grid is output in binary, you can use the "puda/grid_reader.cc" stand alone program to
display it (in XML) so you can visually see what is in the file. It is important to note that
when outputing in XML, we can (and do) ignore (not write) tags that are meaningless (in certain situations)
or have a default when they do not exist in the file. However, in the binary version, we have to write them all
out. I have tested against our local regression tests, but it is possible that there are some
seldomly used flags that are not yet written to the binary grid.xml file that we will need to take
care of adding in if/when they come up.
M CCA/Components/DataArchiver/DataArchiver.h
M CCA/Components/DataArchiver/DataArchiver.cc
- Finished implementing the writeGridBinary() function.
- Drop out of writeto_xml_files() immediately if not an I/O timestep. Previously it didn't
actually do anything, but it was not clear that it was not doing anything.
- Currently, to turn on binary output of grid.xml, you need to edit the code and
uncomment the writeGridBinary() call (and comment out the writeGridOriginal()).
Hopefully soon this will just be the default so we can get rid of the multiple
cases and extra code.
- Create a shared writeDataTextWriter() so that both the XML_TEXTWRITER and binary version
can share the code to dump the data.xml file.
- procOnLevel is a boolean array, so treat it as such.
- Swat some endls that take a lot more typing then just a \n.
- White space for better readability, update some formatting for consistency.
M CCA/Components/SimulationController/AMRSimulationController.cc
- Indentation is your friend.
- Remove tabs, line up code, white space.
M CCA/Components/SimulationController/SimulationController.cc
- Move local stdDeviation() routine to just above where it is used. Make static.
- Swat endls.
- White space for readability.
- Remove end of lines from exception messages where they are not needed.
M Core/DataArchive/DataArchive.h
M Core/DataArchive/DataArchive.cc
- Alphabetize #includes.
- Add a constant magic number to designate binary grid.xml files. Used by the code to verify
which version (xml vs binary) is being read. GRID_MAGIC_NUMBER
- Remove the "ref_cnt" and "lock" class variables as it appears they aren't used, and they don't
do anything. I believe they are left over vestiges of days long past.
- Remove "d_grid_path_and_filename" as all we need is the path and that is already stored.
- White space and consistent indentation.
- Added code to read in the new binary grid.xml files.
- Removed a huge "#if 0" section. Most likely left over from a previous version of UDA reading.
It would be good to converge on a single method and only have one set of code...
M Core/Grid/Grid.h
M Core/Grid/Grid.cc
- Add in readLevelsFromFileBinary() code to support DataArchive reading of new binary grid.xml.
As you can see from the (short) size of this routine, reading the binary version is much
simpler (especially compared to the streaming (non-DOM based) xml parsing that we also
currently do).
- Make use of longer lines as we non-longer are limites to 80 columns - where it makes sense.
- Add "{" to single line if statements as per coding standard.
- Remove some debug statements.
- Line up code for easier reading.
M Core/Grid/Level.cc
- White space / line up code for easier reading.
M Core/Grid/SimulationTime.cc
- White space / line up code for easier reading.
- Removed the deprecated "<max_iterations>" check. It hasn't been used in a long time.
M StandAlone/tools/puda/grid_reader.cc
- New, stand alone program to read a binary grid.xml file and display a human readable XML version.
- If you update this code, make sure it matches the writing in DataArchiver and the reading in
DataArchive.
M StandAlone/tools/puda/sub.mk
- Build grid_reader.
46 lines of code changed in 2 files:
Some cleanup before working toward support for multiple "Normal" task-graphs.
This work aims to support a single compilation phase for >1 distinct TGs, and will cycle between them on specific timesteps. Precisely this support is for radiation and non-radiation timesteps within Arches. This way we avoid the continual hit from TG recompilation for RMCRT radiation timesteps.
Ripped out some unused source and header files from 1994.
51 lines of code changed in 1 file:
Add in code from Sidharth to complete the update to allow for
switching between PIDX and UDA output. These changes come from Sid,
but I've cleaned up the syntax a little in some cases. I've tested
them against the local RT but not extensively against PIDX tests
themselves.
M CCA/Ports/Output.h
M CCA/Components/DataArchiver/DataArchiver.h
- Add setSaveAsUDA() and setSaveAsPIDX() functions.
M CCA/Components/DataArchiver/DataArchiver.cc
- White space.
- Guards to check for when using PIDX.
M CCA/Components/SimulationController/AMRSimulationController.cc
- When switching between PIDX and original UDA, let the 'output' (DataArchiver) know which to use.
- If using PIDX, only save timestep.xml for checkpoints.
M CCA/Ports/PIDXOutputContext.h
M CCA/Ports/PIDXOutputContext.cc
- Remove unnecessary ';' from outside of procedures.
- Move empty destructor from .cc file to .h file.
- Align variables / white space.
- Swat evil endl.
- Use variables names that describe their content, not non-meaningful names (eg: me).
- Pass args as const when they are.
- Use a single line for .h file procedures when they are only a single line. Makes reading
the 'spec' much easier.
- Don't mix printf and cout.
31 lines of code changed in 1 file:
Main changes:
Fixes to allow "Nth proc output" to work based on simulation time and wall time.
Also skeleton for writing out grid.xml information in binary, but this is no where
near complete.
Moved the "adjustDelT()" call up higher in the main simulation time loop. Tests
appear to say this is fine, but note that delta t is now updated before regridding.
I assume regridding does not use delta t, but did not trace the code all the way through.
M CCA/Components/DataArchiver/DataArchiver.h
M CCA/Components/DataArchiver/DataArchiver.cc
- Added in getNextCheckpointWalltime(), etc, as these were not exposed before and are
now needed by the SimulationController.
- Broke the grid.xml writing code out into separate procedures to make it less messy.
The grid writing in binary is just a stub at this point.
- Cosmetics: White space, untabify, alignment, etc.
M CCA/Components/SimulationController/AMRSimulationController.h
- Do NOT name variables with a single letter (eg: 't' is terrible). Renamed to 'time'.
(Unless in a very small, self-contained loop, and even then it is bad).
- Cosmetics.
M CCA/Components/SimulationController/AMRSimulationController.cc
- Add in checks to support "Nth rank output" based on simulation time and wall clock time.
- Moved adjustDelT() up a little higher in the main simulation loop. This should not be an
issue and all tests pass.
- Rename t -> time. DO NOT USE one letter variable names. Thank you.
- White space.
M CCA/Ports/Output.h
- Added interface for getNextCheckpointWalltime() and getCheckpointWalltimeInterval().
49 lines of code changed in 2 files:
M CCA/Components/SimulationController/AMRSimulationController.cc
- Change setNthProc() to setNthRank()... don't know how this didn't make it into the previous commit.
3 lines of code changed in 1 file:
The main changes in this commit only effect a simulation when <outputNthProc> is
set (> 1) in the .ups file.
This commit allows for PIDX output on every process for a time step
output, while using every Nth process (if so specified) for UDA
checkpoint output. Eventually the need for this Nth Proc changing
hack (and Nth proc output itself) should go away when PIDX fully takes
over I/O.
Note, when using "Nth Process Output", both a checkpoint and a time step save
CANNOT occur on the same time step. Therefore the time step output is postponed
for one time step.
On a slightly different note, we use the term proc badly... we should use process,
or perhaps better yet, rank... as proc is usually taken to mean "processor", but
in MPI's case, means process - and the term MPI uses for process is rank.
D CCA/Ports/LoadBalancer.cc
D CCA/Ports/LoadBalancer.h
A + CCA/Ports/LoadBalancerPort.cc
A + CCA/Ports/LoadBalancerPort.h
- Renamed from LoadBalancer to LoadBalancerPort to avoid confusion with the LoadBalancer itself.
- Added "setNthProc()" so that the SimulationController can change the value as needed.
M CCA/Components/DataArchiver/DataArchiver.h
M CCA/Components/DataArchiver/DataArchiver.cc
- Added postponeNextOutputTimestep(). This pushes off the output of a time step by one
time step. (This occurs if using Nth Process Output and a checkpoint and a time step
where to occur on the same time step.)
- Added savingAsPIDX() boolean query function so that the SimulationController
can avoid doing all of this hack when we are not using PIDX.
- Removed "getCurrentTimestep()" and "getCurrentTime()", as, per the documentation on them,
they should not be used anyway; you should get this info from the shared state. Note,
the DataArchiver name (getCurrentTime()) is different from the shared state name
(getElapsedTime()) which was also confusing.
- Pass const string parameters by reference.
- White space cleanup / alignments.
- If the input file has no <save> labels, but specifies an output interval, throw an exception.
- If the 'logname' is not available when running a simulation, put 'unknown' instead of ignoring.
Should probably find a better fix then 'unknown', but that will have to wait for another day.
- Swat some evil endls. :)
- Don't calculate 'currsecs' on every process, just on rank 0.
- Removed all calls to usingMPI() as Alan deprecated it in a recent commit.
- procOnLevel is (I hope) a boolean array... so declare and use it as such.
- Don't name a variable with a single letter. n -> var_cnt
- Did I mention white space cleanups... Please for the sake of older eyes...
M CCA/Components/ICE/ICE.cc
M CCA/Components/Models/FluidsBased/AdiabaticTable.cc
M CCA/Components/Models/FluidsBased/NonAdiabaticTable.cc
M CCA/Components/Models/FluidsBased/NonAdiabaticTable.h
M CCA/Components/Models/FluidsBased/SimpleRxn.cc
M CCA/Components/Models/FluidsBased/SimpleRxn.h
M CCA/Components/Models/Radiation/RMCRT/Radiometer.cc
M CCA/Components/OnTheFlyAnalysis/MinMax.cc
M CCA/Components/OnTheFlyAnalysis/1stLawThermo.cc
M CCA/Components/OnTheFlyAnalysis/containerExtract.cc
M CCA/Components/OnTheFlyAnalysis/lineExtract.cc
M CCA/Components/OnTheFlyAnalysis/momentumAnalysis.cc
M CCA/Components/OnTheFlyAnalysis/particleExtract.cc
M CCA/Components/OnTheFlyAnalysis/planeExtract.cc
M CCA/Components/OnTheFlyAnalysis/statistics.cc
- Use shared state getElapsedTime()
- Naming conventions: sharedState -> d_sharedState (to match other class vars in file).
- White space / alignments / etc.
M CCA/Components/LoadBalancers/CostProfiler.cc
- White space separation of #includes between CCA and Core
M CCA/Components/Arches/PressureSolverV2.cc
M CCA/Components/Arches/Radiation/RadPetscSolver.cc
M CCA/Components/Examples/Poisson2.cc
M CCA/Components/Examples/DOSweep.cc
M CCA/Components/Examples/RMCRT_Test.cc
M CCA/Components/Examples/RegridderTest.cc
M CCA/Components/Examples/SolverTest1.cc
M CCA/Components/FVM/ElectrostaticSolve.cc
M CCA/Components/ICE/impAMRICE.cc
M CCA/Components/ICE/impICE.cc
M CCA/Components/LoadBalancers/CostProfiler.h
M CCA/Components/LoadBalancers/DynamicLoadBalancer.cc
M CCA/Components/LoadBalancers/ParticleLoadBalancer.cc
M CCA/Components/MPM/AMRMPM.cc
M CCA/Components/MPM/ImpMPM.cc
M CCA/Components/MPM/SerialMPM.cc
M CCA/Components/Parent/Switcher.cc
M CCA/Components/ReduceUda/UdaReducer.h
M CCA/Components/ReduceUda/UdaReducer.cc
M CCA/Components/Regridder/RegridderCommon.h
M CCA/Components/Regridder/RegridderCommon.cc
M CCA/Components/Regridder/SingleLevelRegridder.cc
- LoadBalancer -> LoadBalancerPort
- White space cleanup / alignments.
M CCA/Components/LoadBalancers/LoadBalancerCommon.h
M CCA/Components/LoadBalancers/LoadBalancerCommon.cc
- LoadBalancer -> LoadBalancerPort.
- Add setNthRank().
- getOutputProc() -> getOutputRank().
- Whitespace / alignment.
- Fix comment to indicate getOutputProc is returning an MPI rank.
M CCA/Components/LoadBalancers/ProfileDriver.h
M CCA/Components/LoadBalancers/ProfileDriver.cc
M CCA/Components/Regridder/TiledRegridder.cc
M CCA/Components/Schedulers/MPIScheduler.cc
M CCA/Components/Schedulers/SchedulerCommon.h
M CCA/Components/Schedulers/SchedulerCommon.cc
- Cosmetics: Whitespace / alignment / coding standards / alphabetize #includes / etc.
- LoadBalancer -> LoadBalancerPort
M CCA/Components/Schedulers/OnDemandDataWarehouse.h
M CCA/Components/Schedulers/OnDemandDataWarehouse.cc
M CCA/Components/Schedulers/Relocate.h
M CCA/Components/Schedulers/Relocate.cc
- Name class variables according to naming convention. (eg: aborted -> d_aborted).
- Be consistent with naming convention of class variables in same file.
- LoadBalancer -> LoadBalancerPort.
M CCA/Components/Schedulers/TaskGraph.h
M CCA/Components/Schedulers/TaskGraph.cc
- LoadBalancer -> LoadBalancerPort.
- White space. Name variable "subset" more accurately: "handling_rank". I don't know
why it was named "subset" to begin with as it doesn't appear to be a "set" to me...
M CCA/Components/Schedulers/UnifiedScheduler.cc
- White space.
M CCA/Components/SimulationController/AMRSimulationController.cc
- There are a lot of cosmetic cleanups in this file, but the real/main change is:
- Add in hack to handle changing from "nth process output" (for checkpoints) to
"1 process output" (for time steps) when running with PIDX (and nth process is > 1).
- Declare variables (start) where they are used, not at the top of a function.
- Move the terminal output of the 0th timestep out of the main simulation loop.
- White space / alignment / etc.
- LoadBalancer -> LoadBalancerPort.
M CCA/Components/SimulationController/SimulationController.h
M CCA/Components/SimulationController/SimulationController.cc
M CCA/Components/Solvers/AMR/AMRSolver.cc
M CCA/Components/Solvers/AMR/HypreDriver.cc
M CCA/Components/Solvers/AMR/HypreDriverStruct.cc
M CCA/Components/Solvers/CGSolver.cc
M CCA/Components/Solvers/HypreSolver.cc
M CCA/Components/Wasatch/Expressions/Coordinate.cc
M CCA/Components/Wasatch/Expressions/PoissonExpression.cc
M CCA/Components/Wasatch/Expressions/Pressure.cc
M CCA/Components/Wasatch/Expressions/RadiationSource.cc
M CCA/Components/Wasatch/Wasatch.cc
M CCA/Ports/Scheduler.h
M CCA/Ports/sub.mk
M Core/DataArchive/DataArchive.h
M Core/DataArchive/DataArchive.cc
M Core/Grid/Grid.h
M Core/Grid/Grid.cc
M Core/Grid/Level.h
M Core/Grid/Level.cc
M StandAlone/tools/uda2vis/uda2vis.cc
- LoadBalancer -> LoadBalancerPort.
- Cosmetic white space, alpha, etc.
M CCA/Ports/Output.h
- Removed getCurrentTimestep() and getCurrentTime() as the user should get
them from the shared state.
- Added postponeNextOutputTimestep().
- Added savingAsPIDX().
220 lines of code changed in 3 files:
More concurrency work on MPI recv engine - also moving to straight mutex sync on task queues (no CrowdMonitor). Ultimately these queues need to be lock-free data structures.
Cleaned up ProcesorGroup, along with some other misc formatting/cleanup while under the hood.
Updates to tsan_suppression file
1 lines of code changed in 1 file:
added additional vars and streams to the in-situ
13 lines of code changed in 1 file:
Second try to clean up the SimState
53 lines of code changed in 3 files:
added debug streams and state vars
25 lines of code changed in 3 files:
backed out sim state changes
122 lines of code changed in 3 files:
cleanup of the simulation state - most everything is now private
78 lines of code changed in 3 files:
moved the in-situ state to be after creation
4 lines of code changed in 1 file:
Significant refactoring and clenaup in schedulers and loadbalancers prior to assesment of the required changes to the MPI engine to support Kokkos views. Also moving away from all mutex protected debug output, in favor of the light-weight, printf-based Dout class and DOUT macros. We now get fully coherent debug output, regardless of the proc/thread counts. Also moving to standardized naming conventions for class, static, thread-local and global variables.
31 lines of code changed in 2 files:
Significant refactoring of Level and LoadBalancerCommon prior to adding in per-level max_ghost_cells machinery.
1 lines of code changed in 1 file:
added new getReductionVariable usage and exist
4 lines of code changed in 1 file:
added a boolean for srubbing and fixed srubbing for AMR
27 lines of code changed in 2 files:
Redirect all MPI calls through the lightweight wrapper (header only)
This allows for standardized error checking and easy collection of runtime stats. All MPI funtions can be called from the wrapper by replacing:
MPI_ with Uintah::MPI::
e.g.
Uintah::MPI::Isend(...)
Uintah::MPI::Reduce(...)
Also enables MPI3 wrappers when MPI3 is available and protects against these when not. Will want MPI3 for non-blocking collectives. MPI3 is availalbe on Mira but not Titan yet.
* Note src/scripts/wrap_mpi_calls.sh has been added to the src tree. This has the sed foo to do this replacement src tree-wide.
* Have tested this with OpenMPI, MPICH, IntelMPI and also built on Titan and Mira.
6 lines of code changed in 1 file:
Revert -r55443, until folks can get compilers upgraded and buildbot MPI is updated.
6 lines of code changed in 1 file:
Redirect all MPI calls through the lightweight wrapper (header only)
This allows for standardized error checking and easy collection of runtime stats. All MPI funtions can be called from the wrapper by replacing:
MPI_ with Uintah::MPI::
e.g.
Uintah::MPI::Isend(...)
Uintah::MPI::Reduce(...)
Also enables MPI3 wrappers when MPI3 is available and protects against these when not. Will want MPI3 for non-blocking collectives. MPI3 is availalbe on Mira but not Titan yet.
* Note src/scripts/wrap_mpi_calls.sh has been added to the src tree. This has the sed foo to do this replacement src tree-wide.
* Have tested this with OpenMPI, MPICH, IntelMPI and also built on Titan and Mira.
6 lines of code changed in 1 file:
Replace usage of NULL macro (type int) with nullptr (pointer literal of type: nullptr_t).
nullptr is implicitly convertible and comparable to any pointer type or pointer-to-member type, but is not implicitly comparable to integral types, except that it is convertible to bool (explicitly).
3 lines of code changed in 2 files:
added check for the task graph recompiling
18 lines of code changed in 1 file:
Revert r55429.
Still having an MPICH/OpenMPI compatibility problem.
6 lines of code changed in 1 file:
(25 more)