{'fraction_non_alphanumeric': 0.01808066759388039, 'fraction_numerical': 0.005563282336578581, 'mean_word_length': 5.452914798206278, '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}}
Power aware parallel computing on asymmetric multiprocessor

Power optimization of multi-threaded parallel applications is necessary to achieve good performance on multi-core processors while saving power. Certain threads wait for other threads due to synchronization. These threads are critical in full program performance. Identifying these threads can reveal power optimization opportunities for software and hardware designers. In this paper, we propose a metric to determine critical threads. Our proposed method combines Instructions Per Cycle (IPC) of a thread and sum of IPCs of all co-running threads within a time quanta. We present a low power hardware based technique to calculate scores in order to determine critical threads. We use our score metric to create stacks that break total execution time into each thread's score components which makes it visually easier to determine optimization opportunities. Asymmetric multiprocessors have been proposed to scale the frequency by exploiting the stacks to achieve power optimization without losing much performance. To validate our proposed method, we used gem5 simulator to design an asymmetric multi-core processor and performed different multi-threaded parallel applications from the SPLASH2 benchmark. By applying asymmetric frequency scaling directed by our proposed metric, we achieved 28.13% savings in average power consumption with a maximum of 7.1% performance loss.