Using concurrency programming to implement scalable community detection algorithms
The multinet library is one of the few software tools available for characterizing and analyzing complex systems within the more general framework of multilayer networks. The library contains functions to import/export, create and manipulate multilayer networks and implementations of several state-of-the-art multiplex network analysis algorithms, (e.g., for centrality measures, layer comparison, community detection and visualization). The current version of the library, however, has no support for concurrency.
The objective of the project is to increase the scalability of the community detection (clustering) algorithms implemented so that it can work with larger data. In particular, the students should (a) measure the limitations of the library in terms of memory and computational speed, (b) detect the possible bottlenecks (e.g., internal data structures, algorithms) and (b) implement and test a concurrency solution to increase the efficiency of one of the community detection algorithms. The candidate must have an advance knowledge of programming in C++ and concurrent programming.
Link to public repository of the multinet library: https://bitbucket.org/uuinfolab/uunet
Supervisors: Davide Vega (davide.vega@it.uu.se) and Matteo Magnani (matteo.magnani@it.uu.se)
Department of Information Technology, Uppsala University