Releases: robertu94/libpressio
libpressio version 0.42.1
libpressio version 0.42.1
Bug Fixes:
- SZ supports using older versions again by protecting newer features
with conditional compilation - Documentation bug fix for ZFP
libpressio version 0.42.0
libpressio version 0.42.0
Major Changes
- All compressors now expose their metric via ${prefix}:metrics. This
is to enable better handling for compressor hierarchies. Setting a
metric this way, or with the old compressor_set_metrics function will
set this option. - New helper function set_meta_many and get_meta_many for configuring
meta objects when there are multiple children. - New helper class subgroup manager for mapping which buffers should be
passeed to recursive calls of compress_many vs decompress_many. Older
code was refactored to use this. - New metrics module noop which computes no metrics is now the default
for compressors instead of nullptr. This fixes some issues related to
using get_meta/set_meta with metrics - Breaking Change: the spatial_error module is no longer built by
default. This was to fix a problem where some compilers would issue
an error when they encounter an unknown pragma (#pragma omp parallel
for) without OpenMP enabled. This can be restored via
-DLIBPRESSIO_HAS_OPENMP=YES
Minor Changes
- many_dependent now exposes to_names and from_names to configure
variables to pass from one timestep to the next. - vastly improved error handling in many_dependent and many_independent
Bug Fixes
- distributed_manager now retains how many masters and how many workers
it has after a call to set_options. This resolves a bug where
distributed groups would un-intentionally revert after being set. - many_independent now passes the correct args to distributed_managers
constructor - the posix IO module now handles files larger than 2147479522 bytes the
most bytes that Linux will transfer in one call to read or write. - composite metrics now sets names and prefixes correctly and has better
error handling when they are not. - external metric now correctly parses the supported version 4 and 5 of
the input/output specification. - external metric now reports stderr even if the process fails
- external metric now reports an error and no longer hangs if no command
is set. - many bug fixes to how distributed_build_groups computed group sizes
that were improper - Fixed linking to SZ to properly be private in test code
- Added test cases for IO to better handle some failure cases
- Updated some test cases which incorrectly depended return an exact
set of metrics rather than a subset.
libpressio 0.41.0
libpressio 0.41.0
Major Changes
-
Added APIs for to support multiple buffers to io, compressors, and
metrics! This is to support more efficient parallel semantics. For
now, assume that all inputs must be the same on all MPI ranks; but
this may be relaxed in the future. These methods end in_many
-
Added an C api to convert pressio_options to a human readable string.
-
pressio_data_for_each gained a mutable version
-
Configurable objects now have a
set_meta
andget_meta
to better
work with meta compressors and make them easier to write. -
Optionally depend upon LibDistributed to provide many_independent and
many_dependent meta-compressors that operate on multiple buffers in
parallel using LibDistributed. -
New helper class
pressio_distributed_manager
to help classes interface
with LibDistributed -
LibPressio types now implement the LibDistributed serialize-able
interface for the MPI backend -
time and size now provide
_many
callbacks -
new io module: empty which creates a zero-initialized io module
-
new metrics: kl_divergence, printer which logs what actions were
performed, ks_test which computes the kolomov-smirnov test, and
kth_error which computes the kth_error statistic -
initial support for FTK consider this metric module unstable
-
Update docker file to Fedora 32
Minor Changes
- stdcompat is now refactored into multiple headers to include less when
not needed - stdcompat now supports byte, data, size, nth_element, span, void_t, negation, minus and clamp
- pressio_registries now support
contains
andfind
methods - Additional const attributes added to parameters of factory functions where possible
- Updated existing methods to use
pressio_data::to_vector
,get_meta
andset_meta
where
possible. - libpressio now builds as a UNITY build for faster compiles when
directed. This is not the default because it harms debug-ability and
tooling with current versions of libtooling. - improved documentation
Bug Fixes
- fix segfault in MGARD test
- fix segfault in pressio_option_new_strings
- size no longer segfaults when passed a nullptr for output
- errno header added where it was required for some standard libraries
- Only clone the metric pointer when it is set when constructing compressors
- pressio_io_clone now has a correctly spelled return type
libpressio version 0.40.1
libpressio version 0.40.1
Minor Improvements
- New API that allows getting a human readable string for a set of
options.
libpressio version 0.40.0
libpressio version 0.40.0
Minor Improvements:
- Added support for C++20 where available (used for std::midpoint)
- Added support for setting options with std::optional and/or
compat:optional
Bug Fixes:
- report an error when chdir fails in external launch forkexec
libpressio version 0.39.1
libpressio version 0.39.1
Bug Fix
- Remove incorrect include of internal compiler header
- Fix link options for test/full.c
libpressio version 0.39.0
libpressio version 0.39.0
Major Features
- the CSV module now supports formats that are delimited by an arbitrary
single ascii character such as tsv. - the external metrics module now reports the runtime of the external
metric to help users collect accurate timing information for their
apps.
Bug Fixes
- Previously, the sz.h header was included incorrectly in the tests. This
has been resolved - Previously, the mgard compressor plugin reported the wrong type
for compressed data which caused segfaults. This has been fixed. - Previously, the pressio_data and pressio_io objects passed into
pressio_io_read routines were incorrectly correctly freed in the test
cases. This has been resolved by fixing the leaks.
libpressio version 0.38.2
libpressio version 0.38.2
Minor Improvements:
- Added a .clang-format file to standardize style
- The PETSc IO module can now set the viewer type and format as well as
convert matrices to different formats.
Bug Fixes:
- PETSc previously used the Native format when writing a binary matrix
to disk. With dense matrices, this may not have been what was
expected. The new default is PETSC_VIEWER_DEFAULT.
libpressio version 0.38.1
libpressio version 0.38.1
Bug Fix
- Some lua distributions do not include pkg-config files. Use the
FindLua from CMake as a fallback in this cases.
libpressio version 0.38.0
libpressio version 0.38.0
Major Changes
- the
composite
metrics plugin learned to use lua to create custom
composite metrics if the metrics are of types implicitly convertible
to double. - the External metrics module learned to spawn processes using
MPI_Comm_spawn to better support some metrics scripts which must be
launched in an MPI program. pressio_data
C++ interface gained a constructor and conversion
method to better inter-operate with the stl.pressio_compressor
s can now return a metrics structure. This is
intended to provide the ability for compressor authors to expose
profiling information such as the size of certain buffers or stage
specific timing information.- A new meta-io module called select was added which does
selects a subset of data prior to conducting an io - Additional conversions are allowed between
pressio_option_charptr_array_dtypes and pressio_data_dtypes to
better support applications which accept user input and need to set
these types of options.
Minor Changes:
- The documentation was updated to include up to date dependency
information. - SZ gained a
error_bound_mode_str
option to configure its mode as a
string. - The external metric gained a new well-known argument which provides
a "configuration" name intended to be used by experiment runners to
attach a unique name to a configuration. pressio_options
gained some routines and type aliases to better
interoperate with the standard library and with lua.
Bug Fixes:
- Several methods for creating pressio_option types that were allowed
in C++ were added to C. - Several undocumented methods and files were documented
- unnessisary includes of
<iterator>
were removed which reduced
compile times slightly in some cases.