{'fraction_non_alphanumeric': 0.018356643356643356, 'fraction_numerical': 0.0017482517482517483, 'mean_word_length': 5.361111111111111, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Implementing face recognition using a parallel image processing environment based on algorithmic skeletons

Image processing is widely used in many applications, including medical imaging, industrial manufacturing, and security systems. Often the size of the image is very large, the processing time has to be very small and usually real-time constraints have to be met. Therefore, during the last decades there has been an increasing interest in the development and the use of parallel algorithms in image processing. This paper presents and evaluates a method for introducing parallelism into an image processing application. The method is based on algorithmic skeletons for low, medium and high level image processing operations. They provide an easy-touse parallel programming interface. To evaluate this approach, face recognition is implemented twice on a highly parallel processing platform, once via skeletons, once directly and highly optimized. It is demonstrated that the skeleton approach is extremely convenient from a programmers point of view, while the performance penalty of using skeletons is well below 10% in our case study.