Popis: |
New applications have been pushing multithreaded processing to another level of performance and energy requirements. However, many aspects prevent linear improvements when exploiting Thread-level parallelism (TLP), which means that not always using the maximum number of available cores running at the highest possible operating frequency will deliver the best performance or energy consumption. Therefore, it is possible to improve these non-functional requirements by tuning the number of threads and the Dynamic Voltage and Frequency Scaling (DVFS) of the processor. However, applications with distinct behaviors comprise many parallel regions, which will be executed on systems with a different number of cores that run within a large range of operating frequencies. Given this exponential behavior, such problem cannot be efficiently solved by any exhaustive search method. In this scenario, this work proposes to use a Genetic Algorithm to statically find the best configuration for any OpenMP parallel application, aiming to optimize performance and energy. Our framework is totally non-intrusive, which means that the design space exploration can be performed without any changes to the source or binary codes, so even already compiled code can be optimized. Considering eight benchmarks, we improve EDP by 20.4% on average. |