jump to navigation

Generating work on BOINC June 27, 2008

Posted by genetical in boinc.
Tags: , , , , ,
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

Edge generator June 3, 2008

Posted by genetical in Genetic Algorithms.
Tags: , , ,
add a comment

We made a class, Util.java that takes two ArrayLists of objects that represent open nodes of two molecules as ArrayLists, and creates a random number of edges limited by the molecule that has less available nodes (smaller ArrayList). Each edge is generated by selecting a random node from each molecule’s ArrayList and pairing them together in another ArrayList of Object arrays. After a node is selected, it is removed from the molecule’s respective ArrayList. This process is repeated as many times as we have randomly selected the number of edges to be. We also created a driver class called Driver.java which sent test input that ran successfully.

-Chris