Ho letto che R usa solo una singola CPU. Come posso permettere a R di utilizzare tutti i core disponibili per eseguire algoritmi statistici?Come consentire a R di utilizzare tutti i core del computer?
risposta
Sì, per i principianti, vedere la Vista attività High Performance Computing su CRAN. Elenca i dettagli dei pacchetti che possono essere utilizzati a supporto del calcolo parallelo su una singola macchina.
Da R versione 2.14.0, v'è il supporto integrato per il calcolo parallelo tramite il pacchetto parallelo, che comprende versioni leggermente modificate del esistenti neve e multicore pacchetti. Il pacchetto parallelo ha una vignetta da leggere. Si può vederlo con:
vignette(package="parallel", topic = "parallel")
ci sono altri modi per sfruttare i vostri core multipli, ad esempio attraverso l'uso di un BLAS multi-threaded per i calcoli di algebra lineare.
Se tutto ciò accelera i "calcoli statistici" che si desidera fare dipenderà da cosa sono quei "calcoli statistici". Generare più thread o worker comporta un costo generale per impostarli, gestirli e raccogliere i risultati. Alcune operazioni vedono un vantaggio (alcuni grandi, alcuni piccoli) nell'utilizzo di più core/thread, altri sono rallentati a causa di questo overhead aggiuntivo.
In breve, non si aspettano di ottenere un n volte diminuiscono nel tempo di calcolo utilizzando n core invece di appena 1.
Se vi capita di fare poche iterazioni * della stessa cosa (o lo stesso codice per pochi * diversi parametri), il modo più semplice per procedere è eseguire diverse copie di R - OS per allocare il lavoro su diversi core.
Nel caso opposto, vai e scopri come utilizzare le estensioni parallele reali.
Per motivi di questa risposta, pochi mezzi meno o uguale al numero di core.
- 1. Come utilizzare tutti i core per nmake?
- 2. Come rendere R utilizzare tutti i processori?
- 3. Parallelamente. Per non utilizzare tutti i core
- 4. Come consentire a setw applicare a tutti i seguenti stdout?
- 5. Come utilizzare invokeAll() per consentire a tutti i pool di thread di eseguire le proprie attività?
- 6. F # PSeq.iter non sembra utilizzare tutti i core
- 7. Abilita Python a utilizzare tutti i core per il montaggio di modelli scikit-learn
- 8. R per non utilizzare più core
- 9. È possibile utilizzare i comandi del terminale R su un computer Mac?
- 10. Come consentire all'utente di utilizzare loadConnectedPlayers
- 11. Configurare cors per consentire tutti i sottodomini utilizzando ASP.NET Core (Asp.net 5, MVC6, VNext)
- 12. Elenca tutti i computer nella directory attiva
- 13. come ottenere tutti i sottoinsiemi fino a N in R
- 14. Consentire a Quartz.net di ignorare i fallimenti
- 15. Come faccio a convincere ruby-prof a ignorare i metodi core/gemma/core standard di Ruby?
- 16. R intersezione data.table di tutti i gruppi
- 17. Come consentire più input dall'utente usando R?
- 18. Come consentire tutti gli attributi oltre a user_id utilizzando strong_parameters?
- 19. WIN32_Processor :: Is ProcessorId Univoco per tutti i computer
- 20. Come utilizzare i servizi web di sapone in Asp.net Core?
- 21. Problema con consentire a codesign di utilizzare il mio portachiavi
- 22. Come consentire a Curl di utilizzare lo stesso cookie del browser da PHP
- 23. X509TrustManager Esegui l'override senza consentire TUTTI i certificati?
- 24. Completare rimuovere e reinstallare R, compresi tutti i pacchetti
- 25. Perché non utilizzare l'oggetto per tutti i parametri del metodo?
- 26. Come utilizzare i flag binari nei Core Data?
- 27. Come posso consentire a un Gruppo di assumere un ruolo?
- 28. Elencare l'indirizzo IP di tutti i computer connessi a una singola LAN
- 29. Rimozione di tutti i commenti da un file .r?
- 30. Come utilizzare npm con ASP.NET Core
Si noti che per visualizzare la vignetta, potrebbe essere necessario fare 'vignette (package =" parallel ", topic =" parallel ")'. Per me, se non aggiungo 'topic =' elenca solo la vignetta. –
@XuWang Sì, davvero. Intendevo dire che puoi elencarlo tramite quel codice: non ricordavo il nome dell'argomento e devo ancora passare alla 2.14.0 in ufficio. Essere solo pigri. Ma modificherà quanto sopra. Grazie. –
Nessun problema. A giudicare dalle tue molte risposte dettagliate, sei l'opposto del pigro! –