Медленное вычислительное время с помощью scipy odeint на многопроцессорной машине

Я запускаю python-скрипт на двух компьютерах разной конфигурации: ПК-1 мощнее, чем ПК-2. Проблема в том, что вычислительное время ПК-1 в два раза больше, чем у ПК-2... очевидно, я ожидал обратного!

Я думаю, что проблема связана с пакетом scipy odeint, который я использую для решения обычных уравнений в своем сценарии Python. Действительно, я использовал cProfile для сравнения двух компьютеров, и ПК-1 занимает в два раза больше времени, чем ПК-2, в функции odeint.

Вот две конфигурации: ПК-1:

  • 2 процессора Intel Xeon E5-2609 v4 (1,7ГГц, 8C, кэш 20Mo, 85Вт), 1866МГц
  • 32 ГБ RDIMM (4x8 ГБ), 2400 МГц, DDR4
  • AMD FirePro W4100, 2Гб
  • Виндовс 10 Про 64 бита

PC-2:

  • Core i5 6200U (2,30–2,40 ГГц, 2 ядра, кэш 3 Мб)
  • 8 ГБ (1x8 ГБ) 2133 DDR4
  • Intel HD Graphics 520
  • Виндовс 10 Про 64 бита

может ли это быть проблемой многоядерной архитектуры, компиляции и т. д.?

Спасибо


person RomB    schedule 13.03.2017    source источник
comment
Видеокарта не актуальна. Если у вас не хватает памяти на ПК-2, общий объем оперативной памяти не имеет значения. Код odeint будет выполняться в одном процессе, поэтому количество процессоров и количество ядер не имеет значения. Таким образом, единственными значимыми различиями в системах являются тактовая частота ЦП и размер кэша, а ЦП-2 является более быстрым ЦП.   -  person Warren Weckesser    schedule 13.03.2017
comment
Возможно, это поможет объяснить и обойти проблему.   -  person berna1111    schedule 13.03.2017
comment
Спасибо за ответ. У меня есть еще два вопроса: (i) можно ли как-то разогнать тактовую частоту процессора? (ii) Как указать odeint использовать все процессоры/ядра?   -  person RomB    schedule 15.03.2017