R вычисления: AMD или Intel?

Я строю офисный ПК, для которого самой тяжелой задачей будет выполнение оценок цепочки Монте-Карло Маркова (MCMC) в R. Очевидно, что это задача с интенсивным использованием ЦП, а R известен тем, что ограничен одним ядром.

Учитывая, что бюджет ограничен, какой процессор лучше подходит для этой задачи, AMD или Intel? В частности, я смотрю на Intel Core i3 4130 с двумя ядрами с тактовой частотой 3,4 ГГц и AMD FX-6300, с шестью ядрами с тактовой частотой 3,5 ГГц и разблокированным множителем. Какой из них лучше с точки зрения производительности в сложных вычислительных задачах, учитывая ограничения R?

Спасибо.

РЕДАКТИРОВАТЬ: Единственная часть информации, которую я мог найти по этому вопросу, это пункт часто задаваемых вопросов:

2.23. Почему R никогда не использует более 50% моего процессора? Это неверное прочтение сбивающего с толку диспетчера задач Windows. Вычисления R однопоточные, и поэтому он не может использовать более одного процессора. Диспетчер задач показывает не использование ЦП, а использование в процентах от видимого общего количества ЦП. Мы говорим "очевидный", поскольку он относится к так называемым "гиперпоточным" ЦП, таким как два ЦП на ядро, а большинство современных ЦП имеют как минимум два ядра.

Должен ли я понять, что если R может использовать только один поток ЦП, гиперпоточность Intel не имеет никакого значения, и, следовательно, более высокая тактовая частота AMD будет иметь преимущество?

РЕДАКТИРОВАТЬ 2: И вот несколько несколько важных тестов, хотя они не сравнивают процессоры, только скорость с и без гиперпоточности.

РЕДАКТИРОВАТЬ3: эта тема об одной и той же проблеме, хотя и в разных терминах. Хотя без особого разрешения.

РЕДАКТИРОВАТЬ 4: Я нашел ответ, но так как я сомневаюсь, что вопрос будет вновь открыт, я буду ссылаться на него здесь. Пожалуйста, смотрите мой комментарий к основному посту ниже.

Правильный ответ будет AMD (учитывая этот конкретный выбор). Если есть вычислительные трудности, например необходимость запуска очень длинных цепочек MCMC, можно использовать JAGS или BUGS с пакетами R, такими как BRugs, R2WinBUGS, runjags и rjags. В этом случае можно запустить несколько цепочек для одного и того же параметра на разных ядрах и объединить их постфактум. Это видео объясняет это. Чем больше ядер, тем больше цепочек, поэтому AMD с шестью ядрами предпочтительнее Intel с четырьмя (сверхпоточными) ядрами.

Например, на шестиядерном AMD я бы запускал шесть цепочек одновременно:

library(R2WinBUGS)
re.sim<-bugs(data, inits, parameters, "model.bug", n.chains=6, n.iter=100000,
n.burnin=3000, n.thin=2, debug=F, program="openbugs")

На процессоре Intel я смог бы запустить только четыре цепочки одновременно и с более низкой тактовой частотой. Интересно отметить, что библиотека runjags допускает параллельное выполнение, в том числе кластеры с несколькими компьютерами.

Я полагаю, что люди, которые пометили этот пост как не по теме, восприняли его как очень широкий вопрос, хотя на самом деле он чрезвычайно узкий, требующий знаний R, программного обеспечения R, с которым взаимодействует, что такое MCMC и что он делает, и как все это объединяет в отношении использования мощности процессора. Ответ, который я предоставил, вовсе не субъективен, и он напрямую связан с программированием сложных байесовских моделей в R. Принято решение о повторном открытии, пометка как не по теме, вероятно, из-за незнания того, что влечет за собой MCMC, вместо этого акцентируя внимание на "AMD против Интел "Красная сельдь.

1 ответ

Решение

В соответствии с эталонными показателями ЦП, вам лучше с AMD между двумя, независимо от того, используете ли вы пакеты параллельных вычислений в R, такие как parallel или нет.

РЕДАКТИРОВАТЬ (без комментариев и т. Д. Здесь, потому что я не могу публиковать ссылки в комментариях достаточно долго):

Гиперпоточность теоретически должна вам чем-то помочь, но, как видно из графиков в статье, она вряд ли поможет вам так же, как использование R в многоядерном действительно параллельном режиме (Revolution R делает это для вас всякий раз, когда может - именно поэтому ВОЗВРАЩАЕТСЯ намного быстрее). Вы можете использовать R на нескольких ядрах с MCMC, как указано в примере в этом PDF-файле, и некоторые пакеты, кажется, используют его в фоновом режиме для вас. Так что больше ядер выглядит лучше при прочих равных условиях.

Другие вопросы по тегам