Параллельное решение в Minizinc из командной строки

В Minizinc IDE есть параметр параллельного решателя («Количество потоков») в разделе конфигурации. Однако при компиляции из командной строки двоичный файл mzn2fzn, похоже, не поддерживает параметр parallel. Можно ли решить параллельно из файла, скомпилированного из командной строки?


person beardc    schedule 07.01.2016    source источник
comment
Переключатель многопоточной командной строки -p принимается некоторыми серверными частями решателя MiniZinc. Однако компилятор MiniZinc является однопоточным. Это не должно быть проблемой, так как этап решения обычно требует гораздо больше вычислительной мощности, чем компиляция из MiniZinc в FlatZinc.   -  person Axel Kemper    schedule 07.01.2016
comment
Чтобы было ясно, я заинтересован в передаче опции mzn2fzn, которая сообщает бэкенд-решателю, что нужно решать параллельно, когда это возможно (я не заинтересован в параллельной компиляции программы). Но похоже, вы говорите, что этого не существует и должно указываться в каждом конкретном случае в зависимости от бэкэнд-решателя, верно?   -  person beardc    schedule 07.01.2016


Ответы (1)


Вы можете использовать MiniZinc через интегрированную среду разработки (IDE) или через вызов командной строки. Я использую IDE 2.0.8

В IDE используйте вкладку configuration, чтобы указать количество потоков, которые будут использоваться для поиска/решения. В зависимости от выбранного бэкенда вы можете получить сообщение об ошибке, что многопоточность не поддерживается для соответствующего бэкенда.

Через командную строку вы можете либо вызывать компилятор и серверную часть по отдельности, либо использовать minizinc.exe в качестве зонтичного инструмента для их последовательного вызова. Все инструменты имеют параметр командной строки --help для объяснения параметров. minizinc.exe принимает -p или --parallel для запуска бэкенда в многопоточном режиме, если он поддерживается.

person Axel Kemper    schedule 07.01.2016
comment
Я почему-то не знал о бинарнике minizinc вместо бинарников mzn2fzn + backend, но похоже, что это отвечает на мой вопрос. - person beardc; 08.01.2016