2011-10-07 14 views
5

Quindi questo pezzo di codice:Come eseguire multicore su un MacBook Pro con 2 core?

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

fallisce con un errore in questo modo:

__THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() 

l'errore scompare quando corro R dal terminale. Quindi è qualcosa sulla GUI che lo infrange. Sfortunatamente, condivido questo codice con i collaboratori e quindi non posso chiedere loro di eseguirlo dal terminale. Questo forum post dice Sembra che questo problema con il backend di doMC provenisse dal mio essere stato il sourcing di "/Applications/R.app/Contents/Resources/GUI- tools.R" ma non lo sto facendo intenzionalmente in R.app. C'è un modo per disattivare questo comportamento in conflitto?

Le specifiche del mio Mac: Anche in esecuzione R GUI 2.13.1. OSX 10.7.1, doMC versione 1.2.3 con 64bit R.app. Avere anche un MB Pro 2.53 con Intel Core 2 Duo

+0

Si sta eseguendo questo codice dalla GUI non corretta, giusto? –

+0

Impossibile riprodurre in R 2.13.1 con OSX 10.5.8 utilizzando doMC ver 1.2.3 all'interno del 64bit R.app –

+0

Probabilmente dovrei aggiungere alla mia descrizione di installazione: MacBookPro5,3 w/Intel Core 2 Duo (... e è necessario aggiungere alla descrizione.) –

risposta

1

Chiedere su R-SIG-Mac se si desidera una risposta reale;). Questo non ha nulla a che fare con gli strumenti della GUI, ha a che fare con il ciclo di eventi in esecuzione Cocoa nei bambini - vedi? Multicore per l'avviso sulle GUI. Potresti voler aggiornare a multicore più recenti che disabilita il loop degli eventi nella GUI (se possibile). Evita anche le chiamate grafiche Quartz nel codice che esegui.

Problemi correlati