Running a Solver

There are three different ways in which you can solve your optimization problems in PIFOP:

Option 1: Run a solver on NEOS

You can submit your model to be solved at NEOS via the neos terminal command. NEOS is a free internet-based service for solving numerical optimization problems. Hosted by the Wisconsin Institutes of Discovery at the University of Wisconsin in Madison, the NEOS Server provides access to more than 60 state-of-the-art solvers in more than a dozen optimization categories. Learn more at the NEOS FAQ.

Check out out our NEOS usage examples.

We recommend that you use the command line helper to execute a neos command, e.g.:

Alternatively, you can call neos directly from the terminal, e.g:

> neos -m model.mod -d data.dat

Enter neos --help to learn more about its usage.

List of solvers available on NEOS

Use the -s <solver_name> command line option to select one of the solvers below:

AlphaECP
ANTIGONE
ASA
BARON
BiqMac
bnbs
Bonmin
bpmpd
Cbc
Clp
concorde
condor
CONOPT
CONVERT
COPT
Couenne
CPLEX
csdp
ddsip
DE
DICOPT
Domino
DSP
ECM
feaspump
FICO-Xpress
FilMINT
filter
filterMPEC
Fishwerks
icos
Ipopt
JAMS
Knitro
L-BFGS-B
LANCELOT
LGO
LINDOGlobal
LOQO
MILES
MINLP
MINOS
MINTO
MOSEK
MUSCOD-II
NLPEC
nsips
OCTERACT
OOQP
PATH
PATHNLP
pensdp
PGAPack
proxy
PSwarm
qsopt_ex
RAPOSa
RELAX4
SBB
SchedulingApp
scip
scipsdp
sd
SDPA
sdplr
sdpt3
sedumi
SHOT
SNOPT
SoPlex80bit
SYMPHONY
xpress

Limitations of NEOS

1. NEOS doesn't know your project structure

Only files are submitted to NEOS, and only those that you specify in the command line. All the other files and directories in your project are unknown to NEOS.

2. NEOS renames the files you have submitted

For that reason, you should not rely on file reading commands such as data in AMPL and $include in GAMS.

In some cases, however, you can refer to files that you create dynamically — i.e. during the execution of your program — since these are not renamed.

3. Language processors run in their respective restricted modes

  • AMPL is executed with the -R command line option, which puts AMPL in 'server mode'. In this mode, it declines to execute cd and shell commands, forbids changes to options TMPDIR, ampl_include, and PATH (or the search path for the operating system being used), disallows pipe functions, and restricts names in option solver and file redirections to be alphanumeric (so they can only write to the current directory, which, on Unix systems at least, cannot be changed).
  • GAMS is executed with the command line option -execmode=3, which sets the restriction level to 3. In this level, embedded code and all $call and execute commands are prohibited, and $echo and put commands can only write to directories in or below the working or scratchdir.

4. Time and memory limits

By default, your job will timeout at 5 minutes. If you need more time, use the --priority long command line option, which will allow your job to run for at most 8 hours. However, the output of a long job can only be seen after its completion.

If you are a free PIFOP user running long NEOS jobs, your jobs will be interrupted if you close PIFOP during the execution. Consider upgrading your account in order to enable persistent execution.

As for memory limits, every job submitted to the NEOS Server is limited to 3 GB of RAM.

5. File type and size limitations

There is no way to submit any kind of binary file to NEOS, which, among other things, means that spreadsheet file formats such as .xlsx are not supported.

The file size limit is 16 MB.

Option 2: Run GLPSOL in your browser

GLPSOL is a large-scale linear and mixed integer programming solver built on top of the GLPK package. Using WebAssembly we are able to provide a way for you to run GLPSOL locally, directly from your browser, for free.

Check out out this GLPSOL sample project.

Enter a glpsol command in the terminal to execute your model, e.g:

> glpsol -m model.mod -d data.dat

Enter glpsol --help to learn more about its usage.

Limitations of GLPSOL

  • GLPSOL requires the input files to be written in the GNU MathProg language (GMPL), which is a subset of the AMPL language. This means that, although most AMPL commands will work, some will not.
  • GLPSOL accepts only two input files: model and data, meaning that you will not be able to have a separate commands file. Instead, put your solve, print and display commands at the end of your model file.
  • GLPSOL will use the CPU and memory from your machine. If your model is too large, we recommend you to use one of our other solver execution options below.

Option 3: Run a solver in an Optimization Server

If you, your university or your company has an optimization server connected to PIFOP, you can select that optimization server in the top menu, just above the terminal, and run whatever commands are supported by the server.

Supported solvers and tools

Each optimization server has their own solvers that they support. In order to know which solvers are supported by the selected optimization server, enter help in the terminal.

See below the difference between user-managed and provisioned optimization servers to learn more.

User-managed optimization servers

Some of our subscription plans allows users to host optimization servers for their personal, academic or commercial use. The owner of an user-managed optimization server has complete control over which solvers it can execute and who can use it.

Virtually any solver/interpreter can be supported by a user-managed optimization server — AMPL, GAMS, CPLEX, FICO-xpress, you name it. All that is required is that the solver is installed in the machine hosting the server and the command to call the solver has been configured. Visit our introduction to Opt-servers hosting to learn more.

Provisioned optimization servers

Provisioned optimization servers are servers that are hosted and managed by us to be used by our users, an option that is available in some of our subscription plans.

These PIFOP-managed optimization servers can be either exclusive to a given user or shared among all the members of an Enterprise, e.g. an university, a company or a small research group.

The machine specifications (CPU and RAM) are chosen by the user at checkout. The server comes with various free solvers already installed, such as SCIP, MiniZinc, CMPL and GLPSOL, and some commercial solvers can be installed upon user request.

Terms and Privacy Help Pricing About Blog Contact us Server Status Twitter LinkedIn