Skip to content

Releases: robertu94/libpressio

libpressio version 0.42.1

28 Sep 14:05
Compare
Choose a tag to compare

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

21 Aug 02:01
Compare
Choose a tag to compare

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

10 Aug 16:03
Compare
Choose a tag to compare

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 and get_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 and find methods
  • Additional const attributes added to parameters of factory functions where possible
  • Updated existing methods to use pressio_data::to_vector, get_meta and set_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

10 Aug 16:03
Compare
Choose a tag to compare

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

10 Aug 16:03
Compare
Choose a tag to compare

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

10 Aug 16:03
Compare
Choose a tag to compare

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

10 Aug 16:03
Compare
Choose a tag to compare

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

10 Aug 16:03
Compare
Choose a tag to compare

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

10 Aug 16:03
Compare
Choose a tag to compare

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

10 Aug 16:03
Compare
Choose a tag to compare

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_compressors 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.