[root]/StandAlone/tools/puda
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 115 (100.0%) | 352 (100.0%) | 3.0 |
dav | 8 (7.0%) | 264 (75.0%) | 33.0 |
ahumphrey | 36 (31.3%) | 43 (12.2%) | 1.1 |
jas | 68 (59.1%) | 35 (9.9%) | 0.5 |
guilkey | 1 (0.9%) | 10 (2.8%) | 10.0 |
harman | 2 (1.7%) | 0 (0.0%) | 0.0 |
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.
134 lines of code changed in 4 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
0 lines of code changed in 2 files:
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.
116 lines of code changed in 2 files:
added cell location of min/max for CCVariable<Vector>
0 lines of code changed in 2 files:
Significant refactoring of Level and LoadBalancerCommon prior to adding in per-level max_ghost_cells machinery.
22 lines of code changed in 28 files:
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.
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).
17 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.
4 lines of code changed in 2 files:
One more pidx link
8 lines of code changed in 1 file:
Move non-conflicting classes that were in SCIRun namespace to Uintah namespace.
3 lines of code changed in 18 files:
Fix the generalized vortex output so that it gives results for all timesteps,
not just the last one.
10 lines of code changed in 1 file:
Update copyright date to 2016.
32 lines of code changed in 50 files: