Працюючи над проектами, які часто можна назвати "середніми даними", я зміг паралелізувати свій код (в основному для моделювання та прогнозування в Python) на єдиній системі з будь-якого місця від 4 до 32 ядер. Тепер я дивлюся на масштабування кластерів на EC2 (можливо, StarCluster / IPython, але також відкритий для інших пропозицій), і мене спантеличив, як узгодити розподіл роботи по ядрах на екземпляр порівняно з екземплярами кластера.
Чи можливо навіть паралельно застосовувати між окремими примірниками, а також по всіх ядрах у кожному екземплярі? Якщо так, чи може хто-небудь дати швидке завершення плюсів і мінусів запуску багатьох екземплярів з декількома ядрами в порівнянні з кількома екземплярами з багатьма ядрами? Чи існує правило визначення правильного відношення екземплярів до ядер на екземпляр?
Пропускна здатність та оперативна пам’ять є нетривіальними проблемами в моїх проектах, але це легко помітити, коли вони є вузькими місцями та переналагодженими. Думаю, набагато важче порівняти правильну суміш ядер з екземплярами без повторного тестування, і мої проекти занадто сильно відрізняються, щоб будь-який єдиний тест застосувати до всіх обставин. Дякую заздалегідь, і якщо я щойно не зміг переглянути гугл на цьому, сміливо вкажіть мене на правильну відповідь десь ще!