Commit Graph

16 Commits

Author SHA1 Message Date
David Anderson 2bb3e74782 Client: fix bug involving needs_network tasks
In deciding whether to schedule needs_network tasks,
we were looking at gstate.network_suspended.
The problem is that this remains false for 5 minutes
after any GUI RPC that could generate network activity.
Instead, look at gstate.file_xfers_suspended.
2014-11-10 01:04:33 -08:00
David Anderson f3366ec5ba client: track and report network, disk, and memory usage
- store final network usage in RESULT; write/parse in state file
- final disk and memory usage weren't being written to state file; do so.
- add --network_usage option to example app, to test this stuff
2014-05-01 13:05:30 -07:00
David Anderson 1193a874ed Client: tweaks to last commit 2014-04-02 01:49:00 -07:00
David Anderson b1a6fa39fc Client: keep track of job's peak WSS, swap size, and disk usage; send to server
Also fixed a bug where, if a job was aborted while not running,
its final CPU and elapsed time weren't copied from ACTIVE_TASK to RESULT,
hence not sent to scheduler
2014-04-02 00:56:15 -07:00
David Anderson 5188d65bff client: use user-friendly GPU names in log msgs 2014-02-24 20:54:42 -08:00
David Anderson d6da81b862 client: fix bugs with CPU throttling and GPU apps
Various bad things could happen when CPU throttling was used together w/ GPU apps.
Examples:
- on a multi-GPU system, several GPU tasks are assigned to the same GPU
- a suspended GPU task remains in memory (tying up its GPU resources)
while other tasks try to use the GPU.

The problem was that parts of the code assumed that suspended
GPU processes don't exist - i.e. that when a GPU task is suspended
it's always removed from memory.
This isn't true in the presence of CPU throttling.

So I made the following changes:
- When assigning GPUs to tasks, treat suspended tasks like running tasks
  (i.e. reserve their GPUs)
- At the end of the CPU-scheduling logic, if there are any GPU tasks
  that are suspended and not scheduled, remove them from memory,
  and trigger a reschedule so we can reallocate their GPUs.

Also, a cosmetic change: in the resource usage string shown in the GUI,
include "(device X)" even if the task is suspended (i.e. because of throttling).

Also: zero out COPROC::opencl_device_indexes[] so we don't write
a garbage number to init_data.xml for non-OpenCL jobs
2013-11-29 11:44:09 -08:00
David Anderson f3ffbf67f4 GUI RPC: add cpu_time (as well as elapsed_time) to OLD_RESULT 2013-10-18 00:46:48 -07:00
David Anderson 9024f8cc18 Client: change length of old-results log from 24 hours to 1 hour 2013-09-08 12:52:10 -07:00
David Anderson d6398b0834 Client and boinccmd: fixes for get_old_results GUI RPC
- Add binding for get_old_results GUI RPC
- Add --get_old_tasks option to boinccmd
- Compile fixes for gcc (can't have a var named "or")
2013-09-08 12:11:09 -07:00
David Anderson dd7c8335f3 Client: keep an in-memory list of reported tasks in the last 24 hours, and add a GUI RPC for fetching this list 2013-09-07 18:30:05 -07:00
David Anderson 338487fd13 client: don't write name twice in job log 2013-07-14 22:56:37 -07:00
David Anderson 8949c04a77 client: add exit status and result name to job log entries 2013-07-14 13:19:22 -07:00
David Anderson c26f05a516 client: don't use FLOPS info for completion estimates of NCI jobs 2013-04-25 01:09:08 -07:00
David Anderson 24e8133e4b - tabs -> spaces 2013-04-02 17:23:37 -07:00
David Anderson 331114d961 - client: minor code shuffle
svn path=/trunk/boinc/; revision=25627
2012-04-30 21:12:35 +00:00
David Anderson bbfbef0fe8 - client: code cleanup. Move RESULT and PROJECT to separate files
svn path=/trunk/boinc/; revision=25621
2012-04-30 21:00:28 +00:00