Matrix Skeleton Library

Kento EMOTO< emoto_at_ipl.t.u-tokyo.ac.jp >.
(please replace "_at_" by "@")
Information Processing Laboratory,
Department of Mathematical Informatics,
Graduate School of Information Science and Technology,
University of Tokyo

What is Matrix Skeleton Library?

This Library allows users, even with little knowledge about parallel machines, to easily develop efficient parallel programs on two-dimensional arrays (i.e. matrices). This is because synchronization and communication, which make parallel programming very complicated, are concealed by the parallel skeletons (basic patterns of parallel computation) provided by the Library. The parallel skeletons provided by the Library are implemented efficiently (asymptotically O(log n) for (n x n) matrix), so that users can get efficient parallel programs by composing the skeletons without considering parallelism.

The Library provides the parallel skeletons as templates of C++. Thus arbitrary type of elements of a matrix is allowed. Because parallel skeletons are defined as higher order functions, users can do various computations on matrices by passing user-defined function objects to them.

Structure of The Library

Structure
The library consists of three parts:

dist_matrix and matrix_skeletons classes use MPI in their methods for communication among processors. Thus, a program written by this library can be executed on any environment where MPI implementation is provided.

Requirements

NOTE: The Library is tested on Unix Clones (FreeBSD and Linux) and Windows XP with cygwin.

Download

Documents

Short Tutorials of Programming with the Library

Reference Manual

Reference Manual is generated by Doxygen.

Feedback

We'll appreciate any feedback (comments, suggestions, questions, bug reports, ...) concerning the Matrix Skeleton Library at sketo_at_ipl.t.u-tokyo.ac.jp, or emoto_at_ipl.t.u-tokyo.ac.jp (please replace "_at_" with "@").

Back to Upper Index