Lavorando su quelli che spesso si potrebbero definire progetti di "dati medi", sono stato in grado di parallelizzare il mio codice (principalmente per la modellazione e la previsione in Python) su un singolo sistema attraverso un numero di core compreso tra 4 e 32. Ora sto cercando di passare ai cluster su EC2 (probabilmente con StarCluster / IPython, ma aperto anche ad altri suggerimenti), e sono rimasto perplesso su come conciliare la distribuzione del lavoro tra i core su un'istanza rispetto alle istanze su un cluster.
È anche pratico parallelizzare tra le istanze e tra i core di ciascuna istanza? Se è così, qualcuno può dare una rapida carrellata dei pro + contro dell'esecuzione di molti casi con pochi core ciascuno rispetto a pochi casi con molti core? Esiste una regola empirica per scegliere il giusto rapporto tra istanze e core per istanza?
La larghezza di banda e la RAM sono preoccupazioni non banali nei miei progetti, ma è facile individuare quando si tratta di colli di bottiglia e riaggiustamenti. Immagino che sia molto più difficile paragonare il giusto mix di core alle istanze senza ripetuti test, e i miei progetti variano troppo per ogni singolo test da applicare a tutte le circostanze. Grazie in anticipo, e se non sono riuscito a cercarlo correttamente su Google, sentiti libero di indicarmi la risposta giusta da qualche altra parte!