NEOS Interfaces

We recommend that you read the Job Submission Process to learn about the steps involved in submitting a job to NEOS. Here, we describe the various methods to access the NEOS Server.

The NEOS Server can be utilized in a number of ways:

There are also several third-party interfaces developed by members of the NEOS community

Web Interface

The web interface is recommended to those who are new to NEOS. Users should pick an appropriate solver and input format for their optimization problem. Not all input formats are available to every solver so check the list of solvers to make sure an appropriate format is chosen.

Once a solver and input format are chosen, the user should prepare the required files for their optimization problem. After the files are prepared, the user should navigate to the appropriate page on the NEOS server for the chosen solver and input format. The user then uploads the required files to the server and submits the problem.

After submitting the problem, the user is routed to a webpage where the assigned job number and password is displayed, along with the current NEOS job queue. The submitted problem should be listed in the queue. Take note of the job number and password as they allow the user to access the job results.

The page will reload in a few minutes – if the problem is solved within this time, results will be streamed to the page. Otherwise, the results are not streamed and the user will have to access the results via the Job Admin page using their job number and password. More information about job priorities, output streaming, and retrieving results can be found on the NEOS Server FAQ.

It is recommend that the user provide an email address on submission because the NEOS Server will notify you via email when the job terminates.

Python/XML-RPC

All optimization problems and files submitted to the NEOS Server are packaged as an XML file. This process is done internally if the web interface is used. Users can choose the “Dry Run” option on the web interface to see the XML format of their problem. Alternatively, click on “XML-RPC” in the top-right corner of any NEOS solver’s webpage to see the XML template for that solver.

When the user assembles an optimization problem into XML format for the NEOS Server, the job can be sent to the server via the NEOS PythonClient.

The following is an example of a job submitted to Ipopt in AMPL format for XML-RPC:

<MyProblem>
    <category>nco</category>
    <solver>Ipopt</solver>
    <inputType>AMPL</inputType>
    <priority>long</priority>
    <email></email>
    <model><![CDATA[
     ....
    ]]></model>
    <data><![CDATA[
     ....
    ]]></data>
    <commands><![CDATA[
     ....
    ]]></commands>
    <comments><![CDATA[
     ....
    ]]></comments>
  </MyProblem>

with the AMPL model, data and commands inserted appropriately.

If the file ‘myProblem.xml’ contains your XML-formatted optimization problem, the file can be sent to the NEOS server with the following command:

python NeosClient.py myProblem.xml

Authenticated NEOS users can use the following command

python NeosClient.py myProblem.xml --username NeosFan  --password secretpassword

(with appropriate username and password values) to send the job as an authenticated submission.

Users can also check the Job Queue with the following command:

python NeosClient.py queue

A description of all NEOS Python/XML-RPC functions is available:

In particular, a user can retrieve the XML template for a given and input format by calling the function

getSolverTemplate

. These functions can be used to create new clients to the NEOS Server.

AMPL or GAMS via Kestrel

The NEOS Server can be accessed remotely from a locally-installed AMPL or GAMS modeling environment via the Kestrel interface. Please see this page for Information on how to use Kestrel.