Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

solve and pdlp_solve can't read .mps.gz files #3421

Open
mlubin opened this issue Aug 8, 2022 · 5 comments
Open

solve and pdlp_solve can't read .mps.gz files #3421

mlubin opened this issue Aug 8, 2022 · 5 comments
Assignees
Labels
Feature Request Missing Feature/Wrapper Lang: C++ Native implementation issue
Milestone

Comments

@mlubin
Copy link
Contributor

mlubin commented Aug 8, 2022

If given an .mps.gz file as input, pdlp_solve crashes with

F0808 08:30:14.141796 288747 quadratic_program_io.cc:70] Check failed: (lp_proto).ok()

and solve crashes with

F0808 08:31:19.341888 289046 solve.cc:130] Check failed: (glop::MPSReader().ParseFile(input, &model_proto)).ok() Error while parsing the mps file '...'

Is zlib linked in correctly?

@mlubin mlubin changed the title solve and solve_pdlp can't read .mps.gz files Aug 8, 2022
@lperron
Copy link
Collaborator

lperron commented Aug 8, 2022

The gzip and bzip2 file reader code has never been open sourced.

@Mizux Mizux added this to the Backlog milestone Aug 8, 2022
@Mizux Mizux added Feature Request Missing Feature/Wrapper Lang: C++ Native implementation issue labels Aug 8, 2022
@Mizux Mizux self-assigned this Aug 8, 2022
@mlubin
Copy link
Contributor Author

mlubin commented Aug 9, 2022

That's fair, the error messages should be improved in this case.

@stumarcus314
Copy link

Could xz be used to compress and decompress MPS files for OR-Tools? The xz compressor (liblzma) and decompressor (xzdec) are both multi-threaded and it seems like they are in the public domain. xz compresses files smaller than gzip (30% smaller) and bzip2 (15% smaller).
https://tukaani.org/xz/
https://git.tukaani.org/?p=xz.git;a=blob;f=COPYING

@mlubin
Copy link
Contributor Author

mlubin commented Sep 20, 2022

gzip and bzip2 are the standard ways to compress MPS files (this is how you'll find them in benchmark libraries). If I/O is really a bottleneck, you'd be better off using an in-memory API instead. You're also welcome to modify pdlp_solve to connect to your favorite decompression library.

@Mizux Mizux modified the milestones: Backlog, v10.0 Feb 23, 2024
Mizux added a commit that referenced this issue Feb 23, 2024
mps.gz is not supported in C++ see #3421
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request Missing Feature/Wrapper Lang: C++ Native implementation issue
4 participants