Commit Graph

9 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 066afd447a big fixes:
script_assimilator:
    in error case, pass WU name, ID, and batch ID
    if verbose, show script cmdline
sample_assimilate.py:
    write to ../sample_results/x
    use batch ID in error case
    show cmdlines if os.system() fails
2024-01-16 17:12:12 -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
Christian Beer d160c7fab5 Assimilator: cosmetic changes to usage output 2015-10-29 09:18:18 +01:00
Christian Beer dd004404a1 Daemons: add usage function to project specific handler
Projects that have there own assimilator need to implement the assimilate_handler_usage() function and should printf() a description of those custom options. For examples see sample_assimilator.cpp or script_assimilator.cpp
2015-10-13 16:39:04 +02:00
Christian Beer 0038d275cd Daemons: enhance assimilator framework
The assimilator handler can now pass unknown arguments to the project specific handler.
Projects that have there own assimilators need to implement the assimilate_handler_init() function and handle project specific arguments there. For examples see sample_assimilator.cpp or script_assimilator.cpp
I also added some checks for missing arguments and clarified some error messages.
2015-10-08 12:14:45 +02:00
David Anderson 8cd8c8e7ee server software: handle 64-bit database IDs
The SETI@home result table is about to run out of 32-bit IDs,
so we need to move to 64-bit result IDs.
This will happen to the workunit table at some point too.

I changed the server C++ code to use the "long" type for all DB IDs
(and to use appropriate conversion codes like %lu).
"long" is 64 bit on 64-bit machines.
For uniformity I did this for all tables,
even ones (like app) that will never get big.

I chose NOT to change the DB schema for now.
The new code will work with 32-bit ID fields in the DB.
As projects approach the 32-bit limit on a table they can change
its ID field, and fields that reference this table, to BIGINT.
This is likely to happen only on the result and workunit tables.
I put functions in html/ops/db_update.php
to change the IDs of these tables.
2015-07-23 10:11:08 -07:00
David Anderson 6eabd34068 server: extend script_validator and script_assimilator to pass extra args
You can arrange to pass result IDs, runtime, etc.
to your validation and assimilation scripts.  See
http://boinc.berkeley.edu/trac/wiki/ValidationSimple#Usingscriptinglanguages
http://boinc.berkeley.edu/trac/wiki/AssimilateIntro#Usingscriptinglanguages
2014-10-24 14:22:07 -07:00
David Anderson d2488ef87f server: add script_assimilator.cpp: support for script-based assimilators.
Also fix bug in script_validator.cpp
2014-10-22 10:24:40 -07:00