Hi everyone, first time posting, I have a problem I need help with, hope someone can help me.
What I’m trying to do is to run an optimization problem using a RaspberryPi 4. To accomplish this I’m using JuMP and GLPK solver. Everything is running fine on my PC, but the problem is that the default GLPK solver included in the package imported through Julia is not compatible with ARM processors. Here is where it gets tricky, at least for me. I can download and install a version of GLPK compatible with ARM processors and works just fine on its own or through python (already tested it on the Raspberry) but when trying to do a custom installation of GLPK following these instructions, nothing happens. I think there is a way to point the GLPK installation to the one that is working with the Raspbaerry ARM processor but I can’t quite make it work, so if anyone could help me I would be forever grateful.
On a different topic I also tried using CBC solver, which works with ARM processors but I have inconsistencies solving problems. Its says ome problems are not feasible when iI know for fact that they are.
PS: These are the steps I followed to install everything GLPK related:
Exactly what error are you getting? I tried on an RPi 4 and got two different errors. The first was an error that the library could not be found with a long path with lots of ../ in it. This turned out to be because my ~/.julia is a symlink and this badly confused the BinaryProvider machinery that generates deps.jl. After fixing this, I get
ERROR: cfunction: closures are not supported on this platform
It seems like GLPK requires features that are not yet implemented on AArch64.
When using CBC to solve large MIPs, I’ve found that I need to turn off presolve and/or preprocess to avoid feasibility issues. These are the parameters that need to be set:
Thank you! Any idea on how to do that exactly? I’ve tried already to create a startup file on ~/.julia/config/startup.jl containing only this: ENV["JULIA_GLPK_LIBRARY_PATH"] = "/usr/lib/arm-linux-gnueabihf"
But it seemded to do nothing, everything it’s still the same.
Alson when I run dpkg -L libglpk-dev this is what I get:
Thank you! I tried it but I still got the same problem:
ERROR: LoadError: Unable to retrieve solution from 48.
Termination status: OPTIMAL
Primal status: FEASIBLE_POINT
Dual status: NO_SOLUTION.
A MathOptFormat file was written to `subproblem.mof.json`.
See https://odow.github.io/SDDP.jl/latest/tutorial/06_warnings/#Numerical-stability-1
for more information.
I know that the subproblem is feasible as is modeled that way and also I solved it in my PC with no problems.
Oscar! Sorry I didn’t mentioned it earlier, I just realized you were the one answering me!!
Well, I’m using SDDP on a RPi because I need to solve a stochastic problem on a remote location on a daily basis using idealy a really small device, so RPi came to mind. Originally the idea was to use python, but it doesn’t appear to be anything as good as what you’ve done with SDDP.jl. There is no problem using Julia though, the only problem has been this ARM processor limitation that most solvers have. That’s why I’m trying to get GLPK or Cbc to work, having both supposedly ARM compatiblity, but I’m totally stuck!
Do you have it working, debugged, and fast on your main machine? I would only go to the Pi once you’re reasonably confident it is going to work. Perhaps open an issue in SDDP.jl, or send me an email. Even if you get a solver working, I think you’re going to have serious performance issues, particularly associated with the amount of RAM available.
I do have it working on my PC and it’s fast. I’m not solving a particularly large problem, that’s why I think I can get this to work. How do I get your email? I’ll be so grateful if somehow you are able to help me and I can get this to work.