| 21 | | BOINC's support for VM apps is based on a program called |
| 22 | | '''vboxwrapper''' that interfaces between |
| 23 | | the BOINC client and the !VirtualBox system. |
| 24 | | |
| 25 | | === Licensing issues === |
| 26 | | |
| 27 | | Commercial operating systems like Windows and Mac OS X |
| 28 | | have a license with a pay-per-use clause, |
| 29 | | so in general you can't use them in the VM image. |
| 30 | | Similarly, you can't include pay-per-use software such as Matlab |
| 31 | | in the VM image. |
| | 21 | BOINC's support for VM apps is based on a program called '''vboxwrapper''' |
| | 22 | that interfaces between the BOINC client and the !VirtualBox system. |
| | 23 | |
| | 24 | === Restrictions === |
| | 25 | |
| | 26 | * Commercial operating systems like Windows and Mac OS X |
| | 27 | have a license with a pay-per-use clause, |
| | 28 | so in general you can't use them in the VM image. |
| | 29 | Similarly, you can't include pay-per-user software such as Matlab |
| | 30 | in the VM image. |
| | 31 | |
| | 32 | * !VirtualBox runs only on Intel-compatible processors. |
| | 33 | If you want to support other processors (such as ARM, SPARC, etc.), |
| | 34 | you'll need to use non-VM-based app versions. |
| | 35 | |
| | 36 | * Currently you can't run GPU applications in !VirtualBox VMs. |
| | 37 | This may change in the future. |
| 51 | | === Non-Intel-compatible and GPU applications === |
| 52 | | |
| 53 | | !VirtualBox runs only on Intel-compatible processors. |
| 54 | | If you want to support other processors (such as ARM, SPARC, etc.), |
| 55 | | you'll need to use non-VM-based app versions. |
| 56 | | |
| 57 | | Currently you can't run GPU applications in !VirtualBox VMs. |
| 58 | | This may change in the future. |
| 59 | | |
| | 57 | === Packaging options === |
| | 58 | |
| | 59 | There are two ways to package VM apps. |
| | 60 | NOTE: in the following, we use '''application''' and '''application version''' |
| | 61 | with their [AppVersion BOINC-specific meanings]; |
| | 62 | we'll use '''executable''' to refer to the program that runs within the VM. |
| | 63 | |
| | 64 | * '''Single-purpose app''': Include the executable with the application version. |
| | 65 | Create a separate application for each executable you want to run. |
| | 66 | * '''Multi-purpose app''': Include the executable in each workunit. |
| | 67 | This allows you to use a single application for as many executables as you like. |
| | 68 | In this case, consider making the executable file |
| | 69 | [JobSubmission sticky]; that way, clients will download it only once. |
| | 70 | |