This framework, written in Python and C++, is designed for efficient execution of distributed tasks using parallel processing. It features a Master-Slave architecture where the Master delegates tasks and Slave nodes execute them. It leverages Python's multiprocessing library to facilitate concurrent task processing, offering an intuitive approach to managing workload distribution among multiple processors.
- Master-Slave Structure: Optimized for distributing tasks in a parallel computing environment.
- Parallel Processing: Employs Python's multiprocessing features for simultaneous task processing.
- Task Handling: Includes classes for task assignment, result aggregation, and inter-node communication.
- Sample Code: Comes with sample code for Master, Slave, and Task classes.
- Comprehensive Testing: Incorporates unit tests to guarantee the integrity and performance of key functions.
- Python 3.x
Execute the venv_install.sh script from the project's base directory:
./setup/venv_install.shExecute the venv_uninstall.sh script from the project's base directory:
./setup/venv_uninstall.shThis software is provided under the MIT License. Refer to the LICENSE file for more information.
For a matrix size of 4000, the following results were observed:
-
Resolution in Python took approximately 9.3 seconds.
-
Using the
colPivHouseholderQrfunction in C++, it took about 12.5 seconds. -
The
lufunction in C++ completed the task in roughly 1.8 seconds.
These outcomes were recorded on my personal computer and may vary on different systems.
For reference, here are the specifications of the computer used for benchmarking:
-
CPU: Intel Core i7-11800H @ 2.30GHz
-
RAM: 16GB DDR4 @ 3200MHz
-
OS: Ubuntu 20.04.1 LTS
-
GPU: NVIDIA GeForce RTX 3070 Laptop GPU