У меня есть R-скрипты для чтения больших объемов данных CSV из разных файлов, а затем выполнять задачи машинного обучения, такие как SVM для классификации.
Существуют ли какие-либо библиотеки для использования нескольких ядер на сервере R.
или
Каков наиболее подходящий способ достижения этого?
r
parallel-computing
multicore
Mohans
источник
источник
Ответы:
Если это на Linux, то самым простым является многоядерный . Кроме того, я предлагаю взглянуть на MPI (особенно с пакетом снега ).
В целом, посмотрите на:
Наконец, я рекомендую использовать пакет foreach для абстрагирования параллельного бэкэнда в вашем коде. Это сделает его более полезным в долгосрочной перспективе.
источник
Если вы используете GNU / Linux, предыдущие ответы Шейна и Дирка великолепны.
Если вам нужно решение для Windows, в этом посте есть одно:
Параллельная многоядерная обработка с R (в Windows)
Хотя пакет еще не на CRAN. его можно скачать по этой ссылке.
источник
Шейн прав. Оба многоядерных и Rmpi являются победителями.
Чуть более широкий охват этой темы представлен в представлении задач CRAN по высокопроизводительным вычислениям . Это также связано с недавней обзорной статьей о параллельных вычислениях с R из JSS.
И наконец, несколько практических примеров и советов содержатся в учебнике « Введение в HPC с R», который я даю время от времени - см. На моей странице презентаций самую свежую копию с прошлой недели на сайте useR.
источник
Я заметил, что в предыдущих ответах отсутствуют общие соображения HPC.
Прежде всего, ни один из этих пакетов не позволит вам запустить один SVM параллельно. Так что вы можете ускорить оптимизацию параметров или перекрестную проверку, но вы должны написать свои собственные функции для этого. Или, конечно, вы можете запустить задание для разных наборов данных параллельно, если это так.
Вторая проблема - память; если вы хотите распределить вычисления по нескольким физическим компьютерам, бесплатный обед не требуется, и вы должны скопировать данные - здесь вы должны рассмотреть, имеет ли смысл заранее распространять копию данных между компьютерами, чтобы сохранить связь. С другой стороны, если вы хотите использовать несколько ядер на одном компьютере, особенно подходит многоядерный, поскольку он позволяет всем дочерним процессам получать доступ к памяти родительского процесса, что позволяет сэкономить некоторое время и много места в памяти.
источник
sprint
для R с функциейpsvm
, но они немного отстают от того, чтобы идти в ногу с изменениями в R 3.0 и новыми рекомендациями по представлению CRAN, поэтому текущая загрузка не доступна ни в CRAN, ни полностью совместима с R 3.0. Ваш пробег может варьироваться.Ответы Шейна и Дирка - точные.
Тем не менее, вы можете взглянуть на коммерческую версию R, которая называется Revolution R и предназначена для работы с большими наборами данных и работает на нескольких ядрах. Это программное обеспечение бесплатно для ученых (что может быть в вашем случае, я не знаю)
источник