Abstract

Multicore processors that support multithreading techniques have many advantages, including processors’ utilization, responsiveness, resource sharing, and economical usage of threads. Thus, to have these advantages, programming languages must support multithreading programming. Unfortunately, this technique is not compatible with old programs since most of the old program codes have been prepared sequentially. Inevitably, this posed a challenge when attempts were made to convert old sequential codes into multithreading codes. Despite the existence of several approaches of multithreading, differences do exist in their overhead, efficiency, and speedup, thereby underpinning the need for further optimization. Thus, a chemical reaction optimizer demonstrates the efficacy of its optimization in several problems. Against this backdrop, this paper presents a chemical reaction optimizer for the multithreading scheduling (CROTS) technique that generates multithreaded code while considering a sequential one. CROTS technique has been evaluated using several performance metrics, such as the number of steps, execution time, speedup, efficiency, cost, and percentage of error. Experimental results show that the maximum speedup achieved by CROTS is 11.98 upon the usage of 32 threads, with an average percentage of error being 14.56% in regard to the comparison between experimental and analytical cost results. Furthermore, after comparing CROTS with intermediate representation based on diKernel (KIR), it has been established that it can accommodate more threads and attain greater speedup. For example, the experiments show that when applying both approaches CROTS and KIR using 32 threads on dataset M7000, CROTS attains a speedup of 11.71, that is, about tripled the speedup achieved by KIR, which is 3.77.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call