Can’t create shared memory: system shmget (Macintosh)

From BOINC Wiki
Revision as of 22:05, 29 August 2016 by Jord (talk | contribs) (adding table, fixing formatting)

BOINC science applications use shared memory to communicate with the core client, and a certain amount is reserved for each current task, whether running or waiting. The default configuration of a multi-CPU Mac (regardless of how much RAM is installed) is sometimes inadequate to support several projects at once.

If you get this error message, which is usually followed by a "Couldn't start or resume: -144" error in the current computation, it may help to set your BOINC general preference "Leave applications in memory while suspended?" to no; however, the problem will probably just become less frequent rather than being solved, and moreover some projects' applications, those that save checkpoints infrequently (or erratically), may not take well to this setting.

A better solution is available if you don't mind reconfiguring your system's kernel a little. The method, accompanied by a more detailed description of the issue, is outlined in Configuring Shared Memory on Mac OS X from Spy Hill Research (hosts of the BOINC Pirates@home project). It involves creating a text file /etc/sysctl.conf that contains the following commands:

kern.sysv.shmmax=16777216 kern.sysv.shmmin=1 kern.sysv.shmmni=128 kern.sysv.shmseg=32 kern.sysv.shmall=4096 and rebooting the computer. This will quadruple the default allocation of shared memory.

Note that the problem may manifest with slightly different error messages: "Can't create shared memory: system shmat" followed by "Couldn't start or resume: -146".


Original writer Original FAQ Date
Odysseus 276 16-09-2007