{'fraction_non_alphanumeric': 0.02331390507910075, 'fraction_numerical': 0.0016652789342214821, 'mean_word_length': 5.227979274611399, '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}}
Performance Optimization of a Monte Carlo Simulation Code for Estimating the All-Terminal Reliability of a Network

All-terminal reliability (ATR), defined as the probability that every node in a network can communicate with every other node, is an important problem in research areas such as mobile ad-hoc wireless networks, grid computing systems, and telecommunications. The assessment of ATR has also been part of related problems like the reliability allocation problem. However, the exact calculation of ATR is a NP-hard problem. To obtain this probability, there are approaches based on analytic methods for small networks or estimation through Monte Carlo simulation (MCS). In this paper, first a Fortran code that estimates the ATR is improved using optimization software techniques. Secondly a parallel implementation, based on the Message Passing Interface (MPI) standard is presented. The implementation can take advantage of the existence of multiple processors thus reducing the time required for the ATR assessment. One example related to a real network illustrates the benefits. The parallel implementation can reduce by up to 74% the execution time of a serial Monte Carlo simulation.