Adding/Modifing a Solver
Two steps are required to add a new solver to the server:
1. You must first make the server aware of your solver by "registering" your solver with the server. All you need to do is fill out the submission form as per the "Detailed Instruction" given below.
2. You must then start up a communications daemon (comms-daemons) on every workstation you intend to run your solver on. The communications daemon is responsible for: a) automatically retrieving the user's data, b) calling your solver, and c) returning the solver's results to the user.
Once you complete step #1 you will be presented with instructions for completing step #2. For a quick start, you can just submit an empty form and refer to the documentation below as needed. If you are using the WWW interface, just scroll down to the bottom of this form and click "Submit." For the Submission Tool, just click "Submit" on the submission form, and for the e-mail interface just mail in the empty template included at the bottom of this file. The registration will not be complete until you have provided all of the necessary information.
1. Solver Type: Specify the type of solver. Leaving this entry blank will return to you a complete listing of types to choose from. Solver Type : 2. Solver Identifier: This identifier will be used by the server server to uniquely identify your solver. Solver Identifier: 3. Solver Name: This is the name of your solver. Solver Name : 4. Solver Password: Enter a password to prevent others from modifying your registration. Note: this password is not protected, so don't use your real account password. Solver Password: 5. Contact Person (e-mail): e-mail address of person to notify when problems with the solver occur. Contact Person (e-mail): 6. Workstations: Enter the the workstations your solver will execute on. For example:
liberty.mcs.anl.gov merlin.mcs.anl.gov fate.mcs.anl.gov
a. It tells the server what data you are expecting from the user, and what files to place this data in.
b. It tells the server how to create your submission tool and web interfaces, which support text entries, file entries, check- buttons and radiobuttons.
The following example token configuration file demonstrates some the various types of of entries. In fact, this token configuration file is the exact file used by the "Adding/Modifying a Solver" solver:
Solver Type::TYPE:NULL:TYPE Solver Identifier::SOLVER:NULL:TOKEN Solver Name::TITLE:NULL:TITLE Solver Password::PASSWORD:NULL:PASSWORD Contact Person (e-mail)::CONTACT:NULL:CONTACT Workstations (one per line):TEXT:BEGIN.STATIONS:END.STATIONS:STATIONS Token Configuration::BEGIN.CONFIG:END.CONFIG:config E-mail Help::BEGIN.HELP1:END.HELP1:help Submission Tool Help::BEGIN.HELP2:END.HELP2:socket-help WWW Help::BEGIN.HELP3:END.HELP3:explain WWW Samples::BEGIN.TRIAL:END.TRIAL:trial_config WWW Abstract::BEGIN.ABSTRACT:END.ABSTRACT:abstract WWW About URL::ABOUT:NULL:about.url
title:default value:begin token:end token:filename
Field 2 is used to present to the user a default value. Note again that only GUI users are presented with this default.
Field 5 specifies the filename that the datum should be saved in. Your solver will be expected to read in the data from this file.
Fields 3 & 4 are used to delimit the data. This is how the server parses incoming jobs, placing each datum in the appropriate file. If the data is single-line data (like a variable), then you only need one token to delimit it. For example, "Contact Person" only requires one line and thus uses the only the single token "CONTACT." An email user would then specify "Contact Person" like this:
contact = somebody@someplace
Now suppose that your data is multi-line. In this case you will need two tokens to delimit it: one for the beginning, and one for the end. For example, email users will provide their token configuration data to the "Adding/Modifying a Solver" solver like this:
BEGIN.CONFIG END.CONFIG
To activate one of checkbutton, radiobutton, or text-entry, you must specify the desired widget in field 2, just like these examples:
Function Type:RADIO.f.fg.ps:fcn.info:null:fcn.info Gradient Only:BINARY-ON:gradient:null:gradient Comments:TEXT:begin.comment:end.comment:comments
The first datum "Function Type" presents to GUI users a set of radio buttons labeled "f" "fg" and "ps". "f" is the default because it was listed first. Note that while a GUI user simply clicks the appropriate button, an email user would specify the selection like this example:
fcn.info = fg
gradient
begin.comments end.comments
<users> <hour|day|month> <limit>
#max hour 20 #max_any_one_user day 30 #max_any_one_domain month 100 /smith@net.com/ hour 3 /cs.uiuc.edu/ day 40
<description of first entry goes here without brackets> <NEXT ENTRY> <description of second entry goes here without brackets> <NEXT ENTRY> <description of third entry goes here without brackets> <NEXT ENTRY> ... <NEXT ENTRY> <description of nth entry goes here without brackets>
<HTML TEXT> <URL of example e-mail style submission> <HTML TEXT> <URL of example e-mail style submission> ...
Here's an example trial-run file:
Click here to see example 1: http://www.mcs.anl.gov/home/otc/Server/lp/example1 Click here to see example 2: http://www.mcs.anl.gov/home/otc/Server/lp/example2
If you plan to have many trial run problems, you may consider using a table of problems. You need to specify the number of columns n, provide us with n columns titles, and then list your problems as n-tuples (problem name, url, url, ..., url). Look at the following example:
<COLUMNS 4> Problem Name Method 1 Method 2 Method 3 Problem 1 http://www.mcs.anl.gov/home/otc/Server/lp/examples/a http://www.mcs.anl.gov/home/otc/Server/lp/examples/b http://www.mcs.anl.gov/home/otc/Server/lp/examples/c Problem 2 http://www.mcs.anl.gov/home/otc/Server/lp/examples/d NULL http://www.mcs.anl.gov/home/otc/Server/lp/examples/f Problem 3 http://www.mcs.anl.gov/home/otc/Server/lp/examples/g http://www.mcs.anl.gov/home/otc/Server/lp/examples/h http://www.mcs.anl.gov/home/otc/Server/lp/examples/i