I understand that RAM required for optimization problem is problem specific and some problems require much more memory. I am thinking how much RAM I need for my system and need to decide between getting 32 GB or 64 GB. The processor has 24 threads which means using more threads will require more RAM. Is 32 GB RAM enough for most optimization problems of the form LP, MILP, QP and MIQP problems?
Asked
Active
Viewed 722 times
7
-
5The more, the merrier. Problem sizes tend to increase to use available memory. Every extra thread for MILP, MIQP, MISOCP, uses extra memory. Even 64 GB is not very much nowadays. – Mark L. Stone Dec 10 '21 at 18:44
-
6Required RAM is obviously affected by the size of the model, not just the type (LP, MILP, ...). Also, many solvers will swap portions of the model or portions of the search tree to disk, so to some extent less RAM translates to longer run times as opposed to a flat-out failure to solve. – prubin Dec 10 '21 at 19:05
-
2Have your tested RAM-usage on your current device? I mean, seems highly dependent on specifics of the model and algorithm. – Nat Dec 11 '21 at 08:30
-
Following up on this, is there a practical maximum RAM for Gurobi? I just bought a server that can take 256gb. An acquaintance said that anything beyond 128gb in Windows is inefficiency used. Is it worth it just to load this server up to the gills anyways? – Ralph Asher May 05 '22 at 02:55
-
The answer to your question very much depends on how you intend to use that server. If you want to be able to run several larger optimization jobs at the same time, try to get as much memory as possible. I have never heard that Windows cannot handle 256GB efficiently but if you're concerned about that, maybe try Linux :-) – mattmilten May 05 '22 at 05:38
-
Yes, I plan to either run several jobs simultaneously or push it to it's limits on a single job. I'd generally prefer Windows so I can do the standard office stuff on it too but I'll install Linux if need be – Ralph Asher May 05 '22 at 15:23
1 Answers
10
Easy answer: 64 GB
With 24 threads (is this already including hyperthreads? Maybe not, so we are actually talking about 48 threads...) you'll have about 2 and a half GB for every thread - that's not very much if you really want to make good use of those threads. So going for 32 GB is definitely the wrong move and you'll most likely regret this choice.
AFAIK, every competitive optimization solver treats memory as a more or less abundant resource and will often have no difficulties filling it up. You are more likely to use some parameter settings to avoid out-of-memory issues even with 64 GB, so if possible, you should go for even more memory.
mattmilten
- 1,633
- 8
- 12
-
1Thank you. 24 threads includes hyperthreads, ie. max number of threads that can be used – Jonn Dec 10 '21 at 19:35