Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 57 (100.0%) | 427 (100.0%) | 7.4 |
jholmen | 8 (14.0%) | 198 (46.4%) | 24.7 |
allen | 12 (21.1%) | 151 (35.4%) | 12.5 |
ahumphrey | 10 (17.5%) | 29 (6.8%) | 2.9 |
mcconnell | 2 (3.5%) | 24 (5.6%) | 12.0 |
jas | 24 (42.1%) | 16 (3.7%) | 0.6 |
dav | 1 (1.8%) | 9 (2.1%) | 9.0 |
changed the proc name storage to a lookup - memory reduction
0 lines of code changed in 4 files:
Fix accuracy of error message when putting foreign vars into DW.
Reorder appearance of methods in OnDemandDW to match header... send/recvMPI methods adjacent in impl file.
A few minor cosmetic changes elswhere.
3 lines of code changed in 2 files:
Infrastructure restructuring and cleanup while starting last thesis-related task graph work.
Big things that I will always change when I see them.... and I saw much of this recently:
1.) ALWAYS use {} for 1-line conditionals.
if (<predicate>) {
// do stuff
}
2.) Use C++ static _cast over C-style casts, static_cast<int>(myvar) is checked at compile time, C casts are not and can fail at runtime.
3.) use "nullptr" over "0 or NULL" in the context of pointers and their assignment. Using NULL or 0 can be ambigous, e.g., compiler converting to non-pointer type 'int' from NULL (nullptr can't be assigned to an integral type). nullptr is a keyword and usage/intent is clear. From the standard: "The pointer literal is the keyword nullptr. It is an rvalue of type std::nullptr_t.".
4.) Things like Dout/Debugstreams that are specific to a compilation unit should be placed into an unnamed namespace (which is a utility to make an identifier translation unit local). The effect is almost identical to decalring something static.
5.) Use meanigful names, a bit lengthy is OK if it helps clarity. Remember, the compiler doesn't care about your names (values just go into registers), but the people maintaining your code do.. Code is meant to be read and maintained.
6.) Whitespace is our friend, but 80 column lines went away long ago.....
26 lines of code changed in 4 files:
formatting cleanup
3 lines of code changed in 1 file:
fixed bug in the node look up and cleaned up formatting
8 lines of code changed in 1 file:
added functionality to get the node index for any rank - slight memory cost
103 lines of code changed in 2 files:
rolled back changes to r58119
19 lines of code changed in 1 file:
fix absently minded move
5 lines of code changed in 1 file:
Cleanup UintahParallelComponent
0 lines of code changed in 4 files:
added storage for the processor name
8 lines of code changed in 2 files:
* Ensure that we have OpenMP before attempting to use it.
6 lines of code changed in 1 file:
* Updated KokkosOpenMPScheduler.cc to use Kokkos::OpenMP::partition_master() for Kokkos-based builds.
* Added -npartitions and -nthreadsperpartition run-time options.
* Set the Kokkos-OpenMP Scheduler as the default scheduler for Kokkos-based builds.
* Added bulletproofing within SchedulerFactory.cc.
* Updated ProcessorGroup.h to use m_comm for -nthreads 1 or -npartitions 1.
* Added MasterLock.h to help avoid mixing synchronization primitives.
* Replaced use of #include <mutex> with #include <Core/Parallel/MasterLock.h>.
* Replaced use of std::mutex with Uintah::MasterLock.
* Cleaned up whitespace.
This commit extends the Kokkos-OpenMP Scheduler to support parallel execution of tasks within an MPI process.
Scheduler logic is based upon that of the Unified Scheduler, where individual threads are used as task runners.
In the context of the Kokkos-OpenMP Scheduler, individual partitions are used as task runners.
Individual partitions execute Kokkos-based tasks in parallel across the threads belonging to that partition and existing serial tasks serially.
Note, this scheduler requires MPI_THREAD_MULTIPLE support to run with multiple partitions per MPI process.
192 lines of code changed in 7 files:
added per node communicator and changed logic for per node reductions
29 lines of code changed in 2 files:
Cosmetic update: Consolidate one line functions in .h file to be more easily read (in terms of a class spec). Added a few comments about what data the variables hold.
9 lines of code changed in 1 file:
Update copyright date.
16 lines of code changed in 24 files: