timeout engine options not working with async engine

User 397 | 7/7/2014, 5:23:01 PM

Hi,

I am running the loopy belief propagation on an input which takes a long time to converge(in some cases does not converge at all). I am trying to use the "timeout" engine option to make sure it does not run too long. The option works fine with the synchronous engine, but it does not work for the asynchronous one. I'll appreciate any suggestions or thoughts.

Thanks!

Comments

User 560 | 8/22/2014, 12:23:07 PM

Sorry that I am not answering your question, but did you use edge consistency model to run the loopy belief propagation? If then, how did you do that?


User 6 | 8/26/2014, 7:32:46 AM

Hi, Loopy belief propagation is an algorithm which is guaranteed to converge on tree topologies. On general graphs which have cycles, it may or may not converge depends on the problem. The simplest example is a triangle graph, where you try to compute graph coloring with 2 colors. (Discrete probabilities that have two states. The edge potential forces that no two neighbors will be assigned the same color). This problem will clearly never converge since there is no assignment that satisfies the constraints.


User 33 | 8/26/2014, 2:05:38 PM

Hi, aniketc

The timeout option does not work well with asynchronous engine, since async engine only check the "timeout" when the local sched_queue is empty.

https://github.com/graphlab-code/graphlab/blob/master/src/graphlab/engine/asyncconsistentengine.hpp#L820-L823