Нам нужно вычислить скрипт numpy/python, который выполняется в течение нескольких дней, потому что он использует огромное количество циклов для вычисления небольших массивов с плавающей точкой Numpy/Python (массив из некоторого Mo). Операции выполняются над строками, взятыми одна за другой, затем за строками и т.д.

Я был удивлен, обнаружив, что AMD APU A10-5700 @ 3.4 быстрее (около 25%), чем Xeon X5650 @ 2.7 ГГц, для вычисления таких сценариев. Скорость пропорциональна соотношению частот процессора.

Какие свойства процессора имеют значение для вычисления такого сценария? Должен ли я отдавать предпочтение CPU с высокой частотой для такого рода задач? Спасибо за входящий ответ.

edit: работа над массивами еще распараллелена с использованием pp, но без GPGPU (как opencl). Так что мой вопрос относится к одному потоку на единицу процессора.

2 ответа2

0

Если вы не используете многопоточный подход к своему скрипту Python, то любой ЦП с более высокой тактовой частотой и однопоточной производительностью в конечном итоге будет работать намного лучше, чем ЦП, разработанный для приложений, использующих несколько потоков с более низкой производительностью одного потока.

Вероятно, лучший способ повысить производительность - это переписать скрипт python, чтобы по возможности использовать несколько потоков (следите за параллелизмом). В противном случае ищите процессоры с очень высокой производительностью одного потока.

0

Более того, как написан сценарий - если он не параллелен, то наличие множества ядер не поможет, и вы просто проталкиваете одни и те же инструкции на разных тактовых частотах. Если бы вы могли найти способ разделить нагрузку между логическими процессорами, у более многоядерной архитектуры процессоров больше шансов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .