Software
A parallel image-convolution pipeline using MPI to scatter image rows across processes, exchange halo rows between neighbours, and gather the filtered output. Supports arbitrary kernel sizes loaded from file.
Image convolutions like Gaussian blur, Sobel edge detection, and sharpening are embarrassingly parallel across pixels, but boundary rows need data from their neighbours. This project uses MPI to split a large image into row strips, distribute them across processes, exchange halo rows between adjacent ranks, run the convolution locally, then gather the result back to rank 0 for output.