{'fraction_non_alphanumeric': 0.012415349887133182, 'fraction_numerical': 0.0, 'mean_word_length': 5.823076923076923, '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}}
Heterogeneous Multithreaded Computing

This thesis studies issues introduced by supporting multithreaded computing in environments composed of workers heterogeneous with respect to data representation, speed, and scale. We implement a heterogeneous multithreaded runtime system, and prove its efficiency. We present an implementation of Cilk that supports execution in heterogeneous environments. To support communication between workers with different data representations, we propose two mechanisms. The first mechanism translates messages to a canonical form on transmission and to the native host format on reception. The second mechanism generates signature tables of structures that are communicated between the workers to guide translation. We propose but do not implement an extension to generate signature tables for all C functions so that functions can be passed as messages.