A cross-language project implementing a multithreaded actor-based system for distributed data processing. The system features efficient communication between C++ actors (using an Actor Framework) and Python processes (using multiprocessing).
To build the C++ code, follow these steps:
-
Create a build directory:
mkdir build cd build
-
Configure the project using CMake:
cmake -G "Visual Studio 17 2022" -A x64 ..
You can use any compiler that supports C++ 17
-
Build the project in Debug mode:
cmake --build . --config Debug
-
Build the project in Release mode:
cmake --build . --config Release
- C++ main -> C++ worker -> C++ results accumulator
- C++ main -> C++ sender -> network (sockets) -> Python getter -> Python worker -> Python sender -> network (sockets) -> C++ getter -> C++ results accumulator -> C++ printer
This project uses the following test datasets to validate the functionality of the filtering system. The system consists of two filters:
- C++ Worker Actors Filter: The first filter, implemented in C++.
- Python Worker Process Filter: The second filter, implemented in Python.
For an item to appear in results.txt
, it must pass both filters.
-
Dataset 1:
All items pass both the C++ Worker Actors Filter and the Python Worker Process Filter.
Result: All items are included inresults.txt
. -
Dataset 2:
None of the items pass the C++ Worker Actors Filter, but some pass the Python Worker Process Filter.
Result: No items are included inresults.txt
. -
Dataset 3:
None of the items pass the Python Worker Process Filter, but some pass the C++ Worker Actors Filter.
Result: No items are included inresults.txt
. -
Dataset 4:
Some items pass the C++ Worker Actors Filter, and some pass the Python Worker Process Filter.
Result: Only the items that pass both filters are included inresults.txt
.
- C++ Actor Framework: https://github.com/actor-framework/actor-framework
- Version: Commit
500410c872cdb0ac9479f1c3e7684c4de5adbce4
- Date: 2024-01-02
- Version: Commit