DCM: A Python-based middleware for parallel processing applications on small scale devices

Michael Lescisin, Qusay H. Mahmoud · 2017

Parallel programming has been an active area of research in computer science and software engineering for many years. Parallel programming should ideally provide a linear speedup to computational problems. In reality, this is rarely the case. While there are some algorithms that cannot be parallelized, many that can, still fail to provide the ideal linear speedup. For algorithms that can benefit from parallelization, it is often much more difficult to develop the parallel code than it is to write a sequential, single-threaded program. The existence of this gap between ideal parallel computing and parallel computing on real hardware and software has caused many developers to create new solutions in an attempt to move real parallel computing closer to its idealized model. While many of these solutions provide a great performance benefit on large-scale systems, they often lag behind when deployed on small-scale systems. In this paper, we introduce the design and implementation of DCM (Distributed Computing Middleware) - a Python-based middleware for writing parallel processing applications for execution on clusters of small-scale devices. Evaluation results show the feasibility of DCM. Our middleware and its test cases are publicly available on GitHub.

Read the paper · More papers on PaperTik