Obtain the tar file (client-*.*-osname.tar.gz) for the latest version of the Client Tools, where osname is your operating system.
Currently the NEOS Server interfaces with two versions of client tools. If you are only interested in the submission tool, either client is the same. Solver administrators should be aware of the main difference between version 1.0 and 2.0: version 1.0 of the comms-tool supports individual communications daemons for each solver, and version 2.0 supports only one master communications daemon for all solvers on a workstation. The benefits of version 2.0 when multiple solvers are enabled include fewer processes running, fewer cron jobs to check the daemon, and fewer temporary files. The benefits of version 1.0 are that the choice of whether to restart by cron can be made separately for each solver and the death of a daemon does not disable all solvers on a workstation.
For additional information, read the README file and press the Help menu button on the comms tool.
This entry specifies the type of optimization problem. The current types appear in the solver_tree. If you submit the form with no type specified, the Server will return a list of the currently available types.
If this is a specific instance of one solver, give the token for that
solver group. For example, if you have separate interfaces to an
SNOPT for AMPL, one for GAMS, and one for Fortran, you need to identify
them as all being in the group SNOPT
for proper grouping
in the Web pages. If you are registering one instance and are not
sure of the group name, check the
server-solvers.html list. The group token is given before the square
braces indicating one instance. The token is case-sensitive and may not
include white space.
The GROUP may also be used to determine whether a solver's Web page contains a link to the Kestrel interface page if a solver's GROUP matches a Kestrel solver's GROUP. The input category for the Kestrel solver must also be in the first solver's features list.
The solver identifying tag should not contain whitespace.
This entry is an acronym for the solver. Examples are PCx, and SNOPT. The title is not case sensitive.
This entry guarantees that only authorized users or the server administrator are able to reconfigure the solver. This password is not extremely secure. Do not use your regular account password.
This entry is the contact when errors occur or when users have questions about a specific solver. Include the complete e-mail address ([email protected]).
Enter the list of workstations where
This file determines how e-mail messages are
parsed and the entries in the Submission tool and Web
Submission forms.
Each line of the configuration file contains 5 fields
separated by colons (:).
The first field provides the name that appears in the
Web page and Submission tool. The name may contain multiple words.
The second field
specifies the type of entry or default value for the entry.
The only types allowed are TEXT, BINARY-ON, BINARY-OFF,
and RADIO. The types are case sensitive. Any other entry will be considered a default value for the text variable or file name. File name defaults only appear in the Submission tool GUI.
The third and fourth fields specify beginning and
ending tokens, while the fifth field specifies the name of
a file. The parser breaks the information sent to For example, the AMPL model and
Comments fields in the MINOS Web Submission form are specified
by the lines
You can limit the number jobs that are sent by users on an hourly, daily, or
monthly basis. You need only provide a "usage restriction" file where each line takes the following form:
This file is sent to users who request help via e-mail.
Request a sample email file to guide you.
This file is similar to the e-mail help file.
Request a sample help file to guide you.
This file contains the HTML text that appears in the
Web Submission form. Do not include <html>,
<head>, or <body> statements in this file. Simply
supply text to go in the body section.
In addition to the normal HTML tags, NEOS supports
<NEXT ENTRY>.
There should be a <NEXT ENTRY> tag for each line of the token
configuration file. Explanatory text for the entry in the
configuration file should follow or precede this tag. Be sure to spell
check your text and view the results online to insure that you used no
special symbols. Look into using some html tags if the text
formatting does not meet your standards.
This file defines a set of sample problems for the solver. The sample
submissions themselves should be in Web accessible locations and look exactly
like the bodies of email submissions.
Only Web users have access to these sample problems.
An example will clarify the format of the file required for registration:
This example defines the first two rows in the table for the
AMPL-PRO sample submissions
. The above description should make it clear how the rest of this
table is specified.
As a simpler example, look at NCO:LANCELOT.
The submission file itself should not be given a
The HTML information in this file appears at the top of the
solver Web page, and provides general
information about the solver.
You may use any HTML tag or element. We do
have a preferred method for creating links to other pages in
the
Enter the URL of the Web page in the NEOS Guide
for the type of optimization problem.
AMPL model : : begin.mod : end.mod : minos.mod
Comments : TEXT : begin.comment : end.comment : COMMENTS
The AMPL Model is stored in the
file minos.mod, and any comments are stored
in the file COMMENTS. If the browser supports file uploading, the
AMPL model field will be a file field with browse button where the user need only provide the absolute path to the file.
As another example, the Language radio button in the
NMTR Web Submission form
is specified by the line
Language : RADIO .C,c .Fortran,fortran : fcn.lang : null : FCN.LANG
The buttons are labeled C and Fortran.
The choice of button determines whether
the file FCN.LANG contains
the string c or fortran.
< users > < minute | hour | day | month > < limit >
Here are a few examples:
#max hour 20
#max_any_one_user day 30
#max_any_one_domain month 100
#max limits the cumulative number of jobs, #max_any_one_user limits the
number of jobs sent by any one user, and #max_any_one_domain limits the number of jobs sent by any one domain.
<COLUMNS 5>
Problem
LANCELOT
LOQO
MINOS
SNOPT
Largest Small Polygon
http://www.mcs.anl.gov/home/more/neos/ampl/pgon_lancelot
http://www.mcs.anl.gov/home/more/neos/ampl/pgon_loqo
http://www.mcs.anl.gov/home/more/neos/ampl/pgon_minos
http://www.mcs.anl.gov/home/more/neos/ampl/pgon_snopt
The first line defines a table with 5 columns. The next five
lines specify the headers of the table.
The next five lines define a set of sample problems.
The first line in this group of five lines gives the name of the problem,
while the next four lines specify radio buttons associated
with the URL for the sample problems.
Each additional sample problem requires five lines to define
the name of the problem and the URL for the sample problems.
<A href="http://www-unix.mcs.anl.gov/~more/neos/lancelot/hs108">
HS 108 problem</a> with n = 9 variables, m = 13 constraints, nf = 6 element functions.
http://www-unix.mcs.anl.gov/~more/neos/lancelot/hs108
<A href="http://www-unix.mcs.anl.gov/~more/neos/lancelot/hs108.sif">
HS 108 problem in SIF format.</a>
http://www-unix.mcs.anl.gov/~more/neos/lancelot/hs108.sif
Placing hyper-referencing tags around the names of the sample problems
allows the user to click on the name to view the text of the submission as demonstrated above. The description of the sample problem should be one line (however long),
with the URL of the sample as the next line..html
extension
so that it will be rendered legibly by Web browsers. Also, due to an
apparent bug in the package the NEOS Server uses for reading in files from
their URLs, there should be a newline character after the final end token in
the sample submission.
Once you have entered all of this information, press
submit.
Download the client package
and
follow the installation instructions.
Install/execute the communications package as a
user other than your normal login (neos, for instance), as
you will be executing your software with arbitrary data.
There is a Help button on the menu that will give
information specific to the version of the Enter the software type and title that you used
in the registration process. Also enter the
password and contact person.
The software driver is the script or program that is
used to solve the user's problem. Give the complete path
to this file. See below for information on how to
write the solve script.
For testing purposes, set the debug option and save
option. The save option causes all user files to be kept
in the jobs directory. This is useful for debugging the
solve script. Be sure to turn it off once things are
working.
Selecting the
Cron check-box (the default) allows the checker program
to run every 15 minutes. The checker program checks that the NEOS
daemon is running, and if necessary, restarts the NEOS
daemon. You can disable the crontab later if you want by clicking on
Disable Crontab.
Clicking on Start Daemon starts the NEOS
daemon on each of the workstations selected with the chosen check-box options enabled. (If you are using After successfully starting the daemons,
choose File/save to save this setup
information. As with the submission tool, you can open a
previously-saved setup from the File/open menu.
ALL:ALL refers to the one master communications
daemon for all of the solvers on a machine. Several
functions in the Server software looked
for names like NCO:MINOS-AMPL, so it was easiest
to give the new master daemon a name that fit the known
format.
If your site only allows command execution on other machines on the same
network file system using ssh, the comms daemon
may hang when you try to add a solver station. SSH is waiting for a password,
which we cannot send securely via the comms tool. The way to work around
this is described in the man page for ssh.
Follow these steps to avoid typing in your password:
If the machines in question do not share a network file system, you
can register the solver as running on both machines and install the comms
tool on each machine. Start the comms daemon on each machine (or group of
machines sharing a network file system) from the appropriate machine.
The easiest way to construct the solve
script is to adapt one of the solve scripts for a similar
solver. Ask the Your solve script will be running in a temporary job directory. The
files you specify for user input in the token-configuration file are
copied to this directory and the script executed here. Therefore, the
required files will all be local to the script. Bear in mind that other files, including the solver executable and required libraries, may require absolute pathnames.
It is very helpful to the user to print their comments to the
job.results file before doing anything else that might fail. Some
people use the comments field to label their jobs, so it helps them
to know which job failed. Also, this practice makes sure that there
is something in the job.results file to go back to the user if
the solver aborts.
If a solve script exits without creating a job.results
file, the solver administrator will receive an email with the offending
job number. It is be helpful to web and email users to redirect any
standard error messages to the job.results file so that they have
some idea what is happening if their job aborts.
The files will be copied by the communications process to a job directory where your
You can disable your solver temporarily with the Administrative solver,
Enabling/Disabling a Solver. By filling in the solver information, choosing "disable," and submitting
the job to
If you need to remove your solver because you have lost access to a station or
other hardware, please inform us because we may be able to find a replacement. Some occasions when you will need to remove your solver include any time: you want to change the category under which your solver is listed; you want to change your solver identifier token; or your solver becomes subject to legal constraints that prohibit its use on NEOS. Other times we may ask you to remove your
solver for one reason or another related to the server.
For the
To categorize your solver by input, choose all checkboxes that apply
at the bottom of the registration form for
The user name we use to register and establish communications for NEOS solvers is neosotc. Ask about getting the password if you want to install a solver from the Argonne system.
The client tools can be found in
Once you have enabled your solver if you want to look at particular job files in the server repository, login to neos.mcs.anl.gov and check for the
If you would like to examine our records of neos-comments email, execute /usr/local/bin/neos-xreq. This will supply a gui interface to our log of messages. Note that replies to a particular
Communications Package
The next step of the installation
process is to install the NEOS Communications Package and
start a server on each machine that you registered with comms
tool that you are using. In general, you follow the steps below.
comms
version 2.0 and a master
daemon is already running on the machine, just press the Enable Solver
button and check the text area to be sure that this succeeds.)
ssh-keygen
(if you don't have a key already). This will by default create the files $HOME/.ssh/identity
and identity.pub
.
cat
the contents of identity.pub
into the file $HOME/.ssh/authorized_keys
.
(This file must be accessible by the remote machine across the network file system.)
$HOME/.shosts
. You will probably want
to include both the full machine names and their shortened aliases for convenience.
ssh
from the current machine to the remote machine and
back. If you have not done this before, you will be asked whether to add
that machine to the list of known hosts. When you have performed this operation in both directions, exit and try again. You should be able to log in without giving either your login password or your ssh key password. You may need to ssh
between machines using both their full and aliased names to get the
comms tool to work.
Your solve script (software driver)
perl -c solve_script
The first line of the solve script should give the
correct path to the executable. For example
#!/usr/local/bin/perl
If the first line is incorrect, a solver not found error
may arise.
Removing your Solver from NEOS
comms
tool. Fill in all of the information for the solver (checking that all of the stations on which you enabled communications are listed)and then press the Disable Crontab button.
client-1.0/bin/comms
tool, kill the communications daemons associated with
your solver by pressing the Kill Daemons button.client-2.0/bin/comms
tool, if there are other solvers
that should still be allowed to run on the machine in question through this
master daemon, only press the Disable Solver button. If this is the
only solver on the machine, press the Kill button under Daemon
actions.
delete
your solver. After you submit your job to NEOS, the solver web pages will be deleted, the solver will be removed from the submission tool interface, and no job requests will be sent by the
ADMIN:ADDSOLVER
. If your solver accepts an
input format that is not listed (perhaps in addition to listed formats),
be sure to choose the OTHER
option.
~neosotc/neos-client-1.0/
and
~neosotc/client-2.0/
. The repository of submit tool forms is ~neosotc/neos-registration/
. The comms tool forms are kept in ~neosotc/neos-communications/
. Please save the information you use to register your solver to files in those directories, following the naming conventions you see there. Sometimes the server administrator will choose to restart all solvers on the Argonne site after a site system failure, so these files need to be up-to-date.
job.number
directory you want under the SERVER_VAR
directory jobs
. Currently SERVER_VAR
is /disks/neos_var/
, but that may change in future. You can consult the file /disks/neos/server-
to find the value of the SERVER_VAR
environment variable. All of the job files will be kept for two days, before the job is archived as only the job.received file. While a job is running or sometimes if it exits abnormally, the working directory
will be the job number under ~neosotc/.comms/jobs/neos.mcs.anl.gov:3333. To
check whether the Server thinks a job is still running and where, you can check the
queues
file under SERVER_VAR/logs
.
[NEOS Support Req #****]
will appear only within the separate window for displaying that message.
<a href="">
,
that link will point to the solvers/
before the directory name of the
other solver. For example,
<href="solvers/NCO:LANCELOT-AMPL/">LANCELOT (AMPL input)</a>
will create a link to the LANCELOT homepage on the