Sì, è giusto dalla visualizzazione software.
su una singola macchina sono intercambiabili e otterrò gli stessi risultati.
Per capire 'grappolo' e 'core' in modo chiaro, vi suggerisco di pensare dal livello del 'software' 'hardware' e.
A livello di hardware, "cluster" indica le macchine connesse alla rete che possono funzionare insieme tramite comunicazioni come da socket (sono necessarie più operazioni di inizializzazione/arresto come stopCluster
indicato). Mentre 'core' significa diversi core hardware nella CPU locale e lavorano insieme in base alla memoria condivisa in genere (non è necessario inviare messaggi esplicitamente da A a B).
A livello di software, a volte il limite di cluster
e cores
non è chiaro. Il programma può essere eseguito in locale da core o remoto da cluster, e il software di alto livello non ha bisogno di conoscere i dettagli. Quindi, possiamo mixare due modalità come l'uso della comunicazione esplicita in locale come impostazione cl
in una macchina, e anche eseguire multicorpi su ciascuna macchina remota.
Torna alla tua domanda, è l'impostazione cl
o cores
uguali?
Dal software, sarà lo stesso che il programma verrà eseguito dallo stesso numero di client/server e quindi ottenere gli stessi risultati.
Dall'hardware, potrebbe essere diverso. cl
significa comunicare esplicitamente e cores
alla memoria condivisa, ma se il software di alto livello ottimizzato molto bene. Nella macchina locale, entrambe le impostazioni andranno nello stesso flusso. Ora non approfondisco lo studio doParallel
molto profondo, quindi non sono molto sicuro se questi due sono uguali.
Ma in pratica, è meglio specificare cores
per singola macchina e cl
per il cluster.
Spero che questo aiuto per voi.
Non sicuro, ma suppongo che sarai fisicamente limitato dal numero di core, ma non dal numero di cluster, cioè il numero di "copie di R in esecuzione in parallelo e che comunicano su socket". Ovviamente, i cluster potrebbero potenzialmente condividere lo stesso core, a seconda del numero di rapporti di cluster/numero di core. –
Sono tendenzialmente d'accordo con @Pascal e che non c'è differenza su una singola macchina, al di fuori di provare effettivamente cosa si può ottenere e come funzionano le cose. Se vuoi solo parallelizzare del codice, allora non dovrebbe importare in alcun modo. – LauriK