2011-10-07 12 views
5

Así que este trozo de código:¿Cómo ejecutar multicore en un macbook pro con 2 núcleos?

library(plyr) 
library(doMC) 
registerDoMC(cores=2) 
x=1:100 
llply(x, some_function, .parallel=TRUE) 

falla con un error de este modo:

__THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() 

el error desaparece cuando corro R desde el terminal. Entonces, es algo sobre la GUI que lo rompe. Desafortunadamente, comparto este código con colaboradores y por eso no puedo pedirles que lo ejecuten desde la terminal. Esto forum post dice Parece que este problema con el backend doMC venía de haber estado obteniendo el "/Applications/R.app/Contents/Resources/GUI- tools.R" pero no estoy haciendo eso intencionalmente en R.app. ¿Hay alguna forma de desactivar este comportamiento conflictivo?

Especificaciones de Mi Mac: También ejecuta R GUI 2.13.1. OSX 10.7.1, doMC versión 1.2.3 con R.app de 64 bits. También tiene un MB Pro 2.53 con Intel Core 2 Duo

+0

Está ejecutando este código desde la interfaz gráfica de usuario sin procesar, ¿verdad? –

+0

No se puede reproducir en R 2.13.1 con OSX 10.5.8 usando doMC ver 1.2.3 dentro de la R.app de 64bit –

+0

Probablemente debería agregar a la descripción de mi configuración: MacBookPro5,3 con Intel Core 2 Duo (... y debe agregar a su descripción.) –

Respuesta

1

Pregunte en R-SIG-Mac si quiere respuestas reales;). Esto no tiene nada que ver con las herramientas de la GUI, tiene que ver con el ciclo de eventos de ejecución de Cocoa en los niños - vea "multinúcleo" para la advertencia sobre las GUI. Es posible que desee actualizar a un multinúcleo más reciente que deshabilita el bucle de eventos en la GUI (si es posible). También evite cualquier llamada de gráficos de Quartz en el código que ejecuta.

Cuestiones relacionadas