Commit Graph

15 Commits

Author SHA1 Message Date
David Anderson 87349825f9 1) Add support for BOINC Universal Docker Application (BUDA).
This lets you run arbitrary Docker applications using a single
    BOINC app (and one app version per platform).
    The Dockerfile and science executables are in the workunit.

    The script tools/submit_buda lets you test this.
    Basic tests were successful.

2) Unify the scripts for testing job submission
    The 'test' assimilators (sample_assimilate.py and sample_assimilator.cpp)
        do the same thing: they copy result files to
        <proj_dir>/results/<batch_id>/<wu_name> (if 1 output file)
        <proj_dir>/results/<batch_id>/<wu_name>_i (if >1 output file)
        where <batch_id> is 0 if WU is not in a batch
        ... and they write error code to <wu_name>_error if the WU errored out
    Scripts to submit jobs:
        submit_job
        submit_batch
        submit_buda
    Script to query jobs:
        query_job
    This works for either jobs or batches,
    as long as the app uses one of the above assimilators

3) Add plan class 'docker' to plan_class_spec.xml.sample
2024-11-12 17:49:52 -08:00
David Anderson 4539eef345 changes to support the job processing cookbook
- script_assimilator: add batch_id option
- add/fix comments
- demo_submit_batch, sample_assimilate.py: finish
-
2024-01-12 00:58:14 -08:00
David Anderson 1af87de831
Merge pull request #2058 from progger/stage_file_fix
Fixed touch md5 file path
2018-10-10 12:49:33 -07:00
lfield 5245c03d9a
Removed unused variable 2018-10-10 11:32:53 +02:00
David Anderson 924ff5dba9 Add support for pre-assigned credit
You can now pre-assign a job's credit, as described here:
https://boinc.berkeley.edu/trac/wiki/CreditOptions

Note: this feature was originally available via an
--additional_xml "<credit>xx</credit>" arg to create_work.
This is an ugly kludge; I removed it.
In fact, the --additional_xml arg should be removed at some point.

Also: change stage_file to it cd's to html/bin when including stuff;
this is needed since util_basic.inc now includes something else
2018-05-15 13:01:31 -07:00
Michael Kulabuhov 11e3db5dc0 Fixed touch md5 file path 2017-08-22 10:52:03 +07:00
David Anderson b38bf1d983 stage_file and remote file management: fix bug with .md5 file mod time
In some cases of file staging (both remote and via stage_file)
we'd do the following:
1) create the .md5 file (in check_download_file())
2) move or copy the file into the download dir

This can result in the file having a later mod time than the .md5 file,
which causes process_input_template() to reject the .md5 file.

Solution: touch the .md5 file after the move or copy
2017-05-25 20:26:36 -07:00
David Anderson eda1699d7c remote job submission: fix from Lucas 2017-02-16 10:59:32 -08:00
David Anderson 0b6cb9e0d5 input file management: standardize creation of .md5 files
Files in the download dir can have accompanying ".md5" files
containing their MD5 and size.
This eliminates the need to calculate these when creating a job using the file.

The .md5 files were being created by stage_file (local staging)
but not by remote file management.
In fact, the latter wasn't checking for file immutability violations.

I changed remote file management to add this check,
and to create the .md5 file.
The latter is done in a new function shared with stage_file.
2017-01-29 11:54:18 -08:00
David Anderson a7a05ca184 stage_file: add --verbose option 2015-03-16 13:58:08 -07:00
David Anderson 35950cf193 stage_file: if arg is a dir, stage all files in that dir 2015-03-11 12:26:24 -07:00
David Anderson c3cbf29af3 create_work: add --stdin option for more efficient batch creation
Previously if you wanted to create lots of jobs from a script (e.g. PHP)
you had to run create_work once per job.
With the --stdin option you run it once,
passing it a file (view stdin) with one line per job.
Each line can specify a command line and/or a set of input files.

On my server this gives a performance of about 1000 jobs per minute,
which is less than I would have expected,
but all the time is spent in doing MySQL inserts
so that's as good as we can do for now.

Also fix a bug in stage_file.
2014-04-07 09:07:00 -07:00
David Anderson 97229c0fcf Server: enable gzipped input files, and fix bugs in MD5 caching
The docs said that putting <gzip/> for a file in your input template
would cause it to be transferred in gzip form.
But most of the server-side implementation was missing.

- in process_input_template(), parse <gzip/>,
  and add <gzipped_url> elements to the output.
- stage_file was generating MD5 cache files containing only the MD5,
  but process_input_template() expected them to contain file size as well.
  Change stage_file to write both,
  and change process_input_template() to write an error message
  if it finds a bad MD5 file.
- remove stuff from process_input_template() related to
  "generated_locally", a feature that doesn't exist anymore.
2014-03-26 15:15:16 -07:00
David Anderson 5cbccf7126 - server: add stage_file to project setup; add error checking to stage_file 2013-03-01 15:31:42 +01:00
BOINC Admin 3da910bfda - scheduler: when adding a new HOST_APP_VERSION, check if there's already one for that (host, app, platform, plan class). If there is, use it and update the app version ID. This way, when a new app version is released, it will use the runtime and reliability statistics of the previous one, instead of starting from scratch. - add a script "stage_file" for staging an input file. This checks for immutability violations, moves or copies the file to the download hierarchy, computes and stores its MD5, and makes a gzipped version if needed. - add some files missing from git repo 2013-02-26 16:28:17 +01:00