=============================================================
This application uses a stencil-based scheme to apply a filter to an existing image or set of images. It means that the main process of this code is a traversal of each pixel of the image and the application of a 2D stencil. The parallelism will therefore come from the ability to split the image into multiple pieces to process it faster. Another step beyond might be to exploit the parallelism between the images.
- images
- original: the original gifs before any treated
- original_processed: the gifs after sequential treatment, used on regression testing
- processed: processed gifs, using the amount of parallelisation you want
- original-bad: gifs in a bad format, i.e. with pictures of varying size
Now that we implemented the MPI and openMP solutions we can run the script run_test_OMPI.sh to apply the sobel filter on all the gifs in the images/original folder This will produce the results in the images/processed folder
TODO
TODO
- Separate files, main is too big
- mix mpi with openmp
- implement: OMP by splitting image
- gray_filter
- blur_filter
- sobel_filter
- implement: CUDA by splitting image
- gray_filter
- blur_filter
- sobel_filter
- adapt: bulk_MPI to treat gifs with different height and width
- optimise: bulk_MPI, send many images and then treat them with some other bulk
- implement: bulk_MPI to use slaves without gpu
- implement: MPI by splitting image
- implement: bulk_OMP
- optimise: OMP, use dynamic instead of static
- implement: bulk images to treat on CUDA
- gray_filter
- blur_filter
- sobel_filter
- benchmarking framework
- stats of the run: MPI_nodes, MPI_tasks, OMP\threads, input stats
- fprint the stats
- command-line arguments regarding hardware
- load-balancing