EXPLAIN is a set of browser-based modules for teaching combinatorial scientific computing. Each one pairs a graph with the matrix it represents, so you can watch an ordering or a compression take effect on both at once — and then edit the algorithm in the page and re-run it.
Modules
-
Nested Dissection Ordering
Recursively split a graph by vertex separators to produce a fill-reducing ordering for sparse factorization.
ORDERING -
Nested Dissection for Big Graphs
The same ordering on larger inputs, with a rendering path built for graphs too big to draw node by node.
ORDERING -
Cholesky Factorization
Step through the factorization and watch fill-in appear in the matrix and as new edges in the graph.
FACTORIZATION -
Column Compression
Color the column intersection graph to group columns that can be evaluated together in a Jacobian.
COMPRESSION -
Column Compression (Bipartite)
The same problem posed on the bipartite row–column graph rather than the intersection graph.
COMPRESSION -
Row Compression (Bipartite)
Compress rows instead of columns, colouring the row side of the bipartite graph.
COMPRESSION -
Bidirectional Compression
Combine row and column compression, trading one against the other to minimise the total number of evaluations.
COMPRESSION -
Parallel Matrix–Vector Product
Partition a sparse matrix across processors and see how the partitioning determines the communication volume.
PARALLEL -
New Custom Module
Start from an empty module and write your own algorithm against the same graph-and-matrix canvas.
BUILD YOUR OWN
People
Author
M. Ali Rostami — rostamiev@gmail.com
Supervisor
Prof. H. Martin Bücker, Friedrich Schiller University Jena
Earlier contributors
Simon Leßenich
Michael Lülfesmann
EXPLAIN was developed at Friedrich Schiller University Jena between 2013 and 2016. More about the project.