mirror of https://github.com/BOINC/boinc.git
parent
9b18969326
commit
13fd9c2cb0
|
@ -2,7 +2,7 @@
|
|||
<body bgcolor=ffffff>
|
||||
<h2>Platforms</h2>
|
||||
|
||||
<b>Goals</b>
|
||||
<h3>Goals</h3>
|
||||
<p>
|
||||
BOINC is intended to accommodate participant hosts
|
||||
with a wide range of operating systems and hardware architectures.
|
||||
|
@ -25,7 +25,7 @@ The combinatorial explosion of versions and architectures should be
|
|||
excluded from the internals of BOINC.
|
||||
</ul>
|
||||
|
||||
<b>Design</b>
|
||||
<h3>Design</h3>
|
||||
<p>
|
||||
A <b>platform</b> is a compilation target.
|
||||
A set of platforms is maintained in the BOINC database of each project.
|
||||
|
@ -51,7 +51,7 @@ Examples might include:
|
|||
The name of a platform should specify a particular version (e.g. of an OS)
|
||||
only if it uses features new to that version.
|
||||
For example, the platform <b>sparc_solaris2.8</b> should apply
|
||||
ONLY to SPARC machines running Solaris 2.8 or greater.
|
||||
to SPARC machines running Solaris 2.8 or greater.
|
||||
|
||||
<p>
|
||||
For simplicity, platforms are assumed to be mutually exclusive:
|
||||
|
@ -70,46 +70,60 @@ Application developers will have to create versions
|
|||
for both 2.6 and 2.7, even if they're identical.
|
||||
|
||||
<p>
|
||||
<b>Handling architectural diversity</b>
|
||||
<h3>Application optimization for specific architectures</h3>
|
||||
|
||||
<p>
|
||||
BOINC allows applications to exploit specific architectures,
|
||||
but shifts the burden of recognizing the the architecture
|
||||
to the application developer.
|
||||
but places the burden of recognizing the architecture
|
||||
on the application developer.
|
||||
|
||||
<p>
|
||||
In other words, if you want to make a version of your application
|
||||
that can use the AMD 3DNow instruction set,
|
||||
<i>don't</i> create a new <b>windows_amd_3dnow</b> platform.
|
||||
Instead, make a version for the <b>windows_intelx86</b> platform
|
||||
that recognizes when it's running a a 3DNow machine,
|
||||
that recognizes when it's running on a 3DNow machine,
|
||||
and branches to the appropriate code.
|
||||
|
||||
<p>
|
||||
It is, however, desirable to report architecture back to the
|
||||
BOINC server.
|
||||
This makes it possible, for example, to report average or total
|
||||
performance statistics for 3DNow hosts constrasted
|
||||
with other Intel-compatible hosts.
|
||||
This is done using the <b>boinc_architecture()</b>
|
||||
<h3>Web-site statistics breakdown by archicture</h3>
|
||||
<p>
|
||||
BOINC collects architecture details about each completed result
|
||||
to allow detailed statistical breakdowns.
|
||||
|
||||
<p>
|
||||
First, the core client attempts to find
|
||||
the CPU vendor, the CPU model,
|
||||
the OS name, and the OS version.
|
||||
These are stored in the host record.
|
||||
|
||||
<p>
|
||||
Second, applications that recognize even more specific
|
||||
architecure information can pass it back to the core client
|
||||
using the <b>boinc_architecture()</b>
|
||||
function from <a href=api.html>the BOINC API</a>.
|
||||
This passes a string (project-specific, but typically in XML)
|
||||
to the core client, which records it in the
|
||||
<b>architecture_xml</b> field of the <b>result</b> database record.
|
||||
For example, the application might pass a description like
|
||||
<pre>
|
||||
<
|
||||
<has_3dnow_instructions/>
|
||||
<graphics_board>ATI Rage 64MB</graphics_board>
|
||||
</pre>
|
||||
This makes it possible, for example, to report average or total
|
||||
performance statistics for 3DNow hosts constrasted
|
||||
with other Intel-compatible hosts.
|
||||
|
||||
|
||||
<b>Avoiding platform anarchy</b>
|
||||
<h3>Avoiding platform anarchy</h3>
|
||||
<p>
|
||||
Each BOINC project is free to create its own platforms.
|
||||
To avoid anarchy, however,
|
||||
To avoid anarchy, however, we recommend that
|
||||
platform creation and naming be coordinated by a single group
|
||||
(currently the SETI@home project at UCB).
|
||||
|
||||
|
||||
<b>Tools</b>
|
||||
Each
|
||||
<h3>Tools</h3>
|
||||
<p>
|
||||
Platforms are maintained in the <b>platform</b> table in the BOINC DB,
|
||||
and can be created using the <a href=tools_other.html>add</a> utility.
|
||||
|
||||
<p>
|
||||
|
|
Loading…
Reference in New Issue