Generating work on BOINC June 27, 2008
Posted by genetical in boinc.Tags: boinc, create, generate, make, work, workunit
2 comments
To generate workunits, there are a few commands you must run from the project root directory (in this case: /var/lib/boinc/suboinc/). First you must move your input file to its proper location as determined by BOINC’s hashing protocol. Execute this command as super user or the boinc user (boinc user preferred – Tommy, is this all set up and ready to go?):
# cp [INFILE LOCATION AND NAME] `bin/dir_hier_path [INFILE NAME]`
For example,
# cp apps/uppercase/in-uc_LIN `bin dir_hier_path in-uc_LIN`
This moves your input file to its proper location. Now you must create your workunit:
# bin/create_work -appname [APP NAME FROM "apps" FOLDER] -wu_name [CHOOSE YOUR WORKUNIT NAME] -wu_template templates/wu_generic -result_template templates/result_generic [INFILE NAME]
For example,
# bin/create_work -appname uppercase -wu_name uc_nodelete -wu_template templates/wu_generic -result_template template/result_generic in-uc_LIN
Note, the “_nodelete” flag makes sure that file_deleter and db_purge do not remove this file, which is important if you want to use the make_work function to generate mass amounts of the same workunit for testing (done from “bin“):
# ./make_work -wu_name uc_nodelete -cushion 100 -max_wus 1000
The cushion defines how many workunits are kept in the queue at any time until the max number of workunits, 1000, is reached.
You can add this as a daemon that runs with BOINC by editing the “config.xml” file with something like:
<daemon>
<cmd>
make_work -d 3 -wu_name uc_nodelete -cushion 100 -max_wus 99999
</cmd>
</daemon>
The “-d 3” option sets it to run as a daemon and at the debug level (3). This should be listed amongst the rest of the daemons in the config file.
More “useful” reading can be found here.
-Chris