{'fraction_non_alphanumeric': 0.014629948364888123, 'fraction_numerical': 0.0017211703958691911, 'mean_word_length': 5.881656804733728, '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}}
A methodology for porting sequential software to the multicore platform considering technical and economical aspects of software parallelization

Today multicore processors are ubiquitous in desktop computers, servers and various other devices. In order to take advantage of such multicore processors many of today's existing applications, which typically are sequential applications, need to be ported to the multicore platform. However, the adoption of multicore technology in software applications is still restrained by technical and economical obstacles. The contribution of this paper is a methodology for porting sequential software to the multicore platform. It takes into account the technical specifics of parallel programming and multicore technology offering developers orientation during the porting process. In addition to that (and in contrast to existing methodologies) it also addresses the economical obstacles of multicore adoption in software development by (1) supporting planning and cost control to counteract high development costs and by (2) utilizing auto tuning in order to cope with uncertainty due to varying processor architectures.