Version 20 (modified by Nicolas, 9 years ago) (diff)



A platform is a compilation target for BOINC applications - typically a combination of a CPU architecture and an operating system. Each application version is associated with a particular platform. Your project can provide application versions for any set of platforms; the more platforms you support, the more hosts will be able to participate in your project.

A given BOINC client supports one or more platforms (e.g., a Win64 client can run Win64 or Win32 applications). The client reports its platform to the scheduling server, and the scheduling server sends work to the client only if there is an application version for one of its platforms.

BOINC defines a set of platforms (see below). If you want your application to exploit specific architectural features at a finer granularity, your application must recognize the features and branch to appropriate code. 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.

Platforms are maintained in the platform table in the BOINC database. This is pre-populated with the 10 or so most common platforms. To create more, edit project.xml and add them using xadd.

Each platform has a name and a description of the range of computers it can handle. For coherence between projects, use only the following platforms. If you want to add a different platform, please contact us.

Name Description
windows_intelx86 Microsoft Windows (98 or later) running on an Intel x86-compatible CPU
windows_x86_64 Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU
i686-pc-linux-gnu Linux running on an Intel x86-compatible CPU
x86_64-pc-linux-gnu Linux running on an AMD x86_64 or Intel EM64T CPU
powerpc-linux-gnu Linux running on a 32-bit PowerPC processor
ppc64-linux-gnu Linux running on a 64-bit PowerPC processor
alpha-hp-linux-gnu Linux running on Alpha
ia64-linux-gnu Linux running on IA64 (Itanium)
sparc-sun-linux-gnu Linux running on SPARC
sparc64-sun-linux-gnu Linux running on SPARC 64-bit
powerpc-apple-darwin Mac OS X 10.3 or later running on Motorola PowerPC
i686-apple-darwin Mac OS 10.4+ running on an Intel CPU
x86_64-apple-darwin Mac OS 10.5+ running on an Intel 64-bit CPU
sparc-sun-solaris2.7 Solaris 2.7 running on a SPARC-compatible CPU
sparc-sun-solaris Solaris 2.8+ running on a SPARC-compatible CPU
sparc64-sun-solaris Solaris 2.8+ running on a SPARC 64-bit CPU
hppa-hp-hpux HPUX running on 32-bit HPPA
hppa64-hp-hpux HPUX running on 64-bit HPPA
alpha-hp-tru64 Tru64 Unix running on Alpha
ia64-hp-hpux HPUX running on IA64
powerpc-ibm-aix AIX running on PowerPC
i686-pc-freebsd FreeBSD on x86
x86_64-pc-freebsd FreeBSD on Intel-compatible 64-bit
i686-pc-openbsd OpenBSD on x86
x86_64-pc-openbsd OpenBSD on Intel-compatible 64-bit
i686-pc-solaris Solaris 2.8+ on an Intel x86-compatible CPU
x86_64-pc-solaris Solaris 2.8+ on an AMD x86_64 or Intel EM64T CPU
i586-pc-haiku Haiku on an Intel x86-compatible CPU

Most of the Unix platforms names are what's generated by config.guess. But not all of them. If config.guess generates the wrong string, use the --with-boinc-platform=NAME option to configure.