[CHiPPS] parallel LP solves inside parallel branch and bound?

Yan Xu Yan.Xu at sas.com
Tue Apr 17 21:20:17 EDT 2012


A worker is 1 MPI process. At ALPS level, it is impossible to change the design so that some computing nodes are reserved to other purpose (like for LP solvers), but I guess it is not an easy change.

Another thought is to run a threaded/shared memory  LP solver (if you have) on each worker at BiCePS layer. You can overload the bound() function to use a threaded LP solver in your application.

int BlisTreeNode::bound(BcpsModel *model)
{
    BlisLpStatus status = BlisLpStatusUnknown;

    BlisModel *m = dynamic_cast<BlisModel *>(model);

    // Bounding
m->solver()->resolve();
...
}

Hope this helps,
-Yan

From: chipps-bounces at list.coin-or.org [mailto:chipps-bounces at list.coin-or.org] On Behalf Of Miles Lubin
Sent: Monday, April 16, 2012 11:23 PM
To: chipps at list.coin-or.org
Subject: [CHiPPS] parallel LP solves inside parallel branch and bound?

Hello,

How difficult would it be both conceptually and technically to implement a BiCePS layer for MILPs where the LP relaxation is solved using a distributed-memory (MPI-based) solver, supposing one exists? Does Alps make the assumption that a worker corresponds to 1 MPI process, or would some hacking need to be done at the level of, I assume, AlpsKnowledgeBrokerMPI?

I'm just doing preliminary research now, so a general response without much technical detail is more than sufficient.

Thanks!
Miles
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/chipps/attachments/20120418/73f2a82d/attachment.html>


More information about the CHiPPS mailing list