AMPL users have the opportunity to compare alternative optimization
methods for an application, by taking advantage of the large and
growing collection of solvers for which AMPL interfaces are available.
This opportunity can be more apparent than real, however, when
considerable time and cost are required to separately obtain and
install each solver to be tested.

To simplify the work of comparing and testing solvers, we have
undertaken a project to make AMPL and solver resources available over
the Internet, in collaboration with the NEOS Server project of
the Argonne/Northwestern Optimization Technology
Center. AMPL users can interact with the NEOS server in either of
two ways:

These services are available free of charge to anyone who has the
requisite Internet connections. They are intended mainly for testing,
prototyping, and instructional purposes, however; there is no
guarantee as to the schedule or volume of computing resources to be
made available.

The following solvers are currently available for use through either of
the AMPL Remote Access interfaces described below. For more
information, follow the links from the solver names to their entries in
the NEOS
Optimization Software Guide.

Additional solvers are to be provided. Developers of commercial
solvers who want to make demonstration versions available through AMPL
Remote Access should contact Prof. Robert Fourer, 4er@iems.northwestern.edu or +1 847-491-3151.

This facility lets you send an AMPL "job" to the NEOS Server's remote
computer. A job consists of an AMPL model file, plus optionally an
associated data file, plus optionally a "script" or "run file" of AMPL
commands. All computation is done on the remote computer, and AMPL
output resulting from the job is returned via your web browser and/or
an e-mail message.

When you submit a job, the NEOS Server starts up a copy of the AMPL
processor, which reads and executes the commands in the run file (or
executes "solve" if no run file is provided). The NEOS Server also
executes the requested solver. AMPL's display or printing commands can
be included in the run file to produce listings of results that are
sent back along with other AMPL output.

To use this facility, follow a link below to consult the page of
instructions for the solver in which you are interested. Solvers
currently available are:

In this mode of operation, you run your own copy of AMPL on your own
computer. Instead of specifying a solver installed on your computer or
local network, however, you invoke a NEOS Client program
to send your problem to a solver running on the NEOS Server's remote
computer. The results from the NEOS Server are returned through the
NEOS client to AMPL, where you can view and manipulate them locally in
the usual way. Thus you get all the benefits of using AMPL environment
to test solvers, without having to first obtain and install each
solver.

The NEOS Client is currently out of service while it is rewritten
to use CORBA communications for greater stability and portability.
Release of the new version is planned for Summer 2000.

To get started using this feature, you must obtain the NEOS Client, a C
program that is freely available. Currently this program is available
for downloading in the form of executables for the following Unix
workstation environments:

When the solve command is given, the option solver
tells AMPL to invoke NEOS Client, and the option neos_solver
tells the NEOS Client to use MINOS as its remote solver. (The option
neos_client_oopt is set to g to select ASCII format
for the AMPL problem and solution files, since the default binary
format is not yet supported by the NEOS Client.)

After the NEOS Client is invoked by solve, it establishes
communication with the NEOS Server, sends the AMPL problem file to the
remote solver, and waits until the AMPL solution file is sent back.
Its progress is reported by messages like the following, but with
machine.domain.net replaced by the internet location of your
own computer:

The NEOS Client then disconnects from the NEOS Server and terminates
its execution. Finally, the solve command completes its work
by reading the solution file and displaying its usual solution
summary:

That's it! You can proceed to display or manipulate the solution or
to do anything else that you would have done if the problem had been
solved by a local copy of MINOS. Subsequent uses of the solve
command will continue to invoke a remote solver, until you change the
option solver or conclude the AMPL session.

Minor notes: The option setting send_suffixes0 is needed to work around a temporary incompatibility
involving only very new versions of AMPL. If the command
optionversion shows your AMPL version to be earlier
than 19980202, then you should be able to do without this
setting.

To avoid having to set the AMPL options neos_client_oopt and
send_suffixes at every session, you can instead define Unix
environment variables having the same names and settings. AMPL copies
all of the Unix environment settings each time a session is begun.

You can pass directives to any of these solvers by assigning an appropriate
directive string to the AMPL option consisting of the solver's name followed by _options. For example, to tell MINOS ... , you would execute the following AMPL command prior to solve:

option minos_options 'crash_option=0 scale=no';

For summaries of directives for the available solvers, follow the links
from their names in the listing above.

When running AMPL locally, how do I tell the
NEOS Client where to find the remote solvers?
The neos_client program automatically locates
the current NEOS Server, and the Server takes care of
locating each individual solver. Thus you don't need
to tell the NEOS Client specifically where the remote
solvers are located.

How do I get a Windows/PC version of the NEOS Client?
A version for PCs is in the early stages of planning.
It will be announced on this page when available.

How large a problem can I run on the NEOS Server?
The NEOS Server will currently attempt to run a problem
of any size. Certain solvers may limit problem size at
the request of their developers.
There are also practical limitations on problem size imposed by
the speed of the network connection and by the resources (memory
and disk) of the computers that the NEOS Server uses to run AMPL
and solvers. Such limitations are not easily translated,
however, into limits on problem characteristics such as numbers
of variables and constraints. For any particular problem type,
some experimentation will probably be necessary to determine the
largest problem instance that the NEOS Server can handle.

Can I run commercial applications on the NEOS Server?
Yes. Being a free service, however, the NEOS Server makes no
guarantees with respect to speed or availability. We thus
recommend the NEOS Server mainly for teaching, prototyping, and
testing. For large or critical applications, you will probably
do better to install AMPL and solvers at your own site.

Why do I keep getting a "Could not attach to neos server" error?
The full error message should look something like this:

stretto#0:c0:t0:p14022: Could not attach to neos server, exiting.

If this message begins with a simple machine name (like
stretto above) rather than a fully qualified machine
name (such as stretto.iems.northwestern.edu) then you are
encountering a technical problem with the NEXUS communications
software employed by the neos_client program -- keep
reading. Otherwise, the server may be down or may be failing
for some reason. Please try again later, or report
your problem to the NEOS staff.

You can circumvent the above-mentioned NEXUS technical problem
by creating a file named .resource_database in your
home directory. Place in this file a line of the form

machine domain=rest-of-domain-name

where machine is the name of the computer on which you are
running neos_client and rest-of-domain-name is
all of the fully qualified machine name except the initial
computer name. In the example above, this line would be

stretto domain=.iems..edu

If you use a network of computers that access the same home
directory, you can put a line for each computer in your
.resource_database file.

The NEOS Server uses the computational and algorithmic resources of OTC
collaborators to provide optimization services via the Internet. Users
are able to apply state-of-the-art optimization software to solve
optimization problems without downloading and linking code. The Server
thus demonstrates that the Internet can be used as a computational as
well as an informational resource.

More about NEOS and its components may be found in the following articles:

W. Gropp and J. Mor&eacute,
Optimization Environments and the NEOS Server, Preprint
MCS-P654-0397 (March 1997). Discusses the NEOS Server as a
problem-solving environment that simplifies the formulation of
optimization problems and the access to computational resources.