{'fraction_non_alphanumeric': 0.027450980392156862, 'fraction_numerical': 0.014901960784313726, 'mean_word_length': 4.907407407407407, '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}}
Interaction between MPI and TCP in grids

As MPI applications are more and more resource consuming, they need to be executed on grids. The communications on the WAN interconnecting clusters mostly use TCP which suffers from WAN features: high latency, sharing between users, bandwidth smaller than the aggregate bandwidth of the nodes. In this report, we first study the interaction between MPI and TCP on grids. We show why the nature of MPI traffic raises problems while using TCP on WAN links. TCP's loss detection and congestion control mechanism can both slow down the application. Then, we propose MPI5000, a transparent applicative layer between MPI and TCP, using proxies to improve the execution of MPI applications on a grid. Proxies aim at splitting TCP connections in order to detect losses faster and avoid to return in a slowstart phase after an idle time. Finally, we test our layer on Grid'5000, the French research grid, using MPICH2. The results on the NPB (NAS Parallel Benchmarks) validate our architecture that reduces the number of idle timeout and the number of long-distance retransmissions for certain benchmarks, namely BT, SP and LU benchmarks. Using MPI5000, these applications can decrease their execution time by 35%, 28%, and, 15% respectively.