Commit c0db3e2
authored
Feature/wrtobin/time hist (#830)
* first pass impl at basic hdf5 time history output of arrays
* initial impl of indexed array time history output
* initial impl of table output for arrays using indices on arbitrary cell dimension and allowing retrieval of arbitrary array components, requires an internal copy and full component specification (no ranges or slices)
* add table clearing and initial check for prexisting table in file
* verify the table is able to be used for the array when opening the table
* adding init tensor type support, checking if output file already exists
* add constructors to handle using indexing and/or/nor component output and add a general array flattening capability based on using a cell-indexer and component-indexer
* remove tensor types (yay); add support for dense raw array table io (for the time-tables); reimplement time history table io using new classes
* addition of an output executable event
* almost a total rewrite/simplification based on new specs from meetings
* adding utility functions to make specifying history tables using arrays easy, starting in on time history output and collector more seriously
* work on test case, simplifying column additions, m_col_sizes wasn't initialized before
* refactor to incorporate multiple time histories in the same output table if they have the same collection cadence and to add an actual time column instead of a seperate time table
* adding time history event unit test, some tweaks to the TimeHistory and TimeHistoryCollector classes
* removing metadata from packing functions, also very much in-progress work on moving things into the data repository to establish the desired xml schema
* low-level rewrite: new file writer to support parallel correctly, changed metadata type, added some mpiwrapper operations needed to determine global offset and sizing, continuing work on the data repo integration, unit tests seem to be passing correctly
* refactor of the collectors trying to get the high-level schema spec finalized
* initial cherry-pick of task manager and tasks from pr #383
* adding mpi comm to hdf file io to determine scope of paralell ops to allow for simultaneous use for parallel quantities and the time data itself which should only be written by one process, also shifting
collector away from directly targeting underlying types and just targeting the wrapper which now can return the necessary metadata and pack the object which is all that is required to collect history
* not bothering to fix the copy task atm since that is lower priority than the time history, it needs to find/create a copy-to field during initialization and then copy to that field since (1) creating the field at execution time limits the task to only executing once due to name conflict and (2) the field creation method no longer works due to changes to improve const-ness
* adding an is_array_view trait to make it easier to detect array/views for functions that can work on both (like the history metadata functions), also adding an option to wrapper packing to suppress packing strings which is needed to pack wrapped arrays for history output since that should result in just the raw array contents being packed as the rank and dimension extents are also suppressed in the current implementation, also added a check that the history collector is associated with a buffer provider (currently on TimeHistoryOutputs have the BufferedIO objects which provide the buffers, and we only have an hdf buffered io implemented
* debugging time output, some parallel stuff, and starting in on final merge prep
* adding support for specifying named sets in time history, outputing the indices for each set, and allowing a single history output event to target multiple collection events
* working on adding SortedArray/View output to output the history file indices associated with each set specified in input
* finalizing set indices output and debugging associated issues with hdf5 output of size 0 on some processes and time-independent data (no unlimited data space dimension means no chunking, chunking with a size 0 process is an error)
* tasks documentation
* splitting packing into seperate data and metadata+data functions to retain debugging metadata usage along with time-history usage, exposing through up through wrapper call hierarchy
* removing unneeded work on wrapperHelper template sfinae stuff, fixing the hdf file io tests by using the correct (no metadate) packing functions
* using buffer type to pack time history into pinned memory on lassen, changing buffer resizing to resize less often and not shrink buffer after write, fixing small mistake in exposing no-metadata packing functions
* resolving wrapper packing interface bugs, adding comm_split, have to create subcomm with only nonzero history writers so hdf5 doesn't freak out about using a chunk size of 0
* cleanup after debugging multi-dimensional array and zero-sized output bugs
* simplifications and a fix for lassen, still an conflict between caliper and hdf5/mpio
* reworking set index usage in order to reduce data movement wrt time history packing
* splitting HDFFile.hpp
* moving/renaming/spliting TimeHistoryCollector.hpp
* splitting up the time history output implementation
* fixing chunking issue that only cropped up at larger problem sizes
* adding serial time history writer to write out a file per mpi rank to work on lassen
* removing uneeded test used only for some debugging, delete existing non-hdf5 to get rid of badly formatted files, re-add time history to sedov, uncrustify
* removing hdf5 high level libraries, adding .hdf5 to filename in parallel access mode
* guard against using copyfield until it is implemented
* simplifying historymetadata
* switch back over to using mpio to write to a single output file instead of one per rank
* switch over to putting out a separate dataset for each setname in the field instead of one dataset for the field, precludes us from having to calculate/write datasets for the set indices in the time history files
* remove unneeded functionality that can be replaced with an improved version by making packcollection slightly more general, doxygen, uncrustify
* updating to newly-installed TPLs
* no-mpi build fixes and removing commented out old parallel file init
* small amount of cleanup, fixed a bug that could arise under some circumstances with multiple set output
* switching internal buffer and file reserve growth from a multiplier of 4 to 2
* initial simple time history reader script to show how to access and plot time history data
* updating submodule references
* update tpl tag, and submodule hashes1 parent 0a2fe87 commit c0db3e2
File tree
3 files changed
+155
-0
lines changed- timehistory_package
- timehistory
3 files changed
+155
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
0 commit comments