Affiliation:
1. University of California, Riverside, CA
Abstract
To realize the performance potential of multicore systems, we must effectively manage the interactions between memory reference behavior and the operating system policies for thread scheduling and migration decisions. We observe that these interactions lead to significant variations in the performance of a given application, from one execution to the next, even when the program input remains unchanged and no other applications are being run on the system. Our experiments with multithreaded programs, including the TATP database application, SPECjbb2005, and a subset of PARSEC and SPEC OMP programs, on a 24-core Dell PowerEdge R905 server running OpenSolaris confirms the above observation. In this work we develop Thread Tranquilizer, an automatic technique for simultaneously reducing performance variation and improving performance by dynamically choosing appropriate memory allocation and process scheduling policies. Thread Tranquilizer uses simple utilities available on modern Operating Systems for monitoring cache misses and thread context-switches and then utilizes the collected information to dynamically select appropriate memory allocation and scheduling policies. In our experiments, Thread Tranquilizer yields up to 98% (average 68%) reduction in performance variation and up to 43% (average 15%) improvement in performance over default policies of OpenSolaris. We also demonstrate that Thread Tranquilizer simultaneously reduces performance variation and improves performance of the programs on Linux. Thread Tranquilizer is easy to use as it does not require any changes to the application source code or the OS kernel.
Funder
Division of Computing and Communication Foundations
Division of Computer and Network Systems
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference49 articles.
1. Attardi J. and Nadgir N. 2003. A comparison of memory allocators in multiprocessors. http://developers. sun.com/solaris/articles/multiproc/multiproc.html. Attardi J. and Nadgir N. 2003. A comparison of memory allocators in multiprocessors. http://developers. sun.com/solaris/articles/multiproc/multiproc.html.
2. Dynamic thread assignment on heterogeneous multiprocessor architectures
3. Benchmarking the effects of operating system interference on extreme-scale parallel machines
4. Benson R. 2003. Identifying memory management bugs within applications using the libumem library. http://developers.sun.com/solaris/articles/libumem_library.html. Benson R. 2003. Identifying memory management bugs within applications using the libumem library. http://developers.sun.com/solaris/articles/libumem_library.html.
Cited by
19 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Tile Size and Loop Order Selection using Machine Learning for Multi-/Many-Core Architectures;Proceedings of the 38th ACM International Conference on Supercomputing;2024-05-30
2. Rigorous Evaluation of Computer Processors with Statistical Model Checking;56th Annual IEEE/ACM International Symposium on Microarchitecture;2023-10-28
3. PinIt: Influencing OS Scheduling via Compiler-Induced Affinities;Proceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems;2023-06-13
4. CryptOpt: Automatic Optimization of Straightline Code;2023 IEEE/ACM 45th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion);2023-05
5. A Hybrid Distributed EA Approach for Energy Optimisation on Smartphones;Empirical Software Engineering;2022-08-06