Commit Graph

138 Commits

Author SHA1 Message Date
David Anderson c6327eeb73 - client and scheduler: estimate peak FLOPS for GPUs that
are detected by OpenCL but not by native APIs (CUDA/CAL).
    This is limited by the fact that OpenCL doesn't give
    us the necessary hardware info
    (ATI; wavefrontSize; NVIDIA: compute capability).
    We use the minimum values for these,
    so in most cases we'll be underestimating the peak FLOPS.


svn path=/trunk/boinc/; revision=24346
2011-10-07 19:47:35 +00:00
David Anderson 3acc4fa77d - client/server: change field names in OPENCL_DEVICE_PROP
to match those in the clGetDeviceInfo() calls.
    Principles:
    - if there's already a name for something, use it.
    - follow case conventions


svn path=/trunk/boinc/; revision=24344
2011-10-07 18:11:52 +00:00
Charlie Fenton 3e125d15a9 client: write descriptions of OpenCL devices to stdout; work around a bug where OpenCL reports global RAM of ATI GPUs incorrectly
svn path=/trunk/boinc/; revision=24342
2011-10-07 11:45:44 +00:00
David Anderson ae3d5a85dd - scheduler: fix bug that caused scheduler to not send GPU jobs
svn path=/trunk/boinc/; revision=24338
2011-10-06 02:56:30 +00:00
David Anderson c84ede6156 - scheduler: record VirtualBox version # in the host table
svn path=/trunk/boinc/; revision=24327
2011-10-04 03:33:04 +00:00
Rom Walton 34dc62d22d - client: fix ATI GPU max mem display issue.
lib/
        coproc.cpp

svn path=/trunk/boinc/; revision=24252
2011-09-21 23:00:45 +00:00
Charlie Fenton bce695214c lib: fix compiler warning
svn path=/trunk/boinc/; revision=24218
2011-09-15 08:28:04 +00:00
David Anderson a2f6b62d97 - lib: parse <available_ram> in coproc XML
- lib: do coproc XML parsing using new XML parser


svn path=/trunk/boinc/; revision=24215
2011-09-15 04:24:40 +00:00
David Anderson 3a87fbd227 - client: report available GPU RAM to scheduler
svn path=/trunk/boinc/; revision=24213
2011-09-14 23:30:51 +00:00
David Anderson 7411dd60aa - client: change in the use of GPU available RAM:
- measure the available RAM of each GPU when BOINC starts up.
        If this fails, set available = physical.
        Show available RAM in startup messages.
    - use available RAM rather than physical RAM in selecting
        the "best" GPU instance
    - report available RAM to the scheduler
TODO: change the scheduler to use available rather than physical
    if it's reported


svn path=/trunk/boinc/; revision=24210
2011-09-14 22:45:26 +00:00
David Anderson 7f2a3c0ce1 - client: get GPU available RAM at startup (only)
- client: fix compile warning


svn path=/trunk/boinc/; revision=24188
2011-09-13 22:58:39 +00:00
Charlie Fenton a02c37cbce API: Fix compile errors and warnings, add documentation
svn path=/trunk/boinc/; revision=24101
2011-09-01 00:06:34 +00:00
David Anderson f1040e87ec - move boinc_get_opencl_ids() from lib/ to api/.
lib/ is for code that's used by >1 part of BOINC


svn path=/trunk/boinc/; revision=24093
2011-08-31 15:54:41 +00:00
Charlie Fenton f5a28b279d lib: rename boinc_getopencl_ids() to boinc_get_opencl_ids()
svn path=/trunk/boinc/; revision=24092
2011-08-31 11:18:29 +00:00
Charlie Fenton 69debb0743 lib: Add boinc_getopencl_ids() to be called by OpenCL project applications
svn path=/trunk/boinc/; revision=24091
2011-08-31 11:10:22 +00:00
Charlie Fenton 97f5146f2a define GPU_TYPE_NVIDIA, GPU_TYPE_ATI, use everywhere instead of literal strings "NVIDIA" and "ATI" to ensure uniformity
svn path=/trunk/boinc/; revision=24090
2011-08-31 11:08:13 +00:00
Charlie Fenton 01c4bb35c0 client: fix Linux compile errors
svn path=/trunk/boinc/; revision=24045
2011-08-25 08:32:56 +00:00
Charlie Fenton 2f881f920d lib: try to fix Linux build errors
svn path=/trunk/boinc/; revision=24037
2011-08-24 22:22:07 +00:00
Charlie Fenton 0e7909c97b lib, client: revert recent changes to restore unsigned long long so we can determine cause of Linux build errors
svn path=/trunk/boinc/; revision=24035
2011-08-24 21:41:02 +00:00
David Anderson aff8c96f99 - fix linux build errors in coproc stuff.
I don't think unsigned long long is relevant here.


