Problem
Common use case:
- User runs sdp2input, it writes sdp to disk
- User run sdpb, it reads sdp from disk and runs solver
- Intermediate sdp is never used elsewhere
These intermediate IO operations can be quite expensive (tens of minutes). In Skydive, sdp2input+sdpb are called for each iteration, and IO takes up to ~50% of total sdpb time (as noted by @suning-git).
Solution
Create a single executable that accepts input in different formats and performs in-memory conversion to the format accepted by solver.
Potential issues
See comments below for details.
Problem
Common use case:
These intermediate IO operations can be quite expensive (tens of minutes). In Skydive, sdp2input+sdpb are called for each iteration, and IO takes up to ~50% of total sdpb time (as noted by @suning-git).
Solution
Create a single executable that accepts input in different formats and performs in-memory conversion to the format accepted by solver.
Potential issues
See comments below for details.
sdp.zipis needed for SDPB restart. SDPB has to decide whether to overwritesdp.zipor ignore PMP input, if both are present. May lead to subtle bugs if the user doesn't really understand SDPB behavior.