(Taken from the README of DisPyTE)
You can either start servers as python-script or as application.
-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
-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:
or read the twisted
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
In DrLiTHO this initial function is also executed by DrLiTHOProducer for
the setting of GA parameters.
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:
You may add descriptions here
-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
<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
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.
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.