svn path=/trunk/boinc/; revision=24031
2011-08-24 00:51:20 +00:00
Charlie Fenton 0f7ddbf9a2 Fix comment
svn path=/trunk/boinc/; revision=24029
2011-08-23 13:47:56 +00:00
Charlie Fenton 05ddd16f5e client: write / parse OpenCL info in COPROC XML data
svn path=/trunk/boinc/; revision=24028
2011-08-23 12:56:19 +00:00
Charlie Fenton 0c39d8e9d9 client: write / parse OpenCL info in COPROC XML data
svn path=/trunk/boinc/; revision=24027
2011-08-23 12:45:07 +00:00
Charlie Fenton 9256e9f4fd client: write / parse OpenCL info in COPROC XML data
svn path=/trunk/boinc/; revision=24025
2011-08-23 11:29:11 +00:00
David Anderson c5c5975b44 - Improve interface of XML_PARSER.
Add parsed_tag and is_tag to the class,
    so that parsing functions don't need to declare them
    and pass them around.
- Complete the task of using XML_PARSER as the argument
    to all parsing functions.
    (Internally, many of these functions still use the old XML parser;
    that's the next step.)


svn path=/trunk/boinc/; revision=23978
2011-08-10 17:11:08 +00:00
David Anderson 609d5665cc - client: pass XML_PARSER& rather than MIOFILE& to parse functions.
Preparatory to using new-style XML parsing everywhere.


svn path=/trunk/boinc/; revision=23975
2011-08-09 21:44:14 +00:00
David Anderson 5b419c266e - client: fix bug introduced in [23765] that produced garbage
in <coproc> elements in sched req msgs and elsewhere.
         peak_flops is a double.
         If you print it using %d, everything from that point forward
         is messed up.

svn path=/trunk/boinc/; revision=23815
2011-07-07 22:21:56 +00:00
Charlie Fenton 163978a369 lib: fill in missing entries in COPROCS GUI RPCs, ensure that old data is reset when connecting to a different host (not yet complete)
svn path=/trunk/boinc/; revision=23765
2011-06-22 11:25:06 +00:00
David Anderson 6b0eba4641 - create_work and other tools: verify that the current dir,
parent dir, or BOINC_PROJECT_DIR actually is a project dir.
- client simulator: improvements


svn path=/trunk/boinc/; revision=23415
2011-04-21 17:04:42 +00:00
David Anderson dd5618c91f - scheduler: failure to set up COPROCS structure correctly
led to per-GPU job limits not being enforced.


svn path=/trunk/boinc/; revision=23360
2011-04-11 03:19:27 +00:00
Rom Walton de7e97cc32 - lib: Bring header and implementation files into sync over the coproc parsing
function.
        
    lib/
        coproc.cpp, .h

svn path=/trunk/boinc/; revision=23303
2011-03-31 15:34:05 +00:00
Charlie Fenton a82319a2f9 client: Continue adding OpenCL support. lib: Fix inconsistent line endings in coproc.cpp
svn path=/trunk/boinc/; revision=23257
2011-03-25 12:30:49 +00:00
David Anderson 3b906a191c - client: generalize the GPU framework so that
- new GPU types can be added easily
		- users can specify GPUs in cc_config.xml,
			referred to by app_info.xml,
			and they will be scheduled by BOINC
			and passed --device N options
			Note: the parsing of cc_config.xml is not done yet.
		- RPC protocols (account manager and scheduler)
			can now specify GPU types in separate elements
			rather than embedding them in tag names
			e.g. <no_rsc>NVIDIA</no_rsc> rather than <no_cuda/>
	- client: in account manager replies, parse elements of the form
		<no_rsc>NAME</no_rsc>
		indicating the GPUs of type NAME should not be used.
		This allows account managers to control GPU types
		not hardwired into the client.
		Note: <no_cuda/> and <no_ati/> will continue to be supported.
	- scheduler RPC reply: add
		<no_rsc_apps>NAME</no_rsc_apps>
		(NAME = GPU name)
		to indicate that the project has no jobs for the indicated GPU type.
		<no_cuda_apps> etc. are still supported 
	- client/lib: remove set_debts() GUI RPC
	- client/scheduler RPC
		remove <cuda_backoff> etc. (superceded by no_app)
		Exception: <ip_result> elements in sched request
		still have <ncudas> and <natis>.
		Fix this later.

	Implementation notes:
	- client/lib: change "CUDA" to "NVIDIA" in type/variable names, and in XML
		Continue to recognize "CUDA" for compatibility
	- host_info.coprocs no longer used within the client;
		use a global var (COPROCS coprocs) instead.
		COPROCS now has an array of COPROCs;
		GPUs types are identified by the array index.
		Index zero means CPU.
	- a bunch of other resource-specific structs (like RSC_WORK_FETCH)
		are now stored in arrays, with same indices as COPROCS
		(i.e. index 0 is CPU)
	- COPROCS still has COPROC_NVIDIA and COPROC_ATI structs to hold vendor-specific info
	- APP_VERSION now has a struct GPU_USAGE to describe its GPU usage

svn path=/trunk/boinc/; revision=23253
2011-03-25 03:44:09 +00:00
David Anderson 046dc09202 - client: fix bug in setting GPU peak flops
svn path=/trunk/boinc/; revision=22950
2011-01-27 20:00:42 +00:00
David Anderson 396dc5a8b4 svn path=/trunk/boinc/; revision=22895 2011-01-12 01:17:07 +00:00
David Anderson 40c50852f5 - scheduler: fix logic that deals with jobs that need > 2GB RAM.
My change of 1 Oct ([22440]) required that such jobs
    be processed with 64-bit apps,
    on the assumption that 32-bit apps have a 2 GB user address space limit.
    However, it turns out this limit applies only to Windows
    (kernel and user mode share the 4GB address space; each gets half).
    On Linux, the split is 3GB user / 1 GB kernel.
    On Mac OS X, user mode and kernel mode have separate address spaces,
    each of them 4 GB.


svn path=/trunk/boinc/; revision=22599
2010-10-27 22:58:16 +00:00
David Anderson 3de15a592d - client simulator: various fixes
svn path=/trunk/boinc/; revision=22555
2010-10-19 15:48:33 +00:00
David Anderson f300ba4a74 - client: fix bug causing garbage values in ATI descriptions
svn path=/trunk/boinc/; revision=22446
2010-10-05 20:28:38 +00:00
David Anderson 9e0eee004e svn path=/trunk/boinc/; revision=22436 2010-09-30 22:28:19 +00:00
David Anderson c7e13eafb3 - client: write GPU info to client_state.xml,
so that it can be input file to the client simulator.

svn path=/trunk/boinc/; revision=22405
2010-09-23 20:54:49 +00:00
David Anderson 673d44ad0d - client: fix bug with --abort_jobs_on_exit that caused the client
to request new work on exit
- client: change "unparsed tag" to "unrecognized tag" in msgs
- client: get rid of unused var work_fetch_no_new_work

svn path=/trunk/boinc/; revision=22000
2010-07-19 16:44:43 +00:00
David Anderson 81973a9fff - scheduler: fix structural problems with sending user messages.
Old: various redundant and/or misleading messages were sent.
    New:
        - if host w/ no GPU contacts a GPU-only project,
            send high-pri message saying they need a GPU
        - if host w/ GPU has driver too old for all versions,
            send high-pri message saying to update driver
        - if host w/ GPU has driver too old for some versions,
            send low-pri message saying to update driver
        - if host has GPU but too little RAM for any app,
            send low-pri message saying so
- scheduler: revamp GPU plan class functions

svn path=/trunk/boinc/; revision=21760
2010-06-16 22:07:19 +00:00
David Anderson 40eebe00af - client/scheduler: in COPROCS, instead of having a vector of
pointers to dynamically allocated COPROC-derived objects,
    just have the objects themselves.
    Dynamic allocation should be avoided at all costs.

svn path=/trunk/boinc/; revision=21564
2010-05-18 19:22:34 +00:00
Rom Walton 9cb3e6ffc7 - client & lib: bring header inclusion up-to-date for the CC to begin
hunting down a memory leak.
        
    client/
        <Various Files>
    lib/
        <Various Files>

svn path=/trunk/boinc/; revision=21457
2010-05-11 19:10:29 +00:00
David Anderson e27659858d - result of code shuffle: the HOST_INFO structure returned
by the get_host_info() GUI RPC now contains GPU info

svn path=/trunk/boinc/; revision=19798
2009-12-07 06:13:17 +00:00
David Anderson b70229c093 - code shuffle: move client-specific GPU code to a separate file
svn path=/trunk/boinc/; revision=19794
2009-12-07 00:42:03 +00:00
David Anderson 4bf2ef5198 - client: add new config options:
<ignore_cuda_dev>n</ignore_cuda_dev>
    <ignore_ati_dev>n</ignore_ati_dev>
    to ignore (not use) specific NVIDIA or ATI GPUs.
    You can ignore more than one.

svn path=/trunk/boinc/; revision=19566
2009-11-12 23:44:49 +00:00
David Anderson 41f8561fb0 - Mac compile fix
svn path=/trunk/boinc/; revision=19557
2009-11-12 21:04:56 +00:00
David Anderson 8f89dc58d8 - client: fix yesterday's checkin to remove restrictions
on GUI RPC request elements.
    You can now use either <foo></foo> or <foo/>
    for empty request messages.
- GUI RPC client library: fix double-free bug.
    it's not clear how this ever worked.

svn path=/trunk/boinc/; revision=19543
2009-11-11 22:01:27 +00:00
Rom Walton 9f3283cf7c - Backout previous change. The problem doesn't yet manifest
itself on Windows and the change has too many implications.
        
    lib/
        boinc_in.h
        coproc.cpp
    win_build/
        *.vcproj

svn path=/trunk/boinc/; revision=19542
2009-11-11 20:51:03 +00:00