Content area
The increasing demand for high-performance computing and the need to process large amounts of data have made Distributed Parallel Programming an essential part of modern computing. The traditional sequential processing approach can no longer keep up with data’s increasing volume and complexity. This is where parallel programming comes into play. By dividing a computational task into smaller, parallelizable tasks, we can use multiple processing units to achieve faster and more efficient processing. However, not all programming languages are well-suited for parallel programming.
Python has become a popular choice for many scientists and engineers due to its simplicity, readability, and versatility. Python is well-equipped to handle the demands of parallel processing in a cluster environment and several Python libraries, namely Torc_py, Scoop, and Dask, have been developed to further help the common programmer to explore the parallelism in multiprocessors and clusters. Those libraries offer simplicity and ease of use for common programming patters and also follow Python’s straightforward syntax and user-friendly, making this language a great option for advanced programmers and also to developers who are new to parallel programming.
This research aims to explore the programming language Python and some of its libraries, provide a comprehensive understanding of the current state of parallel distributed programming in Python, and implement support for parallel patterns lacking in the current modules. In particular, we aim to contribute to the easier development of programs based on Torc_py that use patterns like stencil, convolution, and search that can abort and calculate functions on data.