Commit Graph

21 Commits

Author SHA1 Message Date
David Anderson 219a540550 client: get rid of the use of memset() to initialize structs to zero.
Instead: declare a static const instance (whose data members are zero)
and copy that.
This avoid the error-prone need to assign each member,
and it works even if there are virtual function tables.
2019-11-05 00:16:02 -08:00
David Anderson 42979fc8f9 remote job submission: add optional "job params" for batchs
This lets you specify the rsc_* parameters and delay bound in the submit call.
2018-03-18 23:25:26 -07:00
David Anderson c0de76d4be Remote job submission: support app_version_num argument
Change the submit_batch RPC, and the various bindings of it (PHP, Python, C++)
to support an app_version_num arg,
specifying which app version number should be used to process the jobs in the batch.
2017-08-17 23:55:15 -07:00
David Anderson 13a5b9bf3e change multiple-inclusion guard names to BOINC_FILENAME_H 2017-04-07 23:54:49 -07:00
David Anderson f5c64abac0 Condor GAHP: add extensions to input file names
The content-based file management system used by Condor GAHP
used a file's MD5 hash as its physical name.
This caused problems for Einstein@home because their app
expected filenames with particular extensions.
So I:

- changed the docs and param names of the C++ interface
  to the file management system (query_files() and upload_files())
  to clarify that the physical file names can include additional text
  besides the MD5 hash.
- changed the BOINC GAHP to look for filename extensions,
  and append these to the physical filenames
2016-07-22 16:10:23 -07:00
David Anderson cd87e03c5e remote job submission, C++ interface: support remote input files
This is a first step toward letting Condor job submissions
have remote input files.
Todo: change the GAHP protocol to specify this.
2016-07-22 13:51:04 -07:00
David Anderson d2c91e16dd client, condor, remote submit: fix a few Coverity warnings 2015-10-14 10:29:15 -07:00
David Anderson 01b78c714a Remote job submission: allow efficient batch query
The batch query call used by Condor (query_batch_set(), in the C++ API)
returned info about all the jobs in the set of batches,
even those that hadn't changed.
This is potentially inefficient - a query might return info
about 10,000 jobs, only a few (or none) of which have changed state
since the last call.

Solution: add a "min_mod_time" parameter to the call.
Only jobs that have changed state since that time are reported.
Also, add a "server_time" field to the return,
giving the current time on the server
(in case there's clock skew between client and server)

Also, fix some text scrambling introduced in previous checkin;
there must have been a gremlin in my vim.
2014-01-16 10:24:10 -08:00
David Anderson 590bbf517a Client: for VM apps, use rsc_memory_bound as the working set size.
On Windows, the working-set size reported by the OS for VM apps is too low.
Apparently the RAM usage is in fact roughly the VM size.
This can lead to running multiple VM apps,
which use more RAM than is available, causing performance problems.
Solution: use workunit.rsc_memory_bound as the working set size for VM apps.
(Note: for now, a VM app is one where the plan class includes "vbox").
2013-10-22 22:21:13 -07:00
David Anderson 438cd78b13 Remote job submission: add C++ APIs for query_batches() and query_batch()
- Add program (tools/remote_submit_test.cpp) for testing C++ API for remote job submission.
- Rename Condor-specific API to query_batch_set().
2013-10-22 15:27:34 -07:00
David Anderson 03cc6849c7 remote job submission: add C++ interface to estimate_batch function 2013-10-21 23:40:30 -07:00
David Anderson 7336bfd9ba Remote job submission, C++ API: simplify 2013-10-08 17:36:45 -07:00
David Anderson 2a2c9c4ad8 remote job submission: add notion of "expire time" for batches (for Condor)
- Batches now have optional "expire time".
  If this time passes and the batch is not retired, abort and retire it.
- Add script "expire_batches" which enforces the above.
  Run it as a periodic task.
- Add a web RPC for setting the expire time of a batch
  (it can be changed multiple times)
- Add a C++ interface for this RPC
- Add a BOINC_SET_LEASE command to the BOINC GAHP
  ("lease" is Condor term for expire time)
2013-09-17 13:35:55 -07:00
David Anderson 213bb934a7 Condor interface changes
BOINC_QUERY_BATCHES now prints, for each queried batch,
    a count of jobs followed by the jobs
BOINC_ABORT_JOBS takes a list of jobs, which may belong to different batches.
    The handler for this looks up the batches and makes sure
    the jobs belong to the user.
2013-05-30 23:38:33 -07:00
David Anderson ff261cb6df Condor interface: bug fixes; add request_gen script; add retire_batch command 2013-05-30 09:44:58 -07:00
David Anderson a78705a8d4 - client emulator: ignore non-CPU-intensive apps
- remote job submission:
    - prefix error messages with "BOINC server:"
      so higher levels can tell where the error is coming from
    - "get templates" RPC can take job name instead of app name
- Condor interface
    - add BOINC_SELECT_PROJECT function
    - BOINC_SUBMIT no longer has info about output files
    - Change BOINC_FETCH_OUTPUT semantics
2013-03-22 22:04:35 -07:00
David Anderson d95da0f75c - Condor integration:
- change "query_batch" to "query_batches"; allow multiple batches
    - add "ping server" web RPC and GAHP function
    - change BoincDb::get() so that it generates XML error message if needed
2013-03-22 10:25:39 +01:00
David Anderson bd8ecb1b00 - Condor integration:
- add Web RPC for querying a completed job (returns status,
        stderr out, run times, etc.)
    - support Jaime's changes to GAHP protocol
    - support for zipped output files
2013-03-15 13:38:44 +01:00
David Anderson 72d38818b4 - BOINC/Condor stuff
- C++ interfaces to remote functions: add error_msg argument,
    so caller can get textual description of error
2013-03-07 11:31:39 +01:00
David Anderson 29444b3edb - remote job submission: add a web RPC for getting an app's templates
(can use this to consistency-check job submission info)
2013-03-07 11:31:38 +01:00
David Anderson d6c92d870c - Code cleanup for remote job submission
- Add abort_jobs operation to BOINC GAHP
- Change batch-related RPCs so that you can identify batch
    either by database ID or name
2013-03-05 17:15:18 +01:00