wiki:AppCoprocessor

Version 9 (modified by davea, 10 years ago) (diff)

--

Applications that use coprocessors

This document describes BOINC's support for applications that use coprocessors such as

  • GPUs
  • Cell SPEs

We'll assume that these resources are allocated rather than scheduled: i.e., an application using a coprocessor has it locked while the app is in memory, even if the app is suspended by BOINC or descheduled by the OS.

The BOINC client probes for coprocessors and reports them in scheduler requests. The XML looks like:

<coprocs>
   <coproc_cuda>
      <count>1</count>
      <name>GeForce 8800 GT (1)</name>
      <totalGlobalMem>...</totalGlobalMem>
      ...
   </coproc_cuda>
</coprocs>

Questions

  • How does BOINC know if non-BOINC applications are using resources?

Possible future additions

  • Allow app_versions to specify min and max requirements (and have a corresponding allocation scheme in the client).
  • Let projects define their own resources, unknown to BOINC, and have "probe" programs (using the assigned-job mechanism) that surveys the resources on each host.
  • Store the resource descriptions in the DB (or maybe flat files), so that you can study your host population.