用于模拟多程序工作负载的完整或快速参考跟踪收集:选择一个

Scott F. Kaplan
{"title":"用于模拟多程序工作负载的完整或快速参考跟踪收集:选择一个","authors":"Scott F. Kaplan","doi":"10.1145/1005686.1005747","DOIUrl":null,"url":null,"abstract":"Trace-driven simulation [8] provides a reproducible, controllable, and verifiable mechanism for evaluating memory management policies used at every level of the memory hierarchy. A reference trace collector gathers the inputs that drive such simulations. Each collector must interfere with normal execution so that it can capture the references—that is, gain control of execution when a reference occurs. Once a reference has been captured, it is then handled—that is, stored, filtered, or otherwise processed. Most existing trace collectors operate only on a single process [5, 6, 7]. The few collectors that operate on multiple processes [1] are not capable of gathering all of the information needed to drive multiprogrammed simulations. Specifically, they do not record critical kernel events required to associate each reference with its thread, associate each thread with its process, account for file system accesses, and identify all uses of shared memory. Most collectors have low capturing overhead. However, it is the handling overhead that dominates the total overhead of any collector that captures every reference [3], slowing executing by factors of at least 400. Thus, to reduce the total overhead, a collector must not capture all references. Significant event tracing [5] is the only existing method of selective capturing. It is a binary rewriting strategy that can identify code segments within which references may be inferred by a post-processor. This method, however, can be applied only to binaries whose symbol table information has not been stripped. It also cannot be applied to dynamically generated code, and it is not applicable to multiprogrammed workloads.","PeriodicalId":172626,"journal":{"name":"SIGMETRICS '04/Performance '04","volume":"44 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Complete or fast reference trace collection for simulating multiprogrammed workloads: choose one\",\"authors\":\"Scott F. Kaplan\",\"doi\":\"10.1145/1005686.1005747\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Trace-driven simulation [8] provides a reproducible, controllable, and verifiable mechanism for evaluating memory management policies used at every level of the memory hierarchy. A reference trace collector gathers the inputs that drive such simulations. Each collector must interfere with normal execution so that it can capture the references—that is, gain control of execution when a reference occurs. Once a reference has been captured, it is then handled—that is, stored, filtered, or otherwise processed. Most existing trace collectors operate only on a single process [5, 6, 7]. The few collectors that operate on multiple processes [1] are not capable of gathering all of the information needed to drive multiprogrammed simulations. Specifically, they do not record critical kernel events required to associate each reference with its thread, associate each thread with its process, account for file system accesses, and identify all uses of shared memory. Most collectors have low capturing overhead. However, it is the handling overhead that dominates the total overhead of any collector that captures every reference [3], slowing executing by factors of at least 400. Thus, to reduce the total overhead, a collector must not capture all references. Significant event tracing [5] is the only existing method of selective capturing. It is a binary rewriting strategy that can identify code segments within which references may be inferred by a post-processor. This method, however, can be applied only to binaries whose symbol table information has not been stripped. It also cannot be applied to dynamically generated code, and it is not applicable to multiprogrammed workloads.\",\"PeriodicalId\":172626,\"journal\":{\"name\":\"SIGMETRICS '04/Performance '04\",\"volume\":\"44 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2004-06-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"SIGMETRICS '04/Performance '04\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1005686.1005747\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"SIGMETRICS '04/Performance '04","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1005686.1005747","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

跟踪驱动的模拟[8]提供了一种可重复的、可控的和可验证的机制,用于评估在内存层次结构的每个级别上使用的内存管理策略。参考跟踪收集器收集驱动此类模拟的输入。每个收集器必须干扰正常的执行,以便能够捕获引用——也就是说,在引用发生时获得对执行的控制。一旦捕获了引用,就会对其进行处理,即存储、过滤或以其他方式进行处理。大多数现有的跟踪收集器仅在单个进程上运行[5,6,7]。少数在多个进程上运行的收集器[1]无法收集驱动多程序模拟所需的所有信息。具体来说,它们不记录将每个引用与其线程关联、将每个线程与其进程关联、说明文件系统访问以及标识共享内存的所有使用所需的关键内核事件。大多数收集器具有较低的捕获开销。然而,处理开销在任何捕获每个引用的收集器的总开销中占主导地位[3],使执行速度减慢至少400倍。因此,为了减少总开销,收集器不能捕获所有引用。重要事件跟踪[5]是唯一现有的选择性捕获方法。它是一种二进制重写策略,可以识别代码段,其中的引用可以由后处理器推断出来。但是,此方法只能应用于未剥离符号表信息的二进制文件。它也不能应用于动态生成的代码,也不适用于多程序工作负载。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Complete or fast reference trace collection for simulating multiprogrammed workloads: choose one
Trace-driven simulation [8] provides a reproducible, controllable, and verifiable mechanism for evaluating memory management policies used at every level of the memory hierarchy. A reference trace collector gathers the inputs that drive such simulations. Each collector must interfere with normal execution so that it can capture the references—that is, gain control of execution when a reference occurs. Once a reference has been captured, it is then handled—that is, stored, filtered, or otherwise processed. Most existing trace collectors operate only on a single process [5, 6, 7]. The few collectors that operate on multiple processes [1] are not capable of gathering all of the information needed to drive multiprogrammed simulations. Specifically, they do not record critical kernel events required to associate each reference with its thread, associate each thread with its process, account for file system accesses, and identify all uses of shared memory. Most collectors have low capturing overhead. However, it is the handling overhead that dominates the total overhead of any collector that captures every reference [3], slowing executing by factors of at least 400. Thus, to reduce the total overhead, a collector must not capture all references. Significant event tracing [5] is the only existing method of selective capturing. It is a binary rewriting strategy that can identify code segments within which references may be inferred by a post-processor. This method, however, can be applied only to binaries whose symbol table information has not been stripped. It also cannot be applied to dynamically generated code, and it is not applicable to multiprogrammed workloads.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术文献互助群
群 号:604180095
Book学术官方微信