Residual belief propagation in factor graph toolkit

User 397 | 6/24/2014, 10:28:09 PM

Hi All,

I am new to graph lab, and I was trying to use the belief propagation application from the factor graph toolkit. It says in the documentation that the asynchronous engine essentially works like the Residual Loopy Belief Propagation algorithm with priorities. I was wondering, whether the asynchronous engine by itself ensures the Residual BP with priorities, or whether the scheduler needs to be explicitly set to priority scheduler for Residual BP to run. From the source code, it seemed like the default "queue_fifo" scheduler ignores the priority argument. I observed that the async engine with the default scheduler is about an order of magnitude faster than the priority scheduler in case of the belief propagation application.

Thanks!

Comments

User 397 | 6/27/2014, 4:21:53 PM

Hi All,

Any thoughts or suggestions?

Thanks!


User 121 | 7/4/2014, 3:36:38 PM

Hi Aniket, I think that scheduler does not need to be set explicitly to the priority scheduler, because From the vertex program, there is no provision to alter the priority of a particular vertex, as far as I have observed. async consistent engine has schedulerptr which can call the schedule method with vid and priority, but all those functions of asyncconsistentengine are private. Therefore, even if we set the scheduler type to priorityscheduler, I cannot understand what can we effectively achieve ? Changing number of queues per thread / Changing min_priority would not considerable impact on the speed.

Let us hear from the admins.