mirror of https://github.com/BOINC/boinc.git
101 lines
3.0 KiB
Plaintext
101 lines
3.0 KiB
Plaintext
// 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>
|
|
//
|
|
//
|
|
|