What is SkeTo?

SkeTo (Skeletons in Tokyo) is a constructive parallel skeleton library written in C++ with MPI intended for distributed environments such as PC clusters. SkeTo provides data parallel skeletons for lists (distributed one-dimensional arrays), matrices (distributed two-dimensional arrays), and trees (distributed binary trees). SkeTo enables users to write parallel programs as if they were sequential, since the distribution, gathering, and parallel computation of data are concealed within constructors of data types or definitions of parallel skeletons. This is the results of the research of the "SkeTo Project".

The latest version of SkeTo (version 1.5) does not include tree skeletons due to the delay of the restructuring process of the entire code. They will be available in the near future. To use tree skeletons, please download the older version (version 0.21).

SkeTo is named after the Japanese word "Suketto", whose meaning is helper or supporter, in the hope that SkeTo library will help programmers easily develop efficient parallel programs.


SkeTo version 1.50 pre-released [February 2013]
SkeTo version 1.50 (pre) is now available. New features of this version are variable-length list skeletons, such as filter and concatmap, and a new fusion mechanism for them.
SkeTo version 1.1 released [December 2010]
SkeTo version 1.1 is now available. New features of this version are matrix skeletons with fusion optimization, data serialization that supports lists/matrices of variable-sized data (e.g., a list of strings), and experimental support for lambda expressions in C++0x.
Presentations at HLPP 2010 [September 2010]
Hu made an invited talk titled ''Calculational Parallel Programming'', and Matsuzaki presented an experience of using the SkeTo library through the implementation of the BiCGStab method.

SkeTo Project

"SkeTo Project" is a research project working on skeletal parallelism (or algorithmic skeletons).

We are studying parallel skeletons based on the constructive algorithmics. The main contributions of our project are as follows:

This project has been partially supported by:


We have proposed several fundamental parallel skeletons for data structures lists, matrices, and trees based on the BMF (Bird-Meertens Formalism), which provides a concise interface of skeletons, and shown their efficient implementations. We have also formalized and proposed the optimization mechanism by the fusion transformation over parallel skeletons on lists.

We implemented our ideas as a parallel skeleton library. The current version of our parallel skeleton library includes several data parallel skeletons for lists, matrices, and trees. The optimization mechanism is now implemented by the C++-template technique called expression templates. Our parallel skeleton library is available from the Download page.


SkeTo is a joint project of The University of Tokyo, The University of Electro-Communications, National Institute of Informatics, and Kochi University of Technology in Japan.

Current Members

Old Members

Yoshiki AKASHI, Kousuke ARIMA, Yu ISHIDO, Kazuhiko KAKEHI, Yuki KARASAWA, Kazutoshi KARIYA, Shunji KINOSHITA, Yoshiaki NOMURA, Noriyuki OHKAWA, Haruto TANNO, Masato TAKEICHI