{'fraction_non_alphanumeric': 0.013863216266173753, 'fraction_numerical': 0.0, 'mean_word_length': 5.153409090909091, '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}}
Control of parallel task granularity by throttling decomposition

This paper introduces a new mechanism which performs lazy task creation in a novel way for the exposure of large grain parallelism. In lazy task creation, all new-born tasks are provisionally inlined and parallelism is extracted from the inlined information later on demand. Large grain parallelism is achieved by executing the inlined tasks in the current thread unless a new task is demanded. However, the new scheme leaves a self-divisible task called seed instead inlining the task and let further task demands be satisfied by sprouting new tasks from the seed rather than retrospectively reversing the inlining decision of the task. In the scheme, decomposition itself is throttled rather than just the extraction of a task. The scheme makes the serial section clearly separated from the parallel section in an evaluation tree, and this allows the serial section to adopt a sequential algorithm. The performance improvement is significant in divide-and-conquer applications by adoption of sequential algorithms.