|
发表于 2006-3-31 15:30:40
|
显示全部楼层
http://boinc.berkeley.edu/platform.php
Platforms
Last modified 8:50 PM UTC, March 20 2006
Goals
The computers available to a public-resource computing project 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.
目标
公共资源计算项目所能使用到的计算机在操作系统和硬件架构上千差万别。比方说,处理器可能是486,奔腾或是AMD的芯片,Windows的版本可能是95,98,ME,2000,XP等。主机可能有多个处理器或是图形协处理器。
BOINC addresses the following goals:
BOINC 试图达到如下的目标:
Resource heterogeneity. It should be easy for projects to allow many types of hosts to participate.
资源的多样性。它使得使用多种类型的计算机都可以参加一个或多个项目。
Simplicity. The combinatorial explosion of versions and architectures should be excluded from the internals of BOINC.
简洁。版本和架构的多样性不应该影响到 BOINC 的内核。
Accounting. Enough architectural information should be stored on the server so that statistics can be broken down according to specific features.
记录。服务器上应该存储足够的架构信息以允许针对某些特性进行分类统计。
Design
A platform is a compilation target. A set of platforms is maintained in the BOINC database of each project. Each platform has a name and a description of the range of architectures it can handle. Each BOINC program (core client and application) is linked to a platform.
设计
每个平台都是一个编译目标。每个项目的 BOINC 数据库都维护了一组平台。每个平台有一个名字和一个对它所处理的架构范围的描述。每个 BOINC 程序(客户端内核和计算程序)都对应着一个平台。
At the minimum, a platform is a combination of a CPU architecture and an operating system. Examples might include:
一个平台至少应该是一种CPU架构和一种操作系统的组合。举例如下:
name description
windows_intelx86 Microsoft Windows (95 or later) running on an Intel x86-compatible processor
linux_x86 Linux running on an Intel x86-compatible processor
macos_ppc Mac OS 9.0 or later running on Motorola PowerPC
sparc_solaris Solaris 2.1 or later running on a SPARC-compatible processor
名字 描述
windows_intelx86 运行在 Intel 的 x86 兼容处理器上的微软公司的 Windows 操作系统(95或者更新的版本)
linux_x86 运行在 Intel 的 x86 兼容处理器上的 Linux 操作系统
macos_ppc 运行在摩托罗拉的 PowerPC 处理器上的苹果公司的 Mac OS 9.0 操作系统
sparc_solaris 运行在 SPARC 兼容处理器上的 Solaris 2.1 或更新的版本
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 to SPARC machines running Solaris 2.8 or greater.
如果平台在名字中指定了一个特定的版本(比如操作系统的版本),那它应该使用了那个版本中的新特性。比方说,平台 sparc_solaris2.8 应该使用在运行了2.8或更新版本的 Solaris 的 SPARC 机器上。
For simplicity, platforms are assumed to be mutually exclusive: i.e. an application for platform X is not assumed to work on a host running core client platform Y if X ≠ Y. The BOINC scheduling server will send work to a host only if there is an application version for the same platform.
简洁起见,我们假设平台是互斥的,也就是说,如果X和Y是两个不同的平台,那平台X上的计算程序应该不能和平台Y的客户端内核协同工作。BOINC 的调度服务器在分发任务包前会检查是否是同一平台的计算程序版本。
There should be as few platforms as possible. For example, suppose that there are both Solaris2.6 and Solaris2.7 platforms. Then any host running the Solaris2.6 core client will only be able to run Solaris2.6 applications. Application developers will have to create versions for both 2.6 and 2.7, even if they're identical.
平台的数目应该尽可能地少。比方说,假设现在有 Solaris2.6 和 Solaris2.7 平台。那么运行 Solaris2.6 客户端内核的用户将只能运行适用于 Solaris2.6 的计算程序,计算程序的开发人员将不得不分别为2.6和2.7创建两个版本的计算程序,即使它们是完全相同的。
Application optimization for specific architectures
针对特定架构优化计算程序
BOINC allows applications to exploit specific architectures, but places the burden of recognizing the architecture on the application.
BOINC 允许计算程序利用特定的计算机架构,而计算程序也必须负责识别这种架构。
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 on a 3DNow machine, and branches to the appropriate code.
换句话说,如果你想构建一个能利用 AMD 的3DNow 指令集的计算程序,请不要创建一个新的 windows_amd_3dnow 平台。你应该在 windows_intel86 平台上构建一个可以自动判别是否运行在 3DNow 机器上并使用相应的程序的代码的版本。
Web-site statistics breakdown by architecture
针对架构的网站统计分类
BOINC collects architecture details about each completed result to allow detailed statistical breakdowns.
BOINC 会收集每一个完成的计算结果的架构信息,从而允许详细的统计信息分类。
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.
首先,客户端内核试图会识别CPU生产商,CPU型号,操作系统名称及版本等。这些都将保存在主机记录中。
Second, applications that recognize even more specific architecture 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</graphics_board>
其次,能够识别特定架构信息的计算程序可以通过调用BOINC API中的 boinc_architecture() 函数来将信息传递给客户端内核。这样将会把一个字符串(其内容随项目不同而不同,一般是以XML格式)传递给客户端内核,而后者会将它记录在计算结果数据库记录的 architecture_xml 字段中。比如,计算程序可能会传递如下的描述:
This makes it possible, for example, to report average or total performance statistics for 3DNow hosts contrasted with other Intel-compatible hosts.
这样我们就可以得到 3DNow 主机的平均或总体计算能力,可以和 Intel 的兼容主机进行比较。
Avoiding platform anarchy
Each BOINC project is free to create its own platforms. To avoid anarchy, however, we recommend that platform creation and naming be coordinated by a single group (currently the SETI@home project at UCB).
防止平台的混乱
虽然各个项目可以创建它自己的平台,但为了避免混乱,我们建议由一个组织来对平台的创建和命名进行协调(目前这是由加州大学柏克利分校的 SETI@home 项目组来承担的)。
Tools
Platforms are maintained in the platform table in the BOINC DB, and can be created using the xadd utility.
工具
所有平台都在 BOINC 数据库的 platform 表中进行维护。可以使用 xadd 来进行创建。
[ Last edited by Youth on 2006-4-1 at 14:39 ] |
评分
-
查看全部评分
|