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 [FREE]
- Option 2: Run GLPSOL in your browser [FREE]
- Option 3: Run a solver in an Optimization Server
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.
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
List of solvers available on NEOS
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
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
-Rcommand line option, which puts AMPL in 'server mode'. In this mode, it declines to execute cdand shellcommands, 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 $calland execute commands are prohibited, and $echoand putcommands 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.
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.
Enter a glpsol command in the terminal to execute your model, e.g:
> glpsol -m model.mod -d data.dat
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
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.