Helper library for distributed algorithms programming?
-
06-09-2019 - |
Question
When you code a distributed algorithm, do you use any library to model abstract things like processor, register, message, link, etc.? Is there any library that does that?
I'm thinking about e.g. self-stabilizing algorithms, like self-stabilizing minimum spanning-tree algorithms.
Solution
There's a DVM system that can be used for implementing different distributed algorithms. It works on top of MPI.
However it is more for matrix-oriented scientific algorithms where distribution is done in terms of data blocks. I had a brief experience using it - it's much more convenient than direct usage of MPI and allows for much more readable and maintainable code.
OTHER TIPS
You may want to check out OpenMP.
I think you might find the distributed Apache projects to be helpful:
- Apache Hadoop provides distributed filesystems and processing
- Apache Zookeeper is a coordination service, which might be right up your alley. It can be used as a public-subscribe mechanism.
There's also the Java Parallel Processing Framework which abstracts entire machines and their composition, allowing you to focus on the processing.
Depends on your needs.