2014-11-12 7 views
1

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

ответ

1

Первый используйте контрольный знак (см. Главу docs) и посмотрите на графики BEST_SCORE, это даст вам много понимания. Кроме того, когда вы пытаетесь использовать приведенные ниже методы, это позволяет объективно сравнить их полезность.

  1. В отчете о контролере смотрите среднюю оценку счета в секунду. Если это ниже 1 000, это ужасно. Если он выше 10 000, это хорошо. Чтобы улучшить его, см. Главу docs о контрольном показателе stepLimit, чтобы выяснить, какое ограничение баллов (= правило балла в DRL) является узким местом.
  2. Если конструктивная эвристика (CH) занимает слишком много времени, настройте CH MoveSelectors явно (см. Главу docs о расширенной конфигурации CH) и выполните команду limited selection. Это может уменьшить количество CH с секунд до менее секунды даже с 10000 объектами за небольшую плату до итогового балла. Особенно с двумя или более переменными на сущность, ограниченный выбор может быть большим выигрышем. Стоимость итогового балла может быть
  3. Если это VRP или TSP, используйте nearbySelection для масштабирования.

Мы работаем над добавлением решения для нескольких виртуальных сетей с несколькими арендаторами (обратите внимание, что параллельное решение multi-tenant multi-vm уже возможно, если вы сделаете это самостоятельно).

+0

Благодарим за предложение относительно бенчмаркера. Просто чтобы убедиться, что я полностью вас понимаю, так что в настоящее время Optaplanner не поддерживает распространение одного задания на нескольких JVM (т. Е. Сценарии MPP)? Однако это будет поддерживаться в будущем? Если да, у вас есть временная шкала, когда она будет поддерживаться? Моя цель состоит в том, чтобы выяснить, сможет ли я получить результаты быстрее, за счет добавления большего количества аппаратного обеспечения в облачную среду. – Sheepy

+1

Многопоточное решение - моя основная задача для 6.3 (обратите внимание, что функция 6.2 замерзает, потому что она находится в CR1). Легко узнать, может ли бросить больше аппаратного обеспечения: просто дайте ему работать в 4 раза дольше в бенчмаркере и сравнивайте график BEST_SCORE в обычное время с 4-кратным более продолжительным временем. Это не будет иметь большого значения: бросать аппаратное обеспечение в np-hard проблемы не очень хорошо. –

+0

@GeoffreyDeSmet какие-нибудь хедз-ап на одном-арендаторе multi-vm? –

Смежные вопросы