[Soplex] Inquiry about using quad precision with SOPLEX
Peter Notebaert
mail at peno.be
Fri Sep 27 15:49:36 CEST 2024
Hi,
As being both a Gurobi and scip user, my first question to you would be if
you have tried to scale your matrix yourself.
Gurobi has internal scaling strategies but you know your model best and you
may be able to scale the input data alot better than a solver does.
Peter
On Fri, 27 Sept 2024 at 11:41, Wang Wenyuan <wenyuan.wang at naist.ac.jp>
wrote:
> Dear Soplex developers,
>
> This is Wenyuan (Mike) Wang, currently working as an Associate Professor
> in Information Science at Nara Institute of Science and Technology in
> Japan. I work on quantum information (especially quantum cryptography)
> and in our field we often run into linear programming or
> semidefinite-programming problems that require numerical solvers.
>
> Previously we mainly used Gurobi for LP problems and Mosek for SDP (and
> some LP), which are rather fast and work reasonably accurately. However,
> recently we are visiting some more numerically challenging LP problems.
> Particularly, say in the form of Ax<=B, A can have a size as large as
> 2000x2000, and the largest vs smallest coefficients in A can have as
> many as 15 orders-of-magnitude differences. This makes Gurobi struggle a
> lot with reaching an accurate solution. Therefore, we are hoping to find
> some solvers with even higher precision (such as quad-precision,
> arbitrary-precision, or even rational exact solvers) to see if they
> might help with our problem.
>
> I have followed the README and INSTALL instructions in the soplex
> package (version 711) and have successfully compiled it in Linux
> environment (AMD x86_64 CPU with Windows WSL Ubuntu) and macos
> environment (M2 Max with Rosetta emulated x86). I compiled with makefile
> flags such as GMP=true, QUADMATH=true/false, MPFR=true (quadmath option
> is not available for Apple Silicon, while gmp and mpfr works on both
> platforms). With dependencies including gmp, boost::quadmath, zlib set
> up, I was also able to link Soplex to my C++ project (CLion) and run the
> simple real number and rational number test programs in
> https://soplex.zib.de/doc/html/example_8cpp_source.php.
>
> However, my question is, when using the library, how should I turn on
> the 80-bit (or float_128 in quadmath?) quad precision as described in
> the Soplex main page? I looked through the parameter list, but it seems
> there is no option for switching the internal precision, and while in
> the changelog https://soplex.zib.de/doc-7.1.1/html/CHANGELOG.php it
> mentions that there're two run-time command line options "solvemode" and
> "arithmetic", unfortunately they seem to only work in standalone mode
> but do not seem to be available for the library with the setIntParam
> API.
>
> The only parameters I can find that relate to precision seem to be
> ADAPT_TOLS_TO_MULTIPRECISION, PRECISION_BOOSTING, MULTIPRECISION_LIMIT,
> and PRECISION_BOOSTING_FACTOR. However, they seem to be related to MPFR
> (since when I set e.g. PRECISION_BOOSTING to true, the program will
> automatically output a warning if mpfr is not installed) but not
> boost::quadmath.
>
> May I ask if there is any specific argument to enable quadmath (or does
> linking to the Soplex library compiled with quadmath=true automatically
> enable it)? Or, is the quad-precision option already deprecated? Also,
> if one instead hopes to use the arbitrary-precision MPFR instead, may I
> ask what might be the recommended settings for the above four
> precision-related parameters, and is setting up those parameters at the
> beginning of the program all one needs to do (without any API function
> call change)?
>
> Looking forward to your kind suggestions. Many thanks for your kind help
> in advance.
>
> Regards,
> Mike
> _______________________________________________
> SoPlex mailing list
> SoPlex at zib.de
> https://listserv.zib.de/mailman/listinfo/soplex
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/soplex/attachments/20240927/f4eb754b/attachment.html>
More information about the SoPlex
mailing list