mirror of https://github.com/BOINC/boinc.git
5fbc198fa2
svn path=/trunk/boinc/; revision=14554 |
||
---|---|---|
.. | ||
inc | ||
ops | ||
user | ||
README | ||
create_queue.sql |
README
// This directory contains a system that allows // users to submit jobs to a BOINC project. // // Major revisions may be required to make this work // (and to make it secure) on your project. // Please read and understand all the code before using it. // // Contributed by Dr. M.F. Somers, Leiden University // // BASIC INSTALL: // // 1) add tables to database using create_queue.sql: // // mysql yourprojectdb < create_queue.sql // // 2) copy files into html directory of your project so // apache will server them: // // cp inc/* ~/Classical/html/inc (beware the user.inc might be overwritten, use diff!) // cp user/* ~/Classical/html/user // cp ops/* ~/Classical/html/ops // // 3) Make sure you have defined the following tags in your config.xml: // // <uldl_dir_fanout> // <long_name> // <bin_dir> // <download_dir> // <upload_dir> // <project_dir> // <create_work_program> // // 4) Make sure you have a WU and a result template in the template directory // for each application with the names similar to 'queue_uppercase_work_unit_template' // and 'queue_uppercase_result_unit_template'. These will be used to invoke 'make_work'. // // That shoult be it; now the queue has been setup and by default allows users to have 5 // jobslots per application. If your do not want users to be able to submit to an application // make sure you list that app (it's ID) into the new q_restricted_apps table. The new // q_users table can be used to allow users access to restricted apps or set different // limits that the default 5 jobslots. The new q_list table is the list of allw WU's that // have been submitted through the queue code... // // questions? send me a mail at m.somers@chem.leidenuniv.nl // // Example work unit template: // // <file_info> // <number> 0 </number> // </file_info> // // <workunit> // <file_ref> // <file_number> 0 </file_number> // <open_name> classical.in </open_name> // </file_ref> // // <command_line> classical.in classical.out classical.stdout </command_line> // <min_quorum> 2 </min_quorum> // <target_nresults> 2 </target_nresults> // <max_error_results> 16 </max_error_results> // <max_total_results> 16 </max_total_results> // <max_success_results> 8 </max_success_results> // <delay_bound> 43200 </delay_bound> // </workunit> // // // Example result template: // // <file_info> // <name> <OUTFILE_0/> </name> // <max_nbytes> 536870912 </max_nbytes> // <url> <UPLOAD_URL/> </url> // <generated_locally/> // <queue_tag/> // <upload_when_present/> // </file_info> // // <file_info> // <name> <OUTFILE_1/> </name> // <max_nbytes> 536870912 </max_nbytes> // <url> <UPLOAD_URL/> </url> // <generated_locally/> // <queue_tag/> // <upload_when_present/> // </file_info> // // <result> // <file_ref> // <file_name> <OUTFILE_0/> </file_name> // <open_name> classical.out </open_name> // </file_ref> // <file_ref> // <file_name> <OUTFILE_1/> </file_name> // <open_name> classical.stdout </open_name> // </file_ref> // </result> // //