У меня есть код, который вызывает функцию 10 раз. Выполнение функции является последовательным, поэтому только после того, как функция вернулась для первого экземпляра, она снова будет вызвана и повторяет тот же процесс еще 9 раз. Функция выполняет умножение матриц и некоторые другие вещи, которые мне нужно время для увеличения конфигурации EC2 на AWS.
То, что я наблюдал при увеличении конфигурации EC2, есть небольшое увеличение времени выполнения (около 7-10 секунд). Однако странно то, что при изменении типа экземпляра с 1 ЦП 1 ГБ ОЗУ на многопроцессорной памяти выше увеличивается скачок. После этого скачок, как упоминалось выше, составляет не более 7-10 секунд.
Может ли кто-нибудь объяснить мне, почему я сталкиваюсь с этим явлением? Почему увеличение времени выполнения с одного процессора на несколько процессоров?
Вот пример кода для моего процесса:
import sys
import datetime
then = datetime.datetime.now()
for i in range(0, 10):
foo = some_function(arg1, arg2)
print("*")
now = datetime.datetime.now() - then
print("runtime : ", now)
Вот фактическое время выполнения:
- 1-CPU 1- ГБ ОЗУ: 00: 02: 57
- 2-ЦП 16-ГБ ОЗУ: 00: 03: 43
- 4-ЦП 32- ГБ ОЗУ: 00: 03: 47
Итак, время выполнения довольно сильно возросло с (1) до (2) и незначительный скачок с (2) до (3) и так далее. Любая помощь в объяснении этого будет высоко ценится.