Skip to content

Commit

Permalink
libpressio version 0.55.1
Browse files Browse the repository at this point in the history
Minor Changes

+ external metrics module can now disable writing inputs and outputs
+ noop compressor plugin now looks at the size and type of the output.
  this makes it work better with the python bindings.
  • Loading branch information
robertu94 committed Jan 18, 2021
1 parent a324475 commit bedc555
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 9 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
project(libpressio VERSION "0.55.0" LANGUAGES CXX C)
project(libpressio VERSION "0.55.1" LANGUAGES CXX C)

#correct was to set a default build type
# https://blog.kitware.com/cmake-and-the-default-build-type/
Expand Down
4 changes: 2 additions & 2 deletions COPYRIGHT.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Copyright © 2020 , UChicago Argonne, LLC
Copyright © 2021 , UChicago Argonne, LLC
All Rights Reserved
[libpressio, Version 0.54.1]
[libpressio, Version 0.55.1]
Robert Underwood
Argonne National Laboratory

Expand Down
4 changes: 2 additions & 2 deletions src/plugins/compressors/noop.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ class noop_compressor_plugin: public libpressio_compressor_plugin {
}

int decompress_impl(const pressio_data *input, struct pressio_data* output) override {
*output = pressio_data::clone(*input);
*output = pressio_data::copy(output->dtype(), input->data(), output->dimensions());
return 0;
}

int decompress_many_impl(compat::span<const pressio_data *const> const& input, compat::span<pressio_data*>& output) override {
for (size_t i = 0; i < std::min(input.size(), output.size()); ++i) {
*output[i] = pressio_data::clone(*input[i]);
*output[i] = pressio_data::copy(output[i]->dtype(), input[i]->data(), output[i]->dimensions());
}
return 0;
}
Expand Down
18 changes: 14 additions & 4 deletions src/plugins/metrics/external.cc
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ class external_metric_plugin : public libpressio_metrics_plugin {
set(opt, "external:workdir", workdir);
set(opt, "external:config_name", config_name);
set(opt, "external:use_many", use_many);
set(opt, "external:write_inputs", write_inputs);
set(opt, "external:write_outputs", write_outputs);
return opt;
}

Expand All @@ -104,6 +106,8 @@ class external_metric_plugin : public libpressio_metrics_plugin {
get(mopt, "external:workdir", &workdir);
get(mopt, "external:config_name", &config_name);
get(mopt, "external:use_many", &use_many);
get(mopt, "external:write_inputs", &write_inputs);
get(mopt, "external:write_outputs", &write_outputs);
get_meta_many(opt, "external:io_format", io_plugins(), io_formats, io_modules);
return 0;
}
Expand Down Expand Up @@ -255,17 +259,21 @@ class external_metric_plugin : public libpressio_metrics_plugin {
char* resolved_input = realpath(input_fd_name.c_str(), nullptr);
input_fd_name = resolved_input;
free(resolved_input);
io_modules[i]->set_options({{"io:path", std::string(input_fd_name)}});
io_modules[i]->write(input_data[i]);
if(write_inputs) {
io_modules[i]->set_options({{"io:path", std::string(input_fd_name)}});
io_modules[i]->write(input_data[i]);
}

//write decompressed data to a temporary file
std::string output_fd_name = get_or(prefixes, i).value_or("") + std::string(".pressiooutXXXXXX") + get_or(suffixes, i).value_or("");
int decompressed_fd = mkstemps(&output_fd_name[0], get_or(suffixes,i).value_or("").size());
char* resolved_output = realpath(output_fd_name.c_str(), nullptr);
output_fd_name = resolved_output;
free(resolved_output);
io_modules[i]->set_options({{"io:path", std::string(output_fd_name)}});
io_modules[i]->write(decompressed_data[i]);
if(write_outputs) {
io_modules[i]->set_options({{"io:path", std::string(output_fd_name)}});
io_modules[i]->write(decompressed_data[i]);
}

filenames.emplace_back(input_fd_name, output_fd_name);
fds.emplace_back(input_fd);
Expand Down Expand Up @@ -318,6 +326,8 @@ class external_metric_plugin : public libpressio_metrics_plugin {
std::vector<std::string> io_formats = {"posix"};
pressio_options results;
pressio_options defaults;
int write_inputs = 1;
int write_outputs = 1;
double duration = 0.0;
std::vector<pressio_io> io_modules = {std::shared_ptr<libpressio_io_plugin>(io_plugins().build("posix"))};

Expand Down

0 comments on commit bedc555

Please sign in to comment.