{'fraction_non_alphanumeric': 0.015517241379310345, 'fraction_numerical': 0.0017241379310344827, 'mean_word_length': 5.952095808383233, '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}}
The Impact of Dynamic Channels on Functional Topology Skeletons

Parallel functional programs with implicit communication often generate purely hierarchical communication topologies during execution: communication only happens between parent and child processes. Hence, messages between siblings must be passed via the parent causing inefficiencies that can be avoided by direct communication between arbitrary processes. The Eden parallel functional language provides dynamic channels to implement arbitrary communication topologies. This paper analyses the impact of dynamic channels on Eden's topology skeletons, i.e. skeletons which define process topologies such as rings, toroids, or hypercubes. We compare topology skeletons with and without dynamic channels with respect to runtime and communication. Our case studies confirm that dynamic channels decrease the number of messages by up to 50% and substantially reduce runtime. Detailed analyses of EdenTV (Eden trace viewer) execution profiles reveal a bottleneck in the root process when only hierarchical channel connections are used and a better distribution of communications with dynamic channels.