Stepping towards noiseless Linux environment

Hakan Akkan, M. Lang, L. Liebrock
{"title":"Stepping towards noiseless Linux environment","authors":"Hakan Akkan, M. Lang, L. Liebrock","doi":"10.1145/2318916.2318925","DOIUrl":null,"url":null,"abstract":"Scientific applications are interrupted by the operating system far too often. Historically operating systems have been written efficiently to time-share a single resource, the CPU. We now have an abundance of cores but we are still swapping out the application to run other tasks and therefore increasing the application's time to solution. Current task scheduling in Linux is not tuned for a high performance computing environment, where a single job is running on all available cores. For example, checking for context switches hundreds of times per second is counter-productive in this setting.\n One solution to this problem is to partition the cores between operating system and application; with the advent of many-core processors this approach is more attractive. This work describes our investigation of isolation of application processes from the operating system using a soft-partitioning scheme. We use increasingly invasive approaches; from configuration changes with available Linux features such as control groups and pinning interrupts using the CPU affinity settings, to invasive source level code changes to try to reduce, or in some cases completely eliminate, application interruptions such as OS clock ticks and timers.\n Explained here are the measures that can be taken to reduce application interruption solely with compile and run time configurations in a recent unmodified Linux kernel. Although these measures have been available for a some time, to our knowledge, they have never been addressed in an HPC context. We then introduce our invasive method, where we remove the involuntary preemption induced by task scheduling. Our experiments show that parallel applications benefit from these modifications even at relatively small scales. At the modest scale of our testbed, we see a 1.72% improvement that should project into higher benefits at extreme scales.","PeriodicalId":335825,"journal":{"name":"International Workshop on Runtime and Operating Systems for Supercomputers","volume":"19 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-06-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"20","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Workshop on Runtime and Operating Systems for Supercomputers","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2318916.2318925","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 20

Abstract

Scientific applications are interrupted by the operating system far too often. Historically operating systems have been written efficiently to time-share a single resource, the CPU. We now have an abundance of cores but we are still swapping out the application to run other tasks and therefore increasing the application's time to solution. Current task scheduling in Linux is not tuned for a high performance computing environment, where a single job is running on all available cores. For example, checking for context switches hundreds of times per second is counter-productive in this setting. One solution to this problem is to partition the cores between operating system and application; with the advent of many-core processors this approach is more attractive. This work describes our investigation of isolation of application processes from the operating system using a soft-partitioning scheme. We use increasingly invasive approaches; from configuration changes with available Linux features such as control groups and pinning interrupts using the CPU affinity settings, to invasive source level code changes to try to reduce, or in some cases completely eliminate, application interruptions such as OS clock ticks and timers. Explained here are the measures that can be taken to reduce application interruption solely with compile and run time configurations in a recent unmodified Linux kernel. Although these measures have been available for a some time, to our knowledge, they have never been addressed in an HPC context. We then introduce our invasive method, where we remove the involuntary preemption induced by task scheduling. Our experiments show that parallel applications benefit from these modifications even at relatively small scales. At the modest scale of our testbed, we see a 1.72% improvement that should project into higher benefits at extreme scales.
迈向无噪音的Linux环境
科学应用经常被操作系统打断。从历史上看,操作系统被高效地编写为分时共享单一资源,即CPU。我们现在有了大量的内核,但是我们仍然需要换出应用程序来运行其他任务,因此增加了应用程序解决问题的时间。Linux中的当前任务调度没有针对高性能计算环境进行调优,在高性能计算环境中,单个作业在所有可用的核心上运行。例如,在这种设置中,每秒检查数百次上下文切换是适得其反的。这个问题的一个解决方案是在操作系统和应用程序之间划分内核;随着多核处理器的出现,这种方法更具吸引力。这项工作描述了我们对使用软分区方案将应用程序进程与操作系统隔离的研究。我们使用越来越多的侵入性方法;从使用可用的Linux特性(如控制组和使用CPU亲和性设置固定中断)进行配置更改,到侵入性的源代码更改,以试图减少(或在某些情况下完全消除)应用程序中断,如操作系统时钟滴答声和计时器。本文将介绍在最新的未修改的Linux内核中,仅使用编译和运行时配置就可以减少应用程序中断的措施。尽管这些措施已经可用了一段时间,但据我们所知,它们从未在高性能计算环境中得到解决。然后,我们介绍了我们的侵入式方法,我们消除了由任务调度引起的非自愿抢占。我们的实验表明,即使在相对较小的尺度上,并行应用程序也可以从这些修改中受益。在我们的测试平台的适度规模下,我们看到1.72%的改进,在极端规模下应该会带来更高的收益。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信