[root]/CCA/Components/Schedulers
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 562 (100.0%) | 29050 (100.0%) | 51.6 |
bpeterson | 112 (19.9%) | 16138 (55.6%) | 144.0 |
ahumphrey | 269 (47.9%) | 11894 (40.9%) | 44.2 |
allen | 42 (7.5%) | 348 (1.2%) | 8.2 |
harman | 22 (3.9%) | 268 (0.9%) | 12.1 |
dav | 34 (6.0%) | 265 (0.9%) | 7.7 |
jas | 74 (13.2%) | 83 (0.3%) | 1.1 |
tsaad | 2 (0.4%) | 26 (0.1%) | 13.0 |
dsunder | 2 (0.4%) | 22 (0.1%) | 11.0 |
cgritton | 5 (0.9%) | 6 (0.0%) | 1.2 |
removed unused header
0 lines of code changed in 2 files:
This is a fix for Todd. Derek has been running this fix for the past two weeks and it's worked for him too. It just allows for extra cells to be involved in the coarsening process.
0 lines of code changed in 2 files:
Added a reminder to address the issue associated with the assert when the NanoPillar2D_FBC_sym.ups file is run.
2 lines of code changed in 1 file:
Uncommented assert in task graph that causes issues with the NanoPillar2D_FBC_sym file.
1 lines of code changed in 1 file:
Implemented working interface model for diffusion across material interfaces
1 lines of code changed in 1 file:
Uncommented ASSERT
1 lines of code changed in 1 file:
Fixed linking error
1 lines of code changed in 1 file:
removed errant subtraction of the bytes/sec measure
0 lines of code changed in 2 files:
changed var name for clarity
0 lines of code changed in 4 files:
removed errant subtraction of the bytes/sec measure
15 lines of code changed in 1 file:
This allows for non-packed MPI messages to work correctly. Specifically if multiple items are being sent in a single message.
1 lines of code changed in 1 file:
Cleaned up the error message and got the error check on both the send and the receive
6 lines of code changed in 1 file:
A defensive error check to catch errors I see if packing is turned off.
4 lines of code changed in 1 file:
Bulletproofing now works regardless of whether it is cubic or non-cubic. We want these error messages being thrown whenever they pop up
0 lines of code changed in 2 files:
Added new method for computing VariableExtents. It defaults to the standard computeExtents unless the computationnal domain is non-cubic and
the the number of ghostcells requested is > 5.
Brad & Todd
4 lines of code changed in 1 file:
Just adding a clearer error message
1 lines of code changed in 1 file:
Maintain list of spawned threads. This way we can do RAII style management of thread join/detach.
0 lines of code changed in 2 files:
Fix so that all RMCRT variants work correctly with non-rectanguler domains.
15 lines of code changed in 1 file:
Fix for GPU code: LoadBalancer -> LoadBalancerPort.
14 lines of code changed in 3 files:
M CCA/Components/Schedulers/Relocate.h
- Cosmetic: White space, Alignment.
M CCA/Components/Schedulers/Relocate.cc
- Change lb to m_lb inside an assert statement that I missed on previous commit.
0 lines of code changed in 4 files:
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().
160 lines of code changed in 12 files:
Remove SingleProcessor Scheduler/LoadBalancer.
Most of the work here has been in removing the need for Parallel::determineIfRunningUnderMPI(), as running Uintah with MPI is now an invariant, even with only a single process. We ALWAYS run Uintah with MPI.
The last simple step will be to remove usage of Parallel::usingMPI() (which now simply returns true), and also do away with the "-mpi" command line option. Right now sus has been modified to silently ignore "-mpi" and once the nightly RT scripts have been modified, we can deprecate usage.
Note that the following examples of a single process run are synonymous and all use the MPI scheduler with 1 rank:
./sus input.ups
./sus -mpi input.ups
mpirun -np 1 ./sus input.ups
mpirun -np 1 ./sus -mpi input.ups
45 lines of code changed in 10 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
48 lines of code changed in 7 files:
More concurrency work along with significant cleanup in DetailedTasks.
1518 lines of code changed in 7 files:
constructor
- Only execute cuda calls if 1) you have compiled with cuda and 2) you're using a device.
21 lines of code changed in 1 file:
More DependencyBatch concurrency improvements, std::atomic::compare_exchange_strong cleans up some dicey logic related to makeMPIRequest() and recieved().
Using std::memory_order_seq_cst for the strictest memory ordering. Might be able to relax this in the future.
Some other cleanup while under the hood.
97 lines of code changed in 6 files:
A few infrastructure concurrency fixes. Move DependencyBatch members to std::atomic, etc.
Arches - deafult initialize pointer members to nullptr, move member assignment to CTOR, remove using namespace std, add copyright header.
126 lines of code changed in 4 files:
Fix memory usage reporting bug on Vulcan/BGQ - the bug occurred when John cleaned out old checks (specifically _AIX) for the ProcessInfo::isSupported routine. _AIX apparently is a historical remnant (AIX was IBM's old OS) but works on BGQ machines and allowed isSupported to return true. I have replaced the previously used _AIX with __bgq__ which is more clear.
2 lines of code changed in 1 file:
The main updates in this commit are to configure and the build system:
A number of bullet-proofing / clean-ups have been added to configure,
and the dependency of Arches on Wasatch has been removed. (Note,
Arches still needs to build TabProps/RadProps in the Wasatch 3P.) I
have tested this on several machines, but it is possible that it will
now catch some peoples' bad configure lines (that 'worked' before but
only accidentally). If your configure stops working because of this
commit, please let me know so I can help you fix it. -Dav
M configure
M configure.ac
- Force bad configure command line arguments to be errors instead of warnings.
This will help avoid users accidentally mis-typing an arg and not noticing.
The autoconf configure system does not normally allow this to happen as
their philosophy is that configure usually calls a sub-configure and passes
args down to it... Thus configure "ignores" bad args under the theory that
a "sub configure" will use them. However, we don't do this and this will
help catch configure command line typos and potentially save developers and
users a lot of headaches.
The bad news is that in order to get this functionality, we have
to hack the autconf'd generated configure script and add a
variable (enable_option_checking=fatal) at the top. I have added
a section to configure.ac with the information about doing this,
but anyone who re-generates configure needs to manually follow the
instructions.
- Configure now will immediately tell you if you have typed in an invalid
file/directory name (bad spelling, doesn't exist) for the --with flags.
Perviously this occurred manually each time (now it is part of the macro)
at the point in the configure script when the library was tested for.
- Fix handling of finding the C/C++ compilers and version checking better.
Configure now determines which compiler (eg: GCC, ICC, XLC) you are
using explicitly and can test for things (like version) appropriately.
The version check may still need to be updated a little.
- Updated the --with handling to know whether the flag was set or not. Previously
we were using a "" (blank) value, which was ambiguous.
- Flag --without as invalid on anything we don't explicitly handle (we
only handle without on a few things such as: --without-fortran or
--without-hypre).
- Allow the external Wasatch 3P to be specified on a single line (instead
of having a separate line for SpatialOps, ExprLib, etc) using
--with-wasatch3p=DIR. This will find all 4 W3P libs with one configure line.
- Got rid of IS_VS (wasn't set/used and don't know what it was for).
- While "no" and no (without quotes) are the same thing to configure, be consistent
and use "no" (with quotes) everywhere.
- Remove the BUILD_WASATCH_FOR_ARCHES logic, as we no longer need Wasatch to
be built for Arches.
- Clean up the left over files from relatively new MPI const test section.
- Fix the HAVE_ACCELERATE
- Update --enable-wasatch_3p to take a list of libs to build (in the case you only
wish to build a subset. Eg: --enable-wasatch_3p=radprops,tabprops
Pass list of libs to the build_wasatch_3p.sh script.
7 lines of code changed in 1 file:
Remove SingleDevice (Unified_SingleDevice) debug stream in favor of masking visible devices with the prefered CUDA_VISIBLE_DEVICES env var.
see: http://www.acceleware.com/blog/cudavisibledevices-masking-gpus
1 lines of code changed in 2 files:
Use std::atomic for DetatiledTask external dependency count. Removes CrowdMonitor in MPIScheduler.
Other minor cosmetics while refactoring.
142 lines of code changed in 8 files:
Separate out DependencyBatch and DetailedDependency code. Refactor other related areas. This is a cleanup prior to work on the MPI engine to eliminate redundant all-to-all communication related to RMCRT.
Also add RuntimeStats header/source. Will be used in schedulers soon to provide more accurate reporting of MPI statistics.
1577 lines of code changed in 18 files:
added additional vars and streams to the in-situ
46 lines of code changed in 1 file:
backed out sim state changes
35 lines of code changed in 10 files:
cleanup of the simulation state - most everything is now private
3 lines of code changed in 1 file:
cleanup of the simulation state - most everything is now private
32 lines of code changed in 8 files:
Fix broken GPU build.
2 lines of code changed in 1 file:
added check for stall patches
7 lines of code changed in 1 file:
Use Output pointer member from SchedulerCommon only.
15 lines of code changed in 4 files:
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.
1028 lines of code changed in 16 files:
(76 more)