You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copyright \mbox{[}2012\mbox{]} \mbox{[}Aapo Kyrola, Guy Blelloch, Carlos Guestrin / Carnegie Mellon University\mbox{]}
Licensed under the Apache License, Version 2.\-0 (the \char`\"{}\-License\char`\"{}); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \char`\"{}\-A\-S I\-S\char`\"{} B\-A\-S\-I\-S, W\-I\-T\-H\-O\-U\-T W\-A\-R\-R\-A\-N\-T\-I\-E\-S O\-R C\-O\-N\-D\-I\-T\-I\-O\-N\-S O\-F A\-N\-Y K\-I\-N\-D, either express or implied. See the License for the specific language governing permissions and limitations under the License.\hypertarget{toplist_8hpp_DESCRIPTION}{}\subsection{D\-E\-S\-C\-R\-I\-P\-T\-I\-O\-N}\label{toplist_8hpp_DESCRIPTION}
Application for computing the connected components of a graph. The algorithm is simple\-: on first iteration each vertex sends its id to neighboring vertices. On subsequent iterations, each vertex chooses the smallest id of its neighbors and broadcasts its (new) label to its neighbors. The algorithm terminates when no vertex changes label.\hypertarget{connectedcomponents_8cpp_REMARKS}{}\subsection{R\-E\-M\-A\-R\-K\-S}\label{connectedcomponents_8cpp_REMARKS}
This application is interesting demonstration of the asyncronous capabilities of Graph\-Chi, improving the convergence considerably. Consider a chain graph 0-\/$>$1-\/$>$2-\/$>$...-\/$>$n. First, vertex 0 will write its value to its edges, which will be observed by vertex 1 immediatelly, changing its label to 0. Nexgt, vertex 2 changes its value to 0, and so on. This all happens in one iteration. A subtle issue is that as any pair of vertices a$<$-\/$>$b share an edge, they will overwrite each others value. However, because they will be never run in parallel (due to deterministic parallellism of graphchi), this does not compromise correctness.