NEOS API

NEOS runs an XML-RPC server to communicate with clients for submitting
and retrieving jobs. The server can communicate with clients
written in Python, Perl, PHP, C, C++, Java, Ruby, and probably other
languages as well. More information on XML-RPC and writing
clients can be found at http://www.xmlrpc.com
or http://tldp.org/HOWTO/XML-RPC-HOWTO/index.html. Any NEOS job submitted using the XML-RPC API must be formulated in the XML format required by the
desired solver. More information on this format can be found by following the
'XML-RPC' link on the solver's page.
Please see this section for example XML-RPC client written in Python.

The NEOS XML-RPC server is located at the URL
http://neos-1.neos-server.org:3332.

Returns a dictionary with entries {'abbreviated name':'full name',...}
If you want to provide a solver to NEOS in an unavailable category,
please email the NEOS administrators and we will add it for you.

Routines for submitting and retrieving jobs on NEOS

Use this method to submit your job to NEOS.
It will return a tuple containing (jobnumber,password).
You can the use this jobnumber and password to get the
results or status of your job using the methods getStatus,
getIntermediateResults, and getFinalResults.

In case of an error (NEOS Job queue is full), submitJob() will
return (0,errorMessage)

For more information on the format of the xmlstring, you can
use the getSolverTemplate function.

Retrieve intermediate results from NEOS, starting at the character
offset up to the last received data. Intermediate results are usually
the standard output of the solver daemon.

If the job is still running, then this function will hang until
another packet of output is sent to NEOS or the job is finished.
The offset

This function will return a tuple of thebase-64 encoded object and
the new offset (object, newoffset). The offset refers to uncoded
characters. Please read your XML-RPC client documentation for decoding.

(For Python's xmlrpclib library, you can use the object's 'data'
data member).

This will create a new solver on NEOS. Anyone is permitted
to register their solver on NEOS. If you would like to make
your solver available, please read the documentation at
@NEOS_WEB_SITE@/SolverHowTo.html

If you wish to temporarily remove your solver from NEOS, then you
can use this method. Your solver will be removed from the NEOS solvers
index, and any users who attempt to use your solver while
disabled will receive a message that it has been disabled.
Use 'enableSolver' to reenable.

Below is a simple Python script that accept NEOS Job XML file name as an input. It will submit a job to NEOS and print result to console.
To generate a job XML, please go to web submission interface of each solver, then upload input files as normal submission. Check "dry-run" box at the bottom and hit submit.
This will create a job XML that can be used with this program. Copy its content and write to a file. ( eg. job.xml )
In addition, using "queue" as argument to the program will print the current status of NEOS job queue.

Example ./NeosClient.py job.xml

A Python client is also included in the NEOS download package as NeosClient.py