{'fraction_non_alphanumeric': 0.02074688796680498, 'fraction_numerical': 0.0, 'mean_word_length': 5.264069264069264, '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 Evaluation of Parallel Programming in Virtual Machine Environment

As multi-core processors become increasingly mainstream, architects have likewise become more interested in how best to make use of the computing capacity of the CPU, for instance, through multiple simultaneous threads or processes of execution with OpenMP or MPI. At the same time, the increasingly mature and prevailing virtualization technique in server consolidation and HPC promotes the emergence of a large number of virtual SMP servers. Therefore, whether the parallel program can run in the virtual machine environment efficiently or not is a topic of concern. In this paper, we investigate the performance of three typical parallel programming paradigms, including OpenMP, MPI, and Hybrid of OpenMP and MPI in the popular, open-source, Xen virtualization system. The results show that the performance of the traditional parallel program in Xen VMs is close to it in native, non-virtualized environment, if there is little communication or synchronization between threads or processes. In most cases, without excessive IO access, we can get an ideal speedup in a SMP VM or virtual cluster, which is close to linearity when the total virtual CPUs (vCPUs) number is not larger than the number of Physical CPUs (pCPUs). And the pure MPI implementation shows the best scalability and stability in virtual machine environment compared with the other two paradigms.