{'fraction_non_alphanumeric': 0.014297729184188394, 'fraction_numerical': 0.0, 'mean_word_length': 5.329787234042553, '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}}
Towards an Adaptable Middleware for Parallel Computing in Heterogeneous Environments

The adoption of the multi-core processor design has spawned a wide variety of CPU configurations, namely in the number and nature of the hosted cores. The cluster organization of such CPUs is particularly sensitive to this issue, since applications must be aware of such heterogeneity in order to fully exploit the potential of the underlying hardware. The existing frameworks for cluster computing do not fully address this issue, relying on the programmer to handle many of the concerns associated to the aforesaid heterogeneity, burdening him with non-functional details. To this extent, we propose an adaptable middleware for Java High-Performance Computing in heterogeneous clusters. Adaptability is obtained by trusting the runtime system with the management of thread and data placement, and by equipping it with a layer able to adjust its implementation to the particularities of the underlying software and hardware stacks. In this paper we address both the middleware's programming model and runtime system, as well as some initial performance results that attest the validity of the approach.