Время выполнения скрипта на разных компьютерах (python 3.5, miniconda)

Я столкнулся со следующей проблемой: на компьютере (номер 2) время выполнения скрипта значительно больше, чем на другом компьютере (компьютер 1).

  • Компьютер 1 — i3 — ЦП 4170 @ 3,7 ГГц (4 ядра), 4 ГБ ОЗУ (время выполнения 9,5 минут)
  • Компьютер 2 - i7 - 3,07 ГГц (8 ядер), 8 ГБ ОЗУ (время выполнения 15-17 минут)

Я использую Python для обработки файлов Excel. Я импортирую для этих трех библиотек:

  • xlrd, xlsxwriter, win32com

Почему время выполнения отличается? Как я могу это исправить?


person Anton Aleksandrov    schedule 03.08.2016    source источник
comment
FWIW, ваш «более быстрый компьютер» имеет больше ГГц на ядро ​​(3,7 против 3,07). Python использует только одно ядро ​​из-за Global Interpreter Lock (GIL), поэтому чем больше ГГц на ядро, тем быстрее ваш скрипт.   -  person Nander Speerstra    schedule 03.08.2016


Ответы (2)


Как объясняется в комментарии, Python использует глобальную блокировку интерпретатора (GIL). Как указано в Wiki: «Интерпретатор, использующий GIL, всегда позволяет точно одному потоку выполняться за раз, даже если он работает на многоядерном процессоре».

Ваш процессор i3 может иметь «только» 4 ядра вместо 8 ядер в вашем i7, но Python будет использовать только 1 поток за раз: поэтому чем быстрее ядро, тем быстрее выполняется ваш скрипт. Как поясняется на этой странице: "Скорость процессора определяет, сколько вычислений он может выполнить. за одну секунду. Чем выше скорость, тем больше вычислений он может выполнить, тем самым делая компьютер быстрее».

person Nander Speerstra    schedule 03.08.2016

Он работает на одном ядре, у компьютера1 более высокая тактовая частота = более быстрая однопоточная обработка.

person Levente Csóka    schedule 03.08.2016