Designing and Implementing Parallel Building Blocks in Python through FastFlow Integration

This thesis focuses on the design and implementation of parallel building blocks in Python using the FastFlow C++ library to overcome Python's Global Interpreter Lock (GIL) limitations. By creating Python bindings for FastFlow through the Python C API, this work introduces predefined parallel building blocks such as pipelines, farms, and all-to-all communication into Python, allowing developers to build efficient and scalable parallel applications. The goal of the thesis is to provide a high-level API for FastFlow in Python, enabling users to implement complex parallelism without manual process management or synchronization. The proposed solution supports two strategies: one using multiple processes to bypass the GIL and the other using subinterpreters, which allow threads to run in parallel by isolating their execution. This work addresses Python’s shortcomings in parallelism by leveraging the efficiency of FastFlow’s C++ core and extending its power to Python developers. This improves performance in CPU-bound tasks, make parallel building blocks available in Python, and enhance the scalability of Python programs on multi-core processors.

Publication Details

Journal
Electronic Theses and Dissertations Repository (University of Pisa)
Published
2024-10-06
Primary Topic
Computational Physics and Python Applications
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Designing and Implementing Parallel Building Blocks in Python through FastFlow Integration

Electronic Theses and Dissertations Repository (University of Pisa)
Computational Physics and Python Applications
article

Designing and Implementing Parallel Building Blocks in Python through FastFlow Integration

article en

Abstract

This thesis focuses on the design and implementation of parallel building blocks in Python using the FastFlow C++ library to overcome Python's Global Interpreter Lock (GIL) limitations. By creating Python bindings for FastFlow through the Python C API, this work introduces predefined parallel building blocks such as pipelines, farms, and all-to-all communication into Python, allowing developers to build efficient and scalable parallel applications. The goal of the thesis is to provide a high-level API for FastFlow in Python, enabling users to implement complex parallelism without manual process management or synchronization. The proposed solution supports two strategies: one using multiple processes to bypass the GIL and the other using subinterpreters, which allow threads to run in parallel by isolating their execution. This work addresses Python’s shortcomings in parallelism by leveraging the efficiency of FastFlow’s C++ core and extending its power to Python developers. This improves performance in CPU-bound tasks, make parallel building blocks available in Python, and enhance the scalability of Python programs on multi-core processors.

Electronic Theses and Dissertations Repository (University of Pisa)
Industry, innovation and infrastructure
Openalex Percentile: Top 55%
Computational Physics and Python Applications
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Designing and Implementing Parallel Building Blocks in Python through FastFlow Integration · Electronic Theses and Dissertations Repository (University of Pisa) (2024) | TGRS Research Map | TGRS