Nano Hash - криптовалюты, майнинг, программирование

Параллельная/многоядерная обработка в R для целочисленной программы?

Существуют ли какие-либо пакеты, специально предназначенные для ускорения работы R за счет параллельных вычислений? Я сделал очень большой IP-адрес, который должен работать какое-то время, поэтому мне было интересно, есть ли в R специальный пакет, который мог бы помочь мне запустить мой IP. В настоящее время у меня есть функция, которая возвращает решение IP, и основная строка, на которой R застревает (на очень... очень долгое время), — это когда я использую lp (....all.int = TRUE). Мой ЦП составляет около 12,5% (8 ядер) на моем компьютере с Windows, и я хочу, чтобы он был около 100

Изменить: я пытался использовать пакет doParallel,

library('doParallel')
cl <- makeCluster(8)
registerDoParallel(cl)

Но использование моего процессора все еще не на 100%. Что еще мне нужно сделать? Есть ли специальный пакет, который ускоряет решение задач оптимизации? Большинство параллельных пакетов помогают с симуляцией, а foreach работает только с итеративными структурами/функциями применения. Я просто хочу, чтобы R использовал все ресурсы ЦП.


  • Вопросы, в которых нас просят порекомендовать или найти книгу, инструмент, программную библиотеку, учебное пособие или другой сторонний ресурс, не относятся к теме Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы и спам. Вместо этого опишите проблему и то, что уже было сделано для ее решения. 07.08.2015
  • Какую ОС вы используете? Какой тип процессора? При наличии Intel MKL автоматически распараллеливает математические операции. 07.08.2015
  • Я согласен с @Pascal, но смотрели ли вы результаты гугления R parallel? Одним из первых является представление задач CRAN для высокопроизводительных вычислений. , поддерживаемый Дирком Эддельбюттелем. Этот список довольно пугающий, по общему признанию. Два других топовых результата Google ссылаются на пакеты parallel, doParallel и foreach. Я предлагаю вам поэкспериментировать с каждым и, если у вас остались вопросы, задать что-то более конкретное. 07.08.2015
  • Я хотел бы повторить другим, что этот вопрос не по теме переполнения стека. Некоторые решатели упрощают параллельное решение MIP; например, Gurobi R API, который не является бесплатным, если вы в академических кругах позволяет использовать несколько ядер с помощью параметра Threads. 07.08.2015
  • Извините, я новичок в этом. Я пытался найти множество параллельных пакетов, и большинство из них связаны с кластеризацией/моделированием, чего я не уверен, чего хочу. В настоящее время мой процессор загружен на 12,5% (у меня 8 ядер), и я хочу, чтобы он был максимально загружен на 100. 07.08.2015
  • Можете ли вы рассказать больше о вашей целочисленной программе? Как говорит @josilber, если это похоже на линейную или, возможно, квадратичную целочисленную программу (например, MILP, MIQP или аналогичную) и если она нетривиальна, вы были бы сумасшедшим, если бы решили ее с помощью собственной реализации решателя, кроме как в качестве упражнения для понимания как работают такие решатели. Такие решатели, как Gurobi, Xpress и CPLEX, вероятно, будут на несколько порядков быстрее, чем любой самодельный код, если только вам не повезет или у вас не будет особых знаний о решениях, которые вы ищете. 07.08.2015
  • Я определенно пытаюсь решить в стиле MILP. Я хочу, чтобы все мои решения были целыми числами, и я использую lp() из пакета linprog в R. 08.08.2015
  • Привет @Timothy, прочитайте ответы на эти два сообщения: Один, Два 30.11.2015

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..