Это больше вопрос статистики, чем что-либо еще. Без информации о функции распределения времени t
, которую необходимо выполнить для одной задачи, я мог бы лишь дать вам подсказку: вам нужно рассчитать функцию распределения как минимум t
для n
ваших задач, так как видел здесь . Используя это, вы можете рассчитать среднее значение и стандартное отклонение.
PS: это домашняя работа?
EDIT:
Стоит ли - и сколько - стоит использовать несколько ядер, зависит от нескольких вещей:
Что вам нужно сделать. Если у вас есть для запуска одной и той же программы с разными входами, запуск нескольких экземпляров имеет смысл lot . Это может не сократить общее время до 1/n
, и каждому эксперименту все равно потребуется как минимум столько же времени, как раньше, но время, необходимое для всей серии, будет значительно меньше.
Если, с другой стороны, вы надеетесь выполнить ту же задачу, например, с помощью другое семя и держите тот, который сходится быстрее всего, вы, вероятно, получите гораздо меньше, как оценивается в первой части моего ответа.
Как хорошо вы распараллелили свои задачи. n
полностью самостоятельные задачи - идеальный сценарий. n
потоков с несколькими точками синхронизации и т. Д. не будут настолько эффективными.
Насколько хорошо ваше оборудование может справиться с несколькими задачами. Например, если каждой из этих задач требуется много памяти, вероятно, будет быстрее использовать только одно ядро, чем заставлять систему использовать пространство подкачки / файл подкачки / независимо от того, что ваша ОС вызывает, запустив несколько экземпляров одновременно.