{'fraction_non_alphanumeric': 0.013563501849568433, 'fraction_numerical': 0.002466091245376079, 'mean_word_length': 5.6016260162601625, '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}}
Parallelism through dynamic instrumentation at runtime

This paper presents a novel approach to achieve parallelism on multi-core systems out of the legacy software without recompilation. A profiler tool can be enhanced, from identifying the bottleneck areas, to analyzing the instruction set in bottleneck areas. As the instructions along with all data dependencies are available in the running program, heuristics can be applied to detect the candidates for instruction level parallelism. The serial regions can be regenerated into parallel regions for multiple cores using predefined OpenMP calls and instrument dynamically at runtime. We discuss the problems for parallelism 1) Identifying the parallel regions for parallelism from serial code 2) Detailed approach for generating code generation at runtime.