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 (user@xxx.domain.edu).
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
AMPL model : : begin.mod : end.mod : minos.mod Comments : TEXT : begin.comment : end.comment : COMMENTSThe 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.LANGThe buttons are labeled C and Fortran. The choice of button determines whether the file FCN.LANG contains the string c or fortran.
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:
< 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.
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:
<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_snoptThe 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.
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.
<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.sifPlacing 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.
The submission file itself should not be given a .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.
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.
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 comms
tool that you are using. In general, you follow the steps below.
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 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.)
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:
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.
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
perl -c solve_scriptThe first line of the solve script should give the correct path to the executable. For example
#!/usr/local/bin/perlIf the first line is incorrect, a solver not found error may arise.
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.
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.
For the 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
To categorize your solver by input, choose all checkboxes that apply
at the bottom of the registration form for 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.
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 ~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.
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
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
.
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
[NEOS Support Req #****]
will appear only within the separate window for displaying that message.
What is the best way to make links to other solvers in my solver abstract or web submission help page?
In creating your solver homepage, the Server creates a base reference for
all of the links on the page. If you specify a link as <a href="">
,
that link will point to the Server home. To make a link to another
solver's web page, just insert 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 Server. This relative
linking method will make registering your solver on multiple NEOS servers easier. Also, it's less typing.