Commit Graph

5125 Commits

Author SHA1 Message Date
Charlie Fenton ccb339841d client: Convert Mac and Haiku CPU features strings to match that returned by Linux 2013-12-01 23:44:21 -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 de9b77e51e web site translation changes 2013-11-28 00:22:54 -08:00
David Anderson 1963f5c8cc client: apply CPU throttling to all tasks except non-CPU-intensive or app version is marked as no-throttle; in particular, apply it to GPU apps regardless of their CPU usage 2013-11-24 16:07:19 -08:00
Charlie Fenton a58db314a4 client: tweaks to get_max_cpu_temperature() for Macintosh 2013-11-23 16:01:46 -08:00
Charlie Fenton f8d822e7d2 client: update get_max_cpu_temperature() for Macintosh
- Return temperature in Celsius as a double
 - Add support for (hopefully) all Macintosh models
2013-11-23 03:31:57 -08:00
David Anderson c2a34cb938 client: parse <plan_class> in app_config.xml; fix error messages; show error message if <app_version> doesn't match any app versions 2013-11-22 00:04:00 -08:00
David Anderson 44793a4fcd client: don't show "Resuming - CPU throttle" messages w/ cpu_sched flag 2013-11-21 13:55:06 -08:00
David Anderson e3646cb406 client: fix error returns for get_mac_address() on Unix 2013-11-19 11:23:38 -08:00
Charlie Fenton 8ac1d88df1 client: On Macintosh, return MAC address for first Ethernet controller only. 2013-11-19 02:13:22 -08:00
Charlie Fenton 3e52dbaf31 client: On Macintosh, return MAC address for first Ethernet controller only.
- Update Xcode project for mac_adress.cpp,.h moved from lib/ to client/
2013-11-19 01:18:32 -08:00
David Anderson 6d0d5d42f0 compile fix 2013-11-18 20:43:07 -08:00
David Anderson d441502f66 Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2013-11-18 20:36:55 -08:00
David Anderson 634613abcc client: generate host CPID as a function of MAC address
This makes the host CPID stable; if you repeatedly install BOINC
on a particular node, it will get the same host CPID each time,
and your host table won't get lots of redundant entries.
A host can have multiple NICs;
we use the MAC address of the first Ethernet controller we find,
or the last NIC if there is none.
Of course, this will create problems if we get the same MAC address
for different hosts; in principle this shouldn't happen.

