Institut für Theoretische Informatik Forschungsgruppe Paralleles Rechnen Juniorprof. Dr. Henning Meyerhenke Hiwi-Stelle: LAMG = Lineare Algebra + Numerik + Python Hintergrund Wir beschäftigen uns mit der Analyse komplexer Netzwerke. Allein die Größe interessanter Netzwerkdatensätze (Social Networks...) macht gute parallelen Algorithmen notwendig. Solche Netzwerke bzw. Graphen als Matrizen zu repräsentieren erlaubt es, die Methoden der Linearen Algebra auf sie anzuwenden. Ein Beispiel: Die Laplace-Matrix eines Graphens ist seine Adjazenzmatrix minus der Knotengrade auf der Diagonalen. Die Anzahl der Nullen, die als Eigenwerte der Laplace-Matrix auftreten, entspricht der Anzahl der Zusammenhangskomponenten im Graphen. Gleichungssysteme mit der Laplace-Matrix treten in verschiedenen Anwendungen auf und sollen numerisch-iterativ gelöst werden. Um die Berechnung auf großen Matrizen zu beschleunigen, werden Multilevel-Verfahren eingesetzt, die den Graphen bzw. die Matrix stufenweise vergröbern. LAMG (Lean Algebraic Multigrid) ist ein effizienter Löser für Laplace-Matrizen, der auf einem solchen Multilevel-Verfahren basiert. LAMG wurde von O. Livne und A. Brandt als sequenzielle MATLAB-Implementierung vorgestellt. Wir wollen eine effiziente und parallele Implementierung entwickeln. Zunächst portieren wir das Projekt von MATLAB nach Python. Dazu verwenden wir NumPy & SciPy, die Bibliotheken für wissenschaftliches Rechnen mit Python. Aufgaben Dieser Job ist praxisorientiert und attraktiv für Student/innen mit Spaß an der Softwareentwicklung. Sie werden bei Implementierung, Tests, Debugging und Dokumentation eingebunden. Sie arbeiten mit uns an einer Codebasis und setzen sowohl objektorientierte als auch numerische Programmierkonzepte um. Anforderungen Vorausgesetzt werden solide Programmierkenntnisse und Teamfähigkeit bei der Softwareentwicklung. Grundkenntnisse in Linearer Algebra und Numerik sind für ein allgemeines Verständnis der Problemstellung von Vorteil. Erfahrung mit einem der eingesetzten Werkzeuge (Python, NumPy/SciPy, MATLAB, PETSc) ist ideal, aber nicht zwingend notwendig, sofern Sie bereit sind sich einzuarbeiten. Bei Interesse wenden Sie sich gerne an uns. Forschungsgruppe Paralleles Rechnen (http://parco.iti.kit.edu) Juniorprof. Dr. Henning Meyerhenke Kontakt: Dipl.-Inform. Christian Staudt ([email protected]) Institut für Theoretische Informatik Forschungsgruppe Paralleles Rechnen Juniorprof. Dr. Henning Meyerhenke Student Research Assistant: LAMG = Linear Algebra + Numerics + Python Background We are engaged in the analysis of complex networks. The sheer size of interesting network data sets (social networks...) makes good parallel algorithms necessary. Representing such networks or graphs as matrices allows us to apply the methods of linear algebra. An example: The Laplacian matrix of a graph is its adjaceny matrix minus the node degrees on the diagonal. The number of times zero appears as an eigenvalue of the Laplacian is the number of connected components in the graph. Systems of equations involving the graph Laplacian appear in different applications and are to be solved numerically and iteratively. To speed up computation on large matrices, multilevel-methods which gradually coarsen the graph/matrix are applied. LAMG (Lean Algebraic Multigrid) is an efficient solver for Laplacian matrices, which is based on such a multilevel method. LAMG was introduced by O. Livne and A. Brandt as a sequential MATLAB implementation. We want to develop an efficient and parallel implementation. Initially, we port the project from MATLAB to Python. For this purpose, we use NumPy and SciPy, the libraries for scientific computation in Python. Tasks This job is hands-on and attractive for students enjoying software development. You will be involved in implementation, testing, debugging and documentation. You work with us on a code base and apply both object-oriented and numeric programming concepts. Requirements We assume that you have solid programming skills and the ability to work in a software development team. Basic knowledge in linear algebra and numeric computation are beneficial for understanding the problem setting. Experience with one of the tools we apply ( Python, NumPy/SciPy, MATLAB, PETSc) is ideal, but not mandatory, provided you are willing to familiarize yourself. Please do not hesitate to contact us if you are interested. Parallel Computation Research Group (http://parco.iti.kit.edu) Juniorprof. Dr. Henning Meyerhenke Contact: Dipl.-Inform. Christian Staudt ([email protected])