Allow AtriumDB to output time information in its native format and add further optimizations. #93
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A deeper explanation for the following changes can be found in my comment in discussion #85.
AtriumDB 2.2.4
This PR makes use of AtriumDB's 2.2.4 features which is currently in prerelease.
Native AtriumDB Output
To allow one of our AtriumDB classes to output data in its native format, code is added to
benchmark.py
andutils.py
, in order to detect data in time-value pair format and convert to WFDB's nan based format outside of the benchmarking process.New Nan Adapter Class
A second AtriumDB class called
waveform_benchmark.formats.atriumdb.NanAdaptedAtriumDB
has been created which converts the data output from AtriumDB's native format to the benchmark's preferred format within the benchmarked region of code.No sort / check
AtriumDB in normal operation needs to check for the case where interblock (data between two or more blocks) or intrablock (data within a single block) data is out of order, but for this benchmark such a check is not needed.
Buffered Writes
AtriumDB has a new
write_buffer
which lets it piece together multiple small segments efficiently without the need for code outside code to accomplish best efficiency.File metadata loading
AtriumDB can now read it's time index for file meta information for the entire file and store that information in memory rather than requerying the file metadata for each small read. This significantly increases the read performance of small reads in exchange for a very light memory usage increase.
Mac OS Error
AtriumDB now gives a descriptive error when you try to use it on a Mac OS (I hope to have Mac support in 2.5.0)