En travaillant sur ce que l'on pourrait souvent appeler des projets de "données moyennes", j'ai pu paralléliser mon code (principalement pour la modélisation et la prédiction en Python) sur un seul système à travers de 4 à 32 cœurs. Maintenant, je cherche à évoluer vers des clusters sur EC2 (probablement avec StarCluster / IPython, mais également ouvert à d'autres suggestions), et j'ai été intrigué par la façon de concilier la distribution du travail entre les cœurs d'une instance et les instances d'un cluster.
Est-il même pratique de paralléliser les instances ainsi que les cœurs sur chaque instance? Dans l'affirmative, quelqu'un peut-il donner un bref aperçu des avantages et inconvénients de l'exécution de nombreuses instances avec peu de cœurs chacune contre quelques instances avec plusieurs cœurs? Existe-t-il une règle de base pour choisir le bon rapport entre les instances et les cœurs par instance?
La bande passante et la RAM sont des préoccupations non triviales dans mes projets, mais il est facile de repérer les goulots d'étranglement et de les réajuster. J'imagine qu'il est beaucoup plus difficile de comparer la bonne combinaison de cœurs à des instances sans tests répétés, et mes projets varient trop pour qu'un seul test s'applique à toutes les circonstances. Merci à l'avance, et si je n'ai pas réussi à google celui-ci correctement, n'hésitez pas à me diriger vers la bonne réponse ailleurs!