5
$\begingroup$

Is there any way to install and use commercial solvers (for which I have a license) on some virtual machines?

For example, if it's possible to install the Octeract engine student version on a google engine virtual machine? Or use Gurobi on a VM?

A VM with 624 GB memory and 96 vCPU(which is a possible VM), I think (and I am curious to try) can effectively solve large problems with a great improvement in solving time.

If it's not, what is the drawback of having this option?

$\endgroup$
2
  • $\begingroup$ I think you are better of asking this directly to the people at the solvers. Gurobi even offers preinstalled Gurobi Clouds. $\endgroup$ Commented Aug 27, 2020 at 18:56
  • 1
    $\begingroup$ @user3680510 thanks for your suggestion, but, what I mean by using virtual machines is using the advantages of a stronger operating environment rather than using the cloud for the solver. And also I think there are some professional people from various solvers here to maybe answer the question. $\endgroup$ Commented Aug 27, 2020 at 19:00

3 Answers 3

5
$\begingroup$

(Full disclosure: I founded Octeract)

So, a few things here:

In practice

Technologically speaking, of course you can (that's the point of a VM), unless a solver is using anti-virtualisation technology, and assuming your hardware supports virtualisation. However, some solver licences tend to be tied to a specific machine/user, so you will need to read the solver's licence carefully to make sure you are not violating the terms of the licence.

Octeract Engine student licence

I can't really comment on other solvers, but for the Octeract Engine student licence you can currently place it and use it on a VM as much as you want, as long as it's you using it on your designated university machine. The only practical restriction of the licence is that you can't use it on a university's cloud. We don't really see this as restrictive, as the student licence supports up to 16 CPUs anyway (see below).

Number of cores supported by the licence

Getting a beefy machine can only help so much, as the student version is up to 16 cores. This is a hard-coded limit that you can't get around, which is true of all multi-core solvers. For high-performance calculations we have academic cluster & supercomputing licences for 96+ CPUs which are commercial. We give pretty lengthy trials though, so simply apply for an Academic Cluster trial licence and we'll sort you out.

Performance

Again, I can't comment on other solvers, but since people mentioned performance this is an interesting one. Octeract Engine is a native supercomputing solver - it uses MPI even on one machine, and it will usually work out of the box on an HPC/AWS cluster (unless we need to resolve any funky cluster settings with the university's IT), even for 10,000 cores. What I can say, is that it is the only commercial MINLP solver I know of that natively supports supercomputing. It is installed in a bunch of supercomputers across the world, and we've observed that performance scales linearly with the number of cores, which you can't normally get with a traditional solver. If you are curious, you can see some parallel scaling benchmarks using 170 cores on our website (benchmarks on more cores coming soon!).

Virtualisation

The vast majority of solvers are either serial or multithreaded, which means their limit is one machine. This might be the reason you are tempted to build a large VM (I assume you want to build a multi-machine VM), as that could bypass the single machine limitations. However, for most solvers you will not get much out of it because their algorithms are not designed for that level of parallelisation. With Octeract Engine that's not an issue, but you also don't need a VM, a simple cluster will work just fine. One reason why you might not want to use a VM though is that virtualisation can come with considerable overhead, depending on the hardware and the virtualisation software used. One exception here is AWS/Docker VMs. We have tested Octeract Engine on both, and we haven't noticed any performance drops.

$\endgroup$
1
  • $\begingroup$ Thanks for your answer Nikos, I will try the trial license for cluster computing. $\endgroup$ Commented Aug 29, 2020 at 19:12
5
$\begingroup$

It depends on the solver and on the license type, but generally it is possible and you should reach out to the software provider directly to get more information.

Most solvers (I have seen this with Gurobi, Cplex, FICO Xpress) can be bought with different licensing options:

  • licenses for dedicated machines
  • single user license (which includes student licenses)
  • floating user licenses (allow the concurrent use of a restricted number of licenses by one or multiple users on one or multiple machines)
  • ISV (integrated software vendor) licences or ESA (Embedded solution agreement)
  • customized license agreements
  • pay-per-use licenses (Gurobi Cloud, Docloud)

These licenses are for different use cases and are priced very differently.

For example a license for a dedicated machine is priced based on the number of cores, memory, and maybe some additional hardware specific details. If you want to transfer this type of license to a different machine, you can normally not just deinstall it on one machine and move it to a second machine.

Licenses for dedicated machines and single user licenses are normally not suited to be installed on a VM, but in my experience, there is no problem with floating user licenses and with ISV/ESA licenses, you can run those in VMs or even docker containers.

Student licenses are a special case of single user licenses, so they are not made to be installed on VMs. But I think if you have a compelling use case, it should be possible to reach out to the software provider and get a license that you can use on a VM, or maybe you are able to obtain such a license directly through your university.

$\endgroup$
3
$\begingroup$

SAS solvers are part of the SAS Viya cloud platform and thus can be run in containers and virtual machines. The same is probably true for most commercial solvers.

But the benefits might be not as great as you think. While a lot of memory certainly does not hurt and might be needed for some problem instances, the gain from hundreds of CPUs is probably minimal.

Common wisdom is that improvements in the modeling of an instance and to the core algorithms of a solver typically outweigh more computing power by a significant amount.

Virtualization has some drawbacks as well. A solver might not get all resources in a shared environment. Some cloud platforms don't like processes who take up a lot of memory or CPU cycles and might police them (the amount of computation an MILP solver does might look a lot like a process in an endless loop from the outside).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.