LAMG = Lineare Algebra + Numerik + Python

Werbung
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])
Herunterladen