[root]/Core/Util
Timers
(1 files, 5 lines)
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 177 (100.0%) | 1458 (100.0%) | 8.2 |
ahumphrey | 33 (18.6%) | 466 (32.0%) | 14.1 |
allen | 11 (6.2%) | 432 (29.6%) | 39.2 |
jas | 127 (71.8%) | 424 (29.1%) | 3.3 |
bpeterson | 2 (1.1%) | 125 (8.6%) | 62.5 |
dav | 4 (2.3%) | 11 (0.8%) | 2.7 |
changed define tag
0 lines of code changed in 2 files:
added a file name, gave default stream, and removed unused var
0 lines of code changed in 4 files:
Remove CommRecMPI source/header files.
Begin incorporation of Dout class and DOUT macro for debug reporting - simple, printf-based and fully thread-safe, needing no locks for output. This also allows us to move away from DebugStream (which inherits from the standard library). DOUT fully co-opts the SCI_DEBUG flags, so the original names work as tehy alwasy have.
DOUT is wonderful and actually provides coherent output for multiple threads/ranks, etc and avoids the massive code clutter necessary for the same degree of safety in the DebugStreams.
Thanks to Dan S. for this great insight.
8 lines of code changed in 2 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.
9 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.
4 lines of code changed in 1 file:
* Use variadic templates to simplify and generalize Action and Task constructors.
* Added utility class (header-only), src/Core/Util/TupleHelpers.hpp, that provides a clean way to deal with template or function parameter packs.
To see the utility in the amount of code reduction this achieves, compare Task.h now and with the previous revision. We have one Action and Task CTOR for CPU and GPU, instead of 5 overloads (for each, CPU adn GPU) and can now take in an arbitrarty number of additional arguments.
Refactor Task class and supporting classes:
* member naming convention - m_
* use nullptr comparison/checks over checks for 0
* heavy cleanup and formatting throughout
42 lines of code changed in 1 file:
Minor cleanups.
M CCA/Components/Schedulers/OnDemandDataWarehouse.h
- Fix a few compiler warnings...
M Core/Math/MersenneTwister.h
- "register" keyword is deprecated and spews compiler warnings (and
according to google the compiler just ignores it anyway).
M Core/Util/sci_system.cc
- Coding standard requires {} around if clauses, even if they are only one line. This
helps avoid future errors.
M StandAlone/tools/puda/puda.cc
- usage() kills the program, so need to "return" after it.
- Add "return 0" to end of main if everything works successfully.
2 lines of code changed in 2 files:
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).
17 lines of code changed in 8 files:
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:
1.) Fix MAC linker issue (clang) - uda2vis needs to link against libCore_Util to get the RefCounted symbols.
2.) Also enable optional REFCOUNT_IMPL for compilers not supporting gcc built-in atomics.
0 lines of code changed in 4 files:
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.
235 lines of code changed in 11 files:
Add DOUT - Based on printf, this is a simple, threadsafe alternative to DebugStream. Using this initially to cleanup GPU DataWarehouse debug output.
133 lines of code changed in 1 file:
Remove unused files.
0 lines of code changed in 5 files:
Remove old SCIRun TypeDescription and all traces of the SCIRun namespace.
2 lines of code changed in 3 files:
Simplify the SCIRun TypeDescription class.
183 lines of code changed in 4 files:
More changes from SCIRun to Uintah. Delete unused SCIRun build_script files.
4 lines of code changed in 1 file:
Remove Persistent class and all references to it.
0 lines of code changed in 5 files:
Move non-conflicting classes that were in SCIRun namespace to Uintah namespace.
188 lines of code changed in 54 files:
rewroke the stats collection
165 lines of code changed in 1 file:
added a units to the stats
21 lines of code changed in 1 file:
fixed warnings and case typo
6 lines of code changed in 1 file:
Fix incompliant c++11 code flagged by clang compiler:1.) explicit instantiations need to be in namespaces2.) match delete[] with new[] (should fix a small memory leak)3.) disambiguate method call in Socket class4.) fix CellInformation, declared as a class but defined as a struct
11 lines of code changed in 1 file:
clean up adding lots of const when possible
40 lines of code changed in 1 file:
a new template class - a std:map on steriods
200 lines of code changed in 1 file:
Update copyright date to 2016.
47 lines of code changed in 55 files:
All updates from the gpu_dev branch merged back into trunk.
125 lines of code changed in 2 files: