Usage

(Taken from the README of DisPyTE)

Servers
You can either start servers as python-script or as application.

script:
-set the pythonpath to the installation directory of DisPyTE
-start server from your workingdirectory with

python .../DisPyTE-x.x.x/dispyte/common/TwistedServer.py 'port' ['niceValue']
(where ... is the installationpath e.g.: /usr/lib/python2.4/site-packages/)

on linux you may specify a niceValue, if you don't 19 is assumed

application:
-change to workingdirectory
-start server with
twistd -y .../DisPyTE-x.x.x/dispyte/application/TwistedServerApp8800.tac
if you don't want to daemonize the application, start with -ny
for more information on twistd type:
twistd --help
or read the twisted docs

Client
You need to create a python-script that fits your needs. DisPyTE comes with an example called GACrysVUnClient.py (dispyte/GACrysVUn). Stick to this when creating your own. Furthermore you can - as an option - specify a python-script with a function that is executed at all remote servers before any calculation starts. This function must return a parameter which must be used in your fitnessfunction as second argument after 'task'. See DrLiTHOClient.py in dispyte/DrLiTHO for the declaration in your client-script. In DrLiTHO this initial function is also executed by DrLiTHOProducer for the setting of GA parameters.

Running DisPyTE
After starting servers and creating the client-script you need to create a file specifying the servers which you want to use:
create a file (e.g. serverFile) with the following content:

serverName:port
You may add descriptions here
serverIPAddress:port
-and so on-

There mustn't be any blank line within the list of servers.
You can modify this file during runtime. DisPyTE will then start to use the added servers and stop using those which aren't in the list anymore. Now you can run your client-script.
If the servers need additional files for calculation which aren't in their working directory you will get an error message, (hopefully<1>) explaining what is missing.
<1>: e.g. if your fitnessfunction doesn't raise a 'meaningful' exception when it can't read a neccessary infile you may get something cryptic. In these cases you should define your own exception and raise it. Missing files won't stop DisPyTE. You can transfer them during runtime using TwistedFileSender:

python -m TwistedFileSender serverName:port fileName (with python 2.4)

python .../DisPyTE-x.x.x/dispyte/common/TwistedFileSender.py serverName:port fileName

You can add as many servers and files as you need.
e.g.:
python -m TwistedFileSender zitrone:8800 infile.crys kiefer:8800 fitfunc.py

With this call 'zitrone' and 'kiefer' will get infile.crys and fitfunc.py transferred into the working directory of the servers. After calculation you should use TwistedFileKiller for deleting the transferred and generated files. It's called the same way as TwistedFileSender. If you call it with 'multikill' instead of specific files, all files in the working directory of the server(s) will be deleted, so be careful with 'multikill'-calls.
After getting success-messages stop both with keyboard-interrupt.