Здравствуйте.
Есть такой солвер для решения задач линейного программирования как
//www.gnu.org/software/glpk/
Бесплатный удобный и сырцами и так далее.
Правда есть минус один – решает задачу он на одном ядре.
Это сильно увеличивает время вычисления – а задачи довольно большие.
Существует ли возможность разбить вычисление задачи на этом решателе?
Или же если такая возможность отсутвует -существуют ли аналоги, которые позволят выполнять задачуна нескольких ядрах…
Или же лезьть в исходники руками и думать как раскидать?
5 июля 2008 в 0:05
> Ток мне чет кажется, что их она тоже на одном ядре считать будет.
Запустить два *процесса*, считающих для подзадач и сбрасывающих результаты в файлы. Тут уж никуда не денется – ось сама по ядрам раскидает
4 июля 2008 в 22:01
Наука думала)
Просто если идти по принципу разбиения задачи на подзадачи – недалеко уже и до кластеризации =)
Просто ЛП гарантирует по итогам вычислений идеальное решение, а если разбивать, то точность результата может несколько пострадать.
На самом деле мысль хорошая, тулза позволяет одновременно запускать в отдельном потоке несколько независимых друг от друга задач. Ток мне чет кажется, что их она тоже на одном ядре считать будет.
Пойду попробую =)
4 июля 2008 в 21:03
Ох… Скачал, открыл сорцы – не советовал бы я пытаться руками раскидывать
Думаю, лучше разбить задачу ЛП на несколько задач, и запустить несколько независимых glpk для подзадач, а потом слить как-нибудь.
Как именно разбить ЛП на подзадачи – я не знаю, но наверняка современная наука об этом уже подумала