Remove the unused file hostinfo_network.h
2013-11-18 20:31:14 -08:00
Charlie Fenton 969fbd7ded Fix compile breaks 2013-11-18 17:20:03 -08:00
David Anderson 20a03b71aa BOINC web site: platform icon stuff 2013-11-18 15:12:34 -08:00
Charlie Fenton 7c70f89b80 Mac: Fixes to allow minor OS versions > 9 and major OS versions > 10 2013-11-15 05:02:04 -08:00
Rom Walton 508456c449 client: --unsigned_apps_ok should cause the client to ignore file size checks as well 2013-11-14 23:20:07 -05:00
David Anderson 3d910a0190 client: message tweak 2013-11-13 21:24:16 -08:00
David Anderson 19b8fda196 client: don't delete global prefs file if we detach the project it came from. 2013-11-13 21:08:18 -08:00
David Anderson d3a199b3d3 win compile fix 2013-11-11 10:45:19 -08:00
David Anderson 0fc0f80c30 Fix win compile warnings. Let's shoot for zero warnings, OK? 2013-11-11 10:42:03 -08:00
David Anderson 43c5715729 client: parse (but ignore) <min_rpc_time> in state file 2013-11-10 18:03:15 -08:00
David Anderson d9aa54ca18 client: add is_wrapper flag to APP_VERSION. If set, the main program uses little CPU and can be run at elevated priority 2013-11-07 10:27:17 -08:00
David Anderson c77f580746 client: AMD GPU naming, from Jord 2013-11-05 19:15:54 -08:00
David Anderson f327561a19 client: tweak last commit; don't clear flags if anonymous platform 2013-11-05 14:45:17 -08:00
David Anderson 9778177448 client: clear no_rsc_apps[] flags before parsing scheduler reply. Otherwise they'll never get cleared if server doesn't explicitly send. 2013-11-05 12:56:51 -08:00
David Anderson a3b2be239f Compile fixes for C++11, from Rene Ladan 2013-11-05 09:19:27 -08:00
Charlie Fenton becaf33656 client: Remove redundant code in OpenCL CPU detection which was added in commit 8888ba6 2013-11-04 02:19:19 -08:00
David Anderson 3d644861aa client: AMD GPU detection fixes 2013-10-24 20:56:44 -07:00
David Anderson 41f2c94902 Client: limit # of slots to #CPUS*100. Also, consider an app verison a VM app if one of its files contains "vboxwrapper" 2013-10-24 14:21:30 -07:00
David Anderson 5a198b7fcb AMD GPU naming updates, from [P3D] Crashtest 2013-10-23 21:56:20 -07:00
David Anderson 45dfb684a6 Client: don't allow more than 1000 slot dirs.
There was a report of a situation where the client created unbounded slot dirs.
Not sure why this happened, but may as well impose a limit.
2013-10-23 21:37:24 -07:00
Rom Walton 61521aef4e client: Parse no_intel_gpu using the deprecated syntax for different venues. Thanks to Richard Haselgrove for pointing out the issue. 2013-10-23 15:05:15 -04: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
Rom Walton 67c4db3e66 client: Add missing reference to thread.cpp for Makefile.am 2013-10-22 14:28:51 -04:00
Rom Walton 95ef460821 android: Only execute customized benchmarks when compiling for ARM based CPUs 2013-10-22 14:26:51 -04:00
Rom Walton 1479a42a3a client: Remove build environment changes that attempted to detect Android, it wasn't needed. 2013-10-21 14:48:56 -04:00
Rom Walton 5a1d6c83fa client: only add the pthread libs if not linking for Android 2013-10-21 13:09:47 -04:00
David Anderson f20e85a45d Client: parse <no_intel_gpu> project pref; this is deprecated but Einstein@home is running old server code that sends it. 2013-10-18 11:30:33 -07: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 7cd8e531fc Client: clear project RPC backoffs on startup
I think this policy makes more sense.
2013-10-17 22:24:48 -07:00
Rom Walton bcf8ca2565 WINBUILD: Update build environment to use Visual Studio 2010. 2013-10-17 15:27:03 -04:00
David Anderson 96a85b4ab6 Move thread.cpp,h from lib/ to client/, to remove dependency on pthread in libboinc 2013-10-17 09:45:49 -07:00
David Anderson 0c8e30d0e9 Translation: update templates, and fix tools for generating templates 2013-10-15 22:46:18 -07:00
David Anderson 52152a5a4c Client: skip exclusion logic for resources that have no exclusions.
This may fix, or at least shed light on, a bug where the client
repeatedly requests work for a resources that already has plenty.
2013-10-14 14:41:59 -07:00
Charlie Fenton 544ed85aa0 client: fix Event Log descriptions of OpenCL CPUs:
- Show the OpenCL platform vendor for each OpenCL CPU description.
 - OpenCL may not reliably report total RAM, available RAM and max FLOPS for CPUs, so exclude these from the OpenCL CPU descriptions; that information is available elsewhere.
2013-10-11 03:47:56 -07:00
Rom Walton 8f637a291b bug fix 2013-10-10 16:13:18 -04:00
Rom Walton b1aaff7dd6 client: Do not use child process GPU detection when debugging. 2013-10-10 16:11:20 -04:00
Rom Walton 8888ba6aa8 client: Detect OpenCL CPUs with the latest Intel drivers.
client: Display an OpenCL CPU event log item for every OpenCL CPU detected.
2013-10-10 14:23:30 -04:00