From 13fd9c2cb0eaa2d0aa7827b1a94a7eea89b83d19 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 3 Nov 2002 23:18:47 +0000 Subject: [PATCH] docs svn path=/trunk/boinc/; revision=564 --- doc/platform.html | 54 +++++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/doc/platform.html b/doc/platform.html index 4ae48fa333..7e98ddc35a 100644 --- a/doc/platform.html +++ b/doc/platform.html @@ -2,7 +2,7 @@

Platforms

-Goals +

Goals

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. -Design +

Design

A platform 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 sparc_solaris2.8 should apply -ONLY to SPARC machines running Solaris 2.8 or greater. +to SPARC machines running Solaris 2.8 or greater.

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.

-Handling architectural diversity +

Application optimization for specific architectures

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.

In other words, if you want to make a version of your application that can use the AMD 3DNow instruction set, don't create a new windows_amd_3dnow platform. Instead, make a version for the windows_intelx86 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. +

-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 boinc_architecture() +

Web-site statistics breakdown by archicture

+

+BOINC collects architecture details about each completed result +to allow detailed statistical breakdowns. + +

+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. + +

+Second, applications that recognize even more specific +architecure information can pass it back to the core client +using the boinc_architecture() function from the BOINC API. This passes a string (project-specific, but typically in XML) to the core client, which records it in the architecture_xml field of the result database record. For example, the application might pass a description like

-    <
+<has_3dnow_instructions/>
+<graphics_board>ATI Rage 64MB
 
+This makes it possible, for example, to report average or total +performance statistics for 3DNow hosts constrasted +with other Intel-compatible hosts. -Avoiding platform anarchy +

Avoiding platform anarchy

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). -Tools -Each +

Tools

+

Platforms are maintained in the platform table in the BOINC DB, and can be created using the add utility. - -