Должен ли я стремиться к нескольким физическим ядрам или нескольким потокам для параллельных вычислений в R?

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

Я работаю с R (пакет parallel) в Windows. Обычно наборы данных невелики, поэтому ограничивается не память, а количество и продолжительность независимых процессов, выполняемых с данными.

Я понял, что parallel использует логические ядра (то есть аппаратные потоки), но такие потоки не работают по-настоящему параллельно, потому что они совместно используют «ресурсы выполнения» https://en.wikipedia.org/wiki/Hyper-threading. Итак, может ли, например, 4 (физических) ядра с 1 потоком привести к большей скорости (пропускной способности), чем 2 (физических) ядра с 2 потоками каждое (т.е. 4 логических ядра)?

Также приветствуются предложения по конкретным процессорам.


person Jass    schedule 23.06.2020    source источник
comment
Да, настоящие ядра лучше потоков. 2 потока иногда быстрее, чем 1, но иногда это не так.   -  person user253751    schedule 23.06.2020
comment
Отлично, спасибо @ user253751 за это практическое правило!   -  person Jass    schedule 23.06.2020


Ответы (1)


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

Проблема в том, что ограниченное количество процессоров не поддерживает логические потоки. Большинство процессоров Intel поддерживают Hyper-threading. Стоимость с процессорами HT и без них не сильно отличается. С процессором с поддержкой HT система может обрабатывать более разнообразные рабочие нагрузки. Он может работать в многозадачном режиме более эффективно.

Отключить HT можно, настроив BIOS.

person ajit    schedule 06.07.2020