{'fraction_non_alphanumeric': 0.013736263736263736, 'fraction_numerical': 0.004578754578754579, 'mean_word_length': 5.746913580246914, '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}}
System software for high end computing

The challenges to the HEC system software community fundamentally originate from the need to efficiently exploit massive parallelism. This parallelism comes at either at the fine granularity through multiple cores or hardware accellerators, or at the large granularity, where systems have been built with 10,000 nodes connected over a high performance network. Such parallelism exposes new hardware abstractions that the OS needs to virtualize, introduces new reliability and management problems, new power management and file system issues, and generally requires more extensive software layers to protect programmers and system administrators from having to deal with the complexity of massive parallelism. While the HEC community clearly deals with extreme performance issues, many of the same trends are hitting the broader market. For example, all processor vendors are moving towards multiple cores, special purpose accelerators are becomming increasingly commoditized, and massive scale out systems are being used today by companies like Google.