2004-06-09 19:09:16 +00:00
|
|
|
<?php
|
2003-08-19 06:44:58 +00:00
|
|
|
require_once("docutil.php");
|
|
|
|
page_head("Platforms");
|
|
|
|
echo "
|
2002-11-03 19:11:05 +00:00
|
|
|
<p>
|
2006-11-10 19:46:42 +00:00
|
|
|
The computers available to a volunteer computing project
|
2004-02-09 05:11:05 +00:00
|
|
|
have a wide range of operating systems and hardware architectures.
|
|
|
|
For example, they may run many versions of Windows
|
|
|
|
(95, 98, ME, 2000, XP) on many processors variants (486, Pentium, AMD).
|
|
|
|
Hosts may have multiple processors and/or graphics coprocessors.
|
2002-11-03 19:11:05 +00:00
|
|
|
|
|
|
|
<p>
|
2006-11-10 19:46:42 +00:00
|
|
|
A <b>platform</b> is a compilation target -
|
|
|
|
typically a combination of a CPU architecture and an operating system.
|
|
|
|
The BOINC database of each project includes a set of platforms.
|
2002-11-03 19:11:05 +00:00
|
|
|
Each platform has a <b>name</b> and a <b>description</b> of
|
2006-11-10 19:46:42 +00:00
|
|
|
the range of computers it can handle.
|
|
|
|
Each <a href=app.php>application version</a>
|
|
|
|
is associated with a particular platform.
|
|
|
|
|
2002-11-03 19:11:05 +00:00
|
|
|
<p>
|
2006-11-10 19:46:42 +00:00
|
|
|
For coherence between projects,
|
|
|
|
you should use only the following platforms:
|
|
|
|
If you want to add a different platform,
|
|
|
|
please <a href=contact.php>contact us</a>.
|
2004-02-09 05:11:05 +00:00
|
|
|
";
|
2002-11-03 19:11:05 +00:00
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
list_start();
|
|
|
|
list_heading("name", "description");
|
2006-11-10 19:46:42 +00:00
|
|
|
list_item("windows_intelx86", "Microsoft Windows (98 or later) running on an Intel x86-compatible CPU");
|
2007-03-15 19:08:22 +00:00
|
|
|
list_item("windows_x86_64", "Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU");
|
2006-11-10 19:46:42 +00:00
|
|
|
list_item("i686-pc-linux-gnu", "Linux running on an Intel x86-compatible CPU");
|
|
|
|
list_item("x86_64-pc-linux-gnu", "Linux running on an AMD x86_64 or Intel EM64T CPU");
|
2007-03-15 19:08:22 +00:00
|
|
|
list_item("ppc64-linux-gnu", "Linux running on a
|
|
|
|
<a href=http://en.wikipedia.org/wiki/Ppc64>64-bit PowerPC processor</a>");
|
2006-11-10 19:46:42 +00:00
|
|
|
list_item("powerpc-apple-darwin", "Mac OS X 10.3 or later running on Motorola PowerPC");
|
2006-04-19 18:49:54 +00:00
|
|
|
list_item("i686-apple-darwin", "Mac OS 10.4 or later running on Intel");
|
2006-11-10 19:46:42 +00:00
|
|
|
list_item("sparc-sun-solaris2.7", "Solaris 2.7 running on a SPARC-compatible CPU");
|
|
|
|
list_item("sparc-sun-solaris", "Solaris 2.8 or later running on a SPARC-compatible CPU");
|
2006-11-14 17:30:59 +00:00
|
|
|
list_item("sparc64-sun-solaris", "Solaris 2.8 or later running on a SPARC 64-bit CPU");
|
2004-02-09 05:11:05 +00:00
|
|
|
list_end();
|
|
|
|
echo"
|
2002-11-03 19:11:05 +00:00
|
|
|
|
|
|
|
<p>
|
2006-11-10 19:46:42 +00:00
|
|
|
A platform name is compiled into the BOINC client.
|
|
|
|
The client reports its platform to the scheduling server,
|
|
|
|
and the scheduling server sends work to a host only
|
2002-11-03 19:11:05 +00:00
|
|
|
if there is an application version for the same platform.
|
|
|
|
<p>
|
2006-11-10 19:46:42 +00:00
|
|
|
In some cases, you may want to associate the a single executable
|
|
|
|
with multiple platforms.
|
|
|
|
For example, a Mac/Intel host is able to run Mac/PPC applications
|
|
|
|
in emulation mode.
|
|
|
|
If you are unable to compile your application for Mac/Intel,
|
|
|
|
you can take your Mac/PPC binary and add it as a Mac/Intel app version;
|
|
|
|
this will allow Mac/Intel hosts to participate in your project.
|
|
|
|
|
2002-11-03 19:11:05 +00:00
|
|
|
|
2002-11-03 23:18:47 +00:00
|
|
|
<h3>Application optimization for specific architectures</h3>
|
2002-11-03 19:11:05 +00:00
|
|
|
|
|
|
|
<p>
|
|
|
|
BOINC allows applications to exploit specific architectures,
|
2002-11-03 23:18:47 +00:00
|
|
|
but places the burden of recognizing the architecture
|
2003-08-26 18:33:21 +00:00
|
|
|
on the application.
|
2002-11-03 19:11:05 +00:00
|
|
|
In other words, if you want to make a version of your application
|
|
|
|
that can use the AMD 3DNow instruction set,
|
2006-11-10 19:46:42 +00:00
|
|
|
don't create a new <b>windows_amd_3dnow</b> platform.
|
2002-11-03 19:11:05 +00:00
|
|
|
Instead, make a version for the <b>windows_intelx86</b> platform
|
2002-11-03 23:18:47 +00:00
|
|
|
that recognizes when it's running on a 3DNow machine,
|
2002-11-03 19:11:05 +00:00
|
|
|
and branches to the appropriate code.
|
2006-11-10 19:46:42 +00:00
|
|
|
<p>
|
|
|
|
This excludes the combinatorial explosion of versions and architectures
|
|
|
|
from the internals of BOINC.
|
2002-11-03 23:18:47 +00:00
|
|
|
|
2002-11-03 19:11:05 +00:00
|
|
|
<p>
|
2003-12-24 00:50:51 +00:00
|
|
|
<h3>Web-site statistics breakdown by architecture</h3>
|
2002-11-03 23:18:47 +00:00
|
|
|
<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
|
2006-03-21 06:52:30 +00:00
|
|
|
architecture information can pass it back to the core client
|
2002-11-03 23:18:47 +00:00
|
|
|
using the <b>boinc_architecture()</b>
|
2003-10-13 19:23:40 +00:00
|
|
|
function from <a href=api.php>the BOINC API</a>.
|
2002-11-03 19:11:05 +00:00
|
|
|
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>
|
2004-02-12 01:13:47 +00:00
|
|
|
", htmlspecialchars("
|
|
|
|
<has_3dnow_instructions/>
|
|
|
|
<graphics_board>ATI Rage 64MB</graphics_board>
|
|
|
|
"), "
|
2002-11-03 19:11:05 +00:00
|
|
|
</pre>
|
2002-11-03 23:18:47 +00:00
|
|
|
This makes it possible, for example, to report average or total
|
2003-12-24 00:50:51 +00:00
|
|
|
performance statistics for 3DNow hosts contrasted
|
2002-11-03 23:18:47 +00:00
|
|
|
with other Intel-compatible hosts.
|
2002-11-03 19:11:05 +00:00
|
|
|
|
2002-11-03 23:18:47 +00:00
|
|
|
<h3>Tools</h3>
|
|
|
|
<p>
|
2002-11-03 19:11:05 +00:00
|
|
|
Platforms are maintained in the <b>platform</b> table in the BOINC DB,
|
2004-09-21 19:58:30 +00:00
|
|
|
and can be created using the <a href=tool_xadd.php>xadd</a> utility.
|
2003-08-19 06:44:58 +00:00
|
|
|
";
|
|
|
|
page_tail();
|
|
|
|
?>
|