
Invoke solvers on the NEOS server
from your local AMPL session
|
Remote solvers available
Remote AMPL with remote solvers Local AMPL with remote solvers Frequently Asked Questions
More about the NEOS Server |
AMPL and the
NEOS Server
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. |
Remote solvers 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.
Remote AMPL with remote solvers
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:
Local AMPL with remote solvers
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.
Executables for other computing environments are under development. If you could make use of another form of executable, let us know by writing to neos-comments@mcs.anl.gov.
ampl: model steel.mod;
ampl: data steel.dat;
ampl: option solver neos_client;
ampl: option neos_solver minos;
ampl: option neos_client_oopt g;
ampl: option send_suffixes 0;
ampl: solve;
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:
machine.domain.net#0:c0:t2:p28356: Registered: 292
machine.domain.net#0:c0:t3:p28356: Problem 0 queued.
machine.domain.net#0:c0:t4:p28356: Problem 0 started.
machine.domain.net#0:c0:t5:p28356: Problem 0 solving.
machine.domain.net#0:c0:t6:p28356: Problem 0 result.
Done.
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:
machine.domain.net#0:c0:t0:p28356: Unregister sent.
MINOS 5.4: optimal solution found.
2 iterations, objective 192000
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_suffixes 0 is needed to work around a temporary incompatibility involving only very new versions of AMPL. If the command option version 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.
| option neos_solver donlp2;
|
| option neos_solver lancelot;
|
| option neos_solver loqo;
|
| option neos_solver minos;
|
| option neos_solver snopt;
| |
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.
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-namewhere 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..eduIf 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:
The remote AMPL/remote solvers facility has been created by Jorge Moré (Argonne), with assistance from David Gay (Bell Laboratories) and Robert Fourer (Northwestern).
The local AMPL/remote solvers facility has been created by Jean-Pierre Goux (Northwestern) and Todd Munson (University of Wisconsin), with guidance from Robert Fourer (Northwestern), Jorge Moré (Argonne) and Jorge Nocedal (Northwestern).