Algorithm Engineering for very large graphs
Very large graphs arise naturally in such diverse domains as social networks, web search, computational biology, machine learning and more. Even simple tasks like traversing these graphs become challenging once they cannot be stored in the main memory of one machine. If the graph is stored in external memory, then many algorithms that perform very well on graphs that are stored in internal memory, become inefficient because of the large number of I/Os they incur. In order to alleviate the I/O bottleneck, many external memory graph traversal algorithms have been designed with provable worst-case guarantees. In the talk I highlight some techniques used in the design and engineering of such algorithms and survey the state-of-the-art in I/O-efficient graph traversal algorithms. I will also report on recent work concerning the generation of massive scale free networks like social networks, protein-protein interaction networks or semantic networks under resource constraints.