Overview:
This project aims to develop a distributed image processing system using cloud computing
technologies. The system will be implemented in Python, leveraging cloud-based virtual machines for
distributed computing. The application will use OpenCL or MPI for parallel processing of image data.
Features and Specifications:
• Distributed Processing: The system should be able to distribute image processing tasks across
multiple virtual machines in the cloud.
• Image Processing Algorithms: Implement various image processing algorithms such as filtering,
edge detection, and color manipulation.
• Scalability: The system should be scalable, allowing for the addition of more virtual machines as the
workload increases.
• Fault Tolerance: The system should be resilient to failures, with the ability to reassign tasks from
failed nodes to operational ones.
The system implements fault tolerance through a distributed architecture. Initially, four slave nodes operate under the control of a master node. In the event of a slave node failure, the master node seamlessly redirects processing to the remaining functional slaves. This process continues even if additional slave node failures occur, ensuring uninterrupted operation as long as at least two slaves remain available. If all slave nodes become unavailable, a backup slave is automatically detected by the master node, allowing image processing to resume.
We use in this project many AWS services like cloud watch and SNS to monitor the CPU usage of the instances