The Templet project exists to take full advantage of computing resources in scientific, educational and industrial applications through the implementation of actor-task computing, a generic approach that adapts actor model for many-task computing across multiple cores, clusters, and the Internet.
The current implementation supports the Everest platform for managing the execution of parallel tasks on distributed computing resources over the Internet. It can also model logic and measure the performance of a complex many-task workflow on a single computer.
You can try Templet
- interactively with Binder ,
- or use the provided MS Visual Studio project files,
- or compile the source files in any C ++ programming environment.
The software package consists of three components.
- Code generator driven by lightweight actor specification language.
- The C ++ library that implements the actor engine and several task engines for integration with Everest, behavior and performance modeling, etc.
- Gallery of small examples of many-task applications.
The components are arranged as described below.
- ~/bin/ – code generator executables, curl binaries for Windows, quick info on MS VC++ redistributable packages
- ~/binder/ – Binder configuration files
- ~/cgen/ – code generator sources
- ~/cgen/acta - integrated actor-task model processor
- ~/cgen/cgen - code generator for actor-task model
- ~/cgen/skel - skeleton processor
- ~/docs/ - books and articles, preprints and documentation related to the project
- ~/docs/how2program.pdf - textbook (in Russian) on the programming method
- ~/docs/VostokinGRID20203(-RUS).pdf - proposal for a new engine architecture for the project
- ~/jhub - setup for working in The Littlest JupyterHub
- ~/lib/ – Templet C++ library source files
- ~/lib/opt/ – external packages including libcurl and JSON for Modern C++
- ~/lib/speclang.txt – technical overview of the lightweight actor specification language
- ~/lib/templet.hpp – core actor engine and base task engine
- ~/lib/everest.hpp – Everest task engine
- ~/lib/basesim.hpp – task engine for the paracomputer simulation;
- ~/samples/ – gallery of small examples
- ~/samples/blchsym/ – proposal for a new engine architecture for the project, sample code
- ~/samples/booksmpl/ – code examples from the textbook "how2program.pdf"
- ~/samples/brickmov/ – model of transferring bricks from the original heap to the new one along the chain of workers
- ~/samples/diamond/ – demonstration of the paracomputer simulation engine
- ~/samples/evrstagnt/ - installing and verifying the Everest agent on the Binder virtual machine or on The Littlest JupyterHub server
- ~/samples/heatomp/ - solving the heat equation using multicore systems with OpenMP 2.0 or higher
- ~/samples/parsweep/ - parameter sweep application (calculation of the Lyapunov spectrum for the Lorentz equation with different values of rho, sigma, beta)
- ~/samples/pingpong/ – demonstration of the Everest task engine
- ~/samples/primempi/ - distributed prime search algorithm
- ~/samples/pythagor/ – demonstration of the lightweight actor specification language, core actor engine and base task engine APIs
This project is a part of learning and research activities of Samara University, Institute of IT and Cybernatics. For more details feel free to contact the author: Dr. Sergei Vostokin (sergey.vostokin@gmail.com).