[root]/StandAlone
Benchmarks
(2 files, 228 lines)
tools
(2 files, 966 lines)
VisIt
(1 files, 826 lines)
compare_mms
(11 files, 1301 lines)
dumpfields
(29 files, 5425 lines)
extractors
(9 files, 5833 lines)
fsspeed
(2 files, 201 lines)
graphview
(8 files, 1637 lines)
makedot
(2 files, 239 lines)
mpi_test
(5 files, 992 lines)
pfs
(5 files, 1728 lines)
puda
(38 files, 5712 lines)
uda2vis
(4 files, 1812 lines)
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 66 (100.0%) | 800 (100.0%) | 12.1 |
harman | 6 (9.1%) | 414 (51.8%) | 69.0 |
ahumphrey | 25 (37.9%) | 208 (26.0%) | 8.3 |
dav | 7 (10.6%) | 83 (10.4%) | 11.8 |
allen | 9 (13.6%) | 41 (5.1%) | 4.5 |
bpeterson | 1 (1.5%) | 18 (2.3%) | 18.0 |
dsunder | 1 (1.5%) | 16 (2.0%) | 16.0 |
jas | 14 (21.2%) | 12 (1.5%) | 0.8 |
jsutherland | 3 (4.5%) | 8 (1.0%) | 2.6 |
Adjusted wall time used to the total
0 lines of code changed in 2 files:
Rename reg to regridder. White space.
21 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
19 lines of code changed in 1 file:
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
136 lines of code changed in 7 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
0 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.
1 lines of code changed in 1 file:
Second try to clean up the SimState
2 lines of code changed in 1 file:
added debug streams and state vars
2 lines of code changed in 1 file:
backed out sim state changes
4 lines of code changed in 1 file:
cleanup of the simulation state - most everything is now private
3 lines of code changed in 1 file:
compare_uda:
- changed cerr messages -> ostringstream and passing the stream into the abort_uncomparable();
abort_uncomparble(): slightly better reporting to the user why comparison aborted.
compare_sus_runs & runSusTests
- reduce the amount of noise pumped out by local/nightly RT when the input files differ.
- slightly better reporting to the user why a comparison failed.
131 lines of code changed in 1 file:
More species transport development:
- energy equation coupling with species in the diffusive flux treatment
- update wasatch spec to remove some superfluous entries. This also modified a number of the compressible tests
- use TagNames for temperature and heat flux
Bug fixes:
- use proper units on gas constant in density calculation.
- use proper units on gas constant in temperature calculation.
These bug fixes required changes to input files to get molecular weights in g/mol or kg/kmol.
Misc. formatting changes.
Note that this will cause diffs on several of the compressible tests due to the bug fix and naming change on temperature.
2 lines of code changed in 2 files:
compare_uda:
- added exit values to the usage
compare_sus_runs:
- fixed faulty logic. If the udas cannot be compared then abort.
- added comments describing the exit codes.
compare_dats:
- added comments describing the exit codes.
- clean up, 2 space indentation, lower case variable names
The following optimized tests will fail since the comparison failures weren't allowed to slip through.
Failed: ARCHES-opt tests
:isotropic-turbulence-decay__NEW: test failed comparison tests
Failed: ICE-opt tests
:CouettePoiseuille: test failed comparison tests
:CouettePoiseuille: (restart) test failed comparison tests
Failed: Wasatch-opt tests
:scalability-test: test failed comparison tests
8 lines of code changed in 1 file:
updated the usage output
2 lines of code changed in 1 file:
Significant refactoring of Level and LoadBalancerCommon prior to adding in per-level max_ghost_cells machinery.
12 lines of code changed in 5 files:
Reorganize the way we include MPI. Previously files were including the mpi_defs.h (configure generated file) to get mpi.h. Now they
include UintahMPI.h (from Core/Parallel/).
Note: MPI is now required (though for all intents and purposes it already was). You can still run a serial version of the code,
you just must compile/link with MPI first.
M configure
M configure.ac
- Fix check for xml2-config.
- Fix check for mpi.h location when using 'built-in' (fixes issue with non-mpich MPIs).
- Check to see if MPI handles const correctly.
- Fix some indentation.
- No longer define HAVE_MPI or HAVE_MPICH as we require MPI now.
- Added defines for MPI_CONST_WORKS, and MPI_MAX_THREADS and MPI3_ENABLED (thought the last 2 are hard-coded and need
to have configure tests written for them).
M include/sci_defs/mpi_testdefs.h.in
- Added MPI_CONST_WORKS, MPI_MAX_THREADS, and MPI3_ENABLED #defines.
- Moved the MPI wrappers into UintahMPI.h (thus out of this configure generated file).
D include/sci_mpi.h
- Removed sci_mpi.h as it is not used and its only purpose was to allow for compilation without MPI. This
is no-longer allowed (and probably hadn't worked in a long time).
A Core/Parallel/UintahMPI.h
- Added the new file UintahMPI.h which is used to #include <mpi.h> and wrap the MPI calls.
- These wrappers were in mpi_testdefs.h.
- Replaced most of the "const" with MPICONST so that on non-const-compliant MPIs they
can be turned off (this is done through a configure check).
- Grouped a lot of the UINTAH_ENABLE_MPI3 sections into single #if's instead of having a #if for each line.
M CCA/Components/Arches/fortran/sub.mk
- Remove tabs from where they are not supposed to be.
M CCA/Components/MPM/PetscSolver.h
M CCA/Components/ICE/PressureSolve/HypreStandAlone/Hierarchy.cc
M CCA/Components/ICE/PressureSolve/HypreStandAlone/mpitest.cc
M CCA/Components/ICE/Advection/FluxDatatypes.h
M CCA/Components/Schedulers/OnDemandDataWarehouse.h
M CCA/Components/Schedulers/BatchReceiveHandler.h
M CCA/Components/Schedulers/templates.cc
M CCA/Components/Schedulers/Relocate.h
M CCA/Components/Schedulers/MPIScheduler.cc
M CCA/Ports/PIDXOutputContext.h
M Core/Grid/Variables/Stencil4.cc
M Core/Grid/Variables/ReductionVariableBase.h
M Core/Grid/Variables/Stencil7.cc
M Core/Grid/Variables/SoleVariableBase.h
M Core/Parallel/ProcessorGroup.h
M Core/Parallel/PackBufferInfo.h
M Core/Parallel/BufferInfo.h
M Core/Disclosure/TypeDescription.h
M Core/Util/DOUT.hpp
M Core/Util/InfoMapper.h
M StandAlone/tools/mpi_test/async_mpi_test.cc
M StandAlone/tools/mpi_test/mpi_hang.cc
M StandAlone/tools/mpi_test/mpi_test.cc
M StandAlone/tools/fsspeed/fsspeed.cc
- Proper indentation.
- Replaced mpi_defs.h with UintahMPI.h.
- Use <> for includes and not "" per Uintah conding standard.
- Added comment for the #endif of the #ifndef compiler guard for the .h file.
Moved some #ifndef .h compiler guards to the very top of the file.
M testprograms/Malloc/test11.cc
M testprograms/Malloc/test12.cc
M testprograms/Malloc/test13.cc
- Fix indentation.
- "__linux" doesn't exist on some systems, so added "__linux__".
Probably could remove the __linux, but not sure so I didn't.
M VisIt/libsim/visit_libsim.cc
- Use #include <>.
M StandAlone/sus.cc
- Remove the code for old MPI versions. We don't support MPI v1 any more.
4 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.
4 lines of code changed in 1 file:
Revert -r55443, until folks can get compilers upgraded and buildbot MPI is updated.
4 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.
4 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).
6 lines of code changed in 4 files:
added a ui option
10 lines of code changed in 1 file:
Remove final remnants of Core/Thread
1 lines of code changed in 1 file:
Revert r55429.
Still having an MPICH/OpenMPI compatibility problem.
4 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.
4 lines of code changed in 1 file:
Removal of src/Core/Thread and related refactoring throughout the code-base.
This is the first step in a series of infrastrucutre overhauls to modernize Uintah. Though this all passes local RT (both CPU and GPU tests), I expect some fallout we haven't considered and will be standing by to deal with any issues. Once the dust settles, we will move to replacing Core/Malloc with jemalloc.
* We are now using the standard library for all multi-threading needs within the infrastructure, e.g. std::atomic, std::thread, std::mutex, etc.
* The Unified Scheduler is now the only multi-threaded scheduler, e.g. ThreadedMPIScheduler no longer exists (though the source will soon be placed into an attic).
* Threads spawned by the Unified Scheduler are detached by default (not joinable), allowing for easy, clean and independent execution. There are no longer ConditionVariables used to signal worker threads, just a simple enum for thread-state.
* What was Core/Thread/Time.* is now Core/Util/Time.* - a next step will be to migrate all internal timers, etc to use std::chrono.
* NOTE: Though much cleanup has occurred with this commit, there is still significant cleanup and formatting to be done. The scope of this commit neccessitates a more incremental approach.
33 lines of code changed in 2 files:
Catch errors on parsing where possible and output something useful.
6 lines of code changed in 1 file:
Refactor Array3 to remove iterator to make it possible to merge trunk
into the kokkos_dev branch
16 lines of code changed in 1 file:
Added option
-levels [int int] (Optional: level index for uda 1 and uda 2)
This allows you to compare single level to N level udas. Very handy for sanity checks.
271 lines of code changed in 1 file:
Added the SVN URL to sus's output so we can identify which branch was used during a particular run.
1 lines of code changed in 1 file:
Revert last update to sub.mk... Sorry Todd, it appears that in CUDA builds, that
NVCC spaghettifies the linking making everything require everything else (with
respect to cuda symbols). There might be a way to untangle it so that we could
build compare_uda (and the other utils) without requiring it to link to components
but that will have to wait for another day. -Dav
18 lines of code changed in 1 file:
Compare_uda and other utilities do not need to link against components
21 lines of code changed in 1 file:
Link in PIDX for static builds.
1 lines of code changed in 1 file:
Move non-conflicting classes that were in SCIRun namespace to Uintah namespace.
4 lines of code changed in 5 files:
This commit changes the way Uintah checks for the file system it
will use to save UDAs. Previously (and still available via a
command line flag to sus) Uintah had every process create a file,
and then every other process look for (some of the files) in order
to determine if everyone was running on the same file system or on
a local system. Currently we don't use any machines that have
local (per node) disks, so we don't need to do this work and,
because on 100K+ jobs, this hammers the file system, can take
minutes, and possibly cause errors, we will now default to assuming
a shared file system (we do a single file check for this).
M CCA/Components/SimulationController/AMRSimulationController.cc
- Remove warning by putting VISIT var into #if HAVE_VISIT.
M CCA/Components/SimulationController/SimulationController.h
M CCA/Components/SimulationController/SimulationController.cc
- Store d_usingLocalFileSystems in the shared state.
M CCA/Components/MPM/ReactionDiffusion/NonLinearDiff1.cc
- Remove warning by putting unused var inside #if.
M CCA/Components/OnTheFlyAnalysis/MinMax.cc
M CCA/Components/ICE/ICE.cc
- Replace GetVisIt() with renamed getVisIt().
M CCA/Components/DataArchiver/DataArchiver.h
M CCA/Components/DataArchiver/DataArchiver.cc
- Main changes to file system check in this file.
- Re-wrote the check for a common FS in setupSharedFileSystem().
- Mostly has process 0 create a file and all the others look for it.
- Put old code that was in initializeOutput() into setupLocalFileSystems().
M CCA/Components/Schedulers/SingleProcessorScheduler.cc
M CCA/Components/Schedulers/UnifiedScheduler.cc
M CCA/Components/Schedulers/MPIScheduler.cc
M CCA/Components/Schedulers/ThreadedMPIScheduler.cc
M CCA/Components/Schedulers/DynamicMPIScheduler.cc
- Minor white space.
M CCA/Components/Schedulers/SchedulerCommon.h
M CCA/Components/Schedulers/SchedulerCommon.cc
- Update names of some class variables to be consistent (_) with
naming convention in file.
- OCD formatting.
M R_Tester/helpers/runSusTests.py
M R_Tester/toplevel/generateGoldStandards.py
- Fix generateGoldStandards check for correct version of python (need 2.7 or better).
- Update "print" statement to be "print()". This allows local RT python scripts
to run under python 3.
M Core/Grid/SimulationState.h
M Core/Grid/SimulationState.cc
- Added d_usingLocalFileSystems var. Few minor whitespace fixes.
- Uintah uses lower case letters to begin functions. Updated setVisIt() and getVisIt()).
M StandAlone/inputs/MPM/disks.ups
- Minor whitespace edit.
M StandAlone/sus.cc
- Check for/handle new command line arg: -local_filesystem
- Most likely no one will ever use this...
- As we do note have access to a system with local file systems, this has not been
tested but the code just passes through to the original code for checking
for a local FS.
- Minor whitespace / formatting.
17 lines of code changed in 1 file:
fixed annoying compiler warning
1 lines of code changed in 1 file:
made set call controller generic
1 lines of code changed in 1 file:
Update copyright date to 2016.
8 lines of code changed in 9 files:
All updates from the gpu_dev branch merged back into trunk.
18 lines of code changed in 1 file: