<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="text-autospace:none">Hi Nathan, <o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none">I can only provide very limited support for CHiPPS due to various reasons, but will try my best to answer your questions.
<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none">To my knowledge, the only other framework for parallel general tree search algorithms is the Parallel Implicit Graph Search Library (PIGSeL), which was developed by Peter Sanders. However, I don&#8217;t know if you
 can get the code. There is a parallel branch-and-bound library called PEBBL by&nbsp; Eskstein, Phillips and Hart. The code of PEBBL can be downloaded.<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none">As to the first question, Alps relies on node numbers, msg received and sent to update search states and terminate search. When we wrote it, we didn&#8217;t expected INT is not big enough. To fix it, may need use CoinBigIndex
 (long, or long long) defined in CoinFinite.hpp in CoinUtils/src. Because your problem produces many nodes, I don&#8217;t know if parameter tuning will help. So, I suggest you try to change many of the counts to CoinBigIndex, and see if that will fix this.
<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none">As to the second question, it seems the solLimit is not implemented correctly in Alps. You may take a look at the implementation of NodeLimit in AlpsSubtree.c,<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none">Alps shares subtrees instead of nodes during load balancing. Of course, a node can be a subtree. Maybe when choose a subtree to share, can skip those are pregnant.
<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none">Hope this helps,<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none">Yan<o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:11.0pt;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> nathan.kallus@gmail.com [mailto:nathan.kallus@gmail.com]
<b>On Behalf Of </b>Nathan Kallus<br>
<b>Sent:</b> Tuesday, May 03, 2011 1:25 AM<br>
<b>To:</b> Yan Xu<br>
<b>Subject:</b> Alps help<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">Hi Yan,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">I'm not sure if you are still maintaining Alps, but I hope you can answer some of my questions about it. I've found Alps extremely useful. I haven't found any other generic parallel-ready tree&nbsp;search&nbsp;frameworks. Do any others exist that
 you know of? I would think such a framework very natural and common.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">As to my questions, firstly, I am having issues where when I run on a case with a really huge tree Alps gets stuck, or at least I think it's stuck. It reports, for example, the line &quot;Alps0096I Node 2147475765: left(4165 / 0), msg(s 496609241,
 r 496609241), inter 0, no sol, 6198 sec.&quot; again and again and again repeatedly with the only numbers changing being the wall clock and the send/recv count. The node number remains the same and as do the work quantities. Now, the node number is suspiciously
 close to MAX_INT so I'm guessing therein lies the problem. Before I go in and try and hack into the code the option for more nodes (since there aren't even that many nodes active at a time since I'm doing depth first), I was wondering if you either have an
 easy fix via parameters or some such or perhaps if you can help me patch the code and point me in the right directions.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Second, I was wondering if there are known issues with solLimit (I set it =1) when running in parallel. It seems that very often some other process will continue to work for quite a long time past the point that a solution was found (and
 Alps even reports that master requested to stop everything). I even tried to include a check at the beginning of process() that queries&nbsp;getKnowledgeBroker() and fathoms immediately if there is a solution but this didn't fix it. Got any suggestions?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Third, is there anyway to prevent nodes from being MPI_send'ed when they're pregnant after process() and before branch(). I have code that produces the offspring in process via a complicated procedure that checks feasibility and branches
 all in one (because quantities computed are necessary for both). It seems wasteful to encode these nodes when they're pregnant and they have to encode the information for their offspring's alpsnodedesc too.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks for the help and thanks for making Alps. I'd really appreciate your input on this especially on my first problem as it is rendering my code completely useless since it was essentially written for these huge cases.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Nathan.<o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>