luke2k4_at_gmail.com wrote: > Dear ECLiPSe users, > I wanted to ask you about your experience with interfacing LP solvers > through the eplex lib. > I have been recently working on linear relaxation of a large industrial > problem ( more than half a million variables and and several tenths of > thousands of constraints), and I've cosen the ECLiPSe environment to model > the problem because it's good for fast prototyping. I've used the Coin-OR > CLP solver which is default in ECLiPSe. However I'd like to make some > performance tests with other solvers such as GLPK. > That's quite a big problem -- I certainly have not tried such a large problem with CLP/CBC via eplex. I know eplex have been used with larger programs (about half a million variables and constraints), but this was with CPLEX and/or Xpress. > Sticking to the GLPK for a moment, if I understand it correctly, I would > have to build the GLPK with the Coin-OR OSI libraries added, to get a dll > which could then be loaded by eplex ? I've seen that there is already an > entry in the eplex_lic_info.ecl for glpk, so provided that I have a glpk > library with osi I would have to uncomment the line, create a module > "eplex_osi_glpk.ecl" just like for the other solvers and than load ":- > lib(eplex_osi_glpk)" instead of ":- lib(eplex_osi_clpcbc)", please correct > me if I am wrong at some point. > I think I have only tried GLPK a long time ago -- it was (as Joachim said) quite a bit slower than CLP/CBC in general, so I have not try it any more. To use it (or indeed any other solvers supported via OSI), you need to build the solver with the appropriate OSI interface (OsiGlpk for GLPK). You would need to check the COIN-OR website to see how to do this. You will need to uncomment the line as you said, make some modifications to the Makefile to compile eplex with GLPK (via OSI). The important thing is to have the se<solver>.so (or .dll) in the right place. The eplex_osi_cbcclp etc. modules are only there to ensure the corresponding solver is loaded. You need to build everything (including ECLiPSe) using the same version of gcc, because the code compiled with g++ will only load into programs compiled with the same version of gcc/g++. You probably should check the Setup guide if you intend to do this. > Now moving to Express-MP, as far as I know this is commercial software from > "dash optimization", so I won't be able to use that with eplex unless I have > a valid license (the same case with CPLEX). What are than the libraries in > the \lib\ARCH\express1525 for ? At first I thought these are the complete LP > solver libraries because they are quite big, too big to contain only the > interface. > > One more thing, when I run the Coin-OR CLP via eplex I get quite high memory > consumption ( up to 1GB ) which is understandable because the problem is > large. My question is does ECLiPSe limit in any way the memory usage of the > external solvers ? I would not like ECLiPSe to do that. I got the global > stack overflow a few times but i suppose that was because of large data > structures created while building the problem definition for the external > solver in eplex and not because of the Coin-OR CLP memory usage (no problems > after increasing the global stack to 0.7GB). > When you use eplex, and you build your constraints in ECLiPSe, this uses memory, and when you pass this to the external solver, this uses additional memory. The ECLiPSe representation of the constraint is less memory efficient than the solver's representation. One way to reduce the memory usage is to add constraints to the external solver incrementally, so that you don't have the whole problem represented in ECLiPSe (assuming you don't want to do anything to the model in ECLiPSe except passing it to the solver). However, for OSI, adding constraints incrementally is very slow, as it seems the problem matrix is copied and expanded each time you add a constraint. Cheers. Kish -- This e-mail may contain confidential and privileged material for the sole use of the intended recipient. Any review, use, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply e-mail and delete all copies of this message. Cisco Systems Limited (Company Number: 02558939), is registered in England and Wales with its registered office at 1 Callaghan Square, Cardiff, South Glamorgan CF10 5BT.Received on Tue Jul 13 2010 - 03:47:34 CEST
This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET