{'fraction_non_alphanumeric': 0.01366120218579235, 'fraction_numerical': 0.0, 'mean_word_length': 6.044871794871795, '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}}
Building a software infrastructure for computational science applications: lessons and solutions

The development of high performance engineering and scientific applications is an expensive process that often requires specialized support and adequate information about the available computational resources and software development tools. The development effort is increased by the complexity of the phenomena that can be addressed by numerical simulation, along with the increase and evolution of computing resources. In this paper we discuss mechanisms implemented by the DOE Advanced Computational Software (ACTS) Collection Project to mitigate that effort. ACTS is a set of DOE-developed software tools, sometimes in collaboration with other funding agencies, that make it easier to write high performance codes for computational science applications. The paper discusses categories of problems that the tools solve, functionalities that they provide, applications that have benefited from their use, and lessons learned through interactions with users possessing different levels of expertise.