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-файле, и некоторые пакеты, кажется, используют его в фоновом режиме для вас. Так что больше ядер выглядит лучше при прочих равных условиях.