Global repository accessed by multiple threads

User 284 | 5/7/2014, 5:43:28 PM

1- For the sake of parallelism, I'm trying to run multiple threads using thread_pool and each one will insert a value to a predefined global std::set. Actually, I'm not sure how the graphlab will distribute the threads among multiple machines when running on a cluster and ensure the mutual exclusion.

2- I have a process that need to be run on a sub set of vertices concurrently, so what's the most convenient tool to use for this task ?


User 20 | 5/7/2014, 6:12:02 PM

  1. GraphLab is not a generalized distributed shared memory system. The thread_pool is local machine only and is really only a thin wrapper around pthread. Threads with the thread pool are local machine only, and you have to take care of your own mutual exclusion with the global std::set (which once again, each machine has its own independent copy of.

  2. See the GraphLab compute frameworks. (powergraph or warpgraph)