Small project about different methods to use parallel processing to hash images. To use this, place images in a directory named "input_images" in the same directory as the python script. The python script will automatically generate a directory named "output" where the json hash files will be written to.
Parallel Image Hash uses three different techniques to achieve a speedup on image hashing.
Every processor on the CPU (or any number below that, as can be changed in code) takes an equal number of images and hashes them. The second fastest technique.
One processor uses multiple threads as set in code and each thread hashes an equal number of images. This is a concurrency technique and the speedup is achieved by essentially removing CPU downtime. The slowest technique.
This technique combines both techniques such that each processor has a minimum downtime and can work 100% of the runtime of the program. Slightly faster than technique 1.
Sequential Image Hash is just as it sounds. One processor using one threads sequentially moving through each image and hashing it.