基于线程同步技术的多线程和缓存延迟屏蔽对处理器性能的影响分析

IF 1.1 4区 农林科学 Q3 AGRICULTURE, DAIRY & ANIMAL SCIENCE
Akhigbe-mudu Thursday Ehis
{"title":"基于线程同步技术的多线程和缓存延迟屏蔽对处理器性能的影响分析","authors":"Akhigbe-mudu Thursday Ehis","doi":"10.14295/bjs.v3i1.458","DOIUrl":null,"url":null,"abstract":"Multithreading is a process in which a single processor executes multiple threads concurrently. This enables the processor to divide tasks into separate threads and run them simultaneously, thereby increasing the utilization of available system resources and enhancing performance. When multiple threads share an object and one or more of them modify it, unpredictable outcomes may occur. Threads that exhibit poor locality of memory reference, such as database applications, often experience delays while waiting for a response from the memory hierarchy. This observation suggests how to better manage pipeline contention. To assess the impact of memory latency on processor performance, a dual-core MT machine with four thread contexts per core is utilized. These specific benchmarks are chosen to allow the workload to include programs with both favorable and unfavorable cache locality. To eliminate the issue of wasting the wake-up signals, this work proposes an approach that involves storing all the wake-up calls. It asserts the wake-up calls to the consumer and the producer can store the wake-up call in a variable. An assigned value in working system (or kernel) storage that each process can check is a semaphore. Semaphore is a variable that reads, and update operations automatically in bit mode. It cannot be actualized in client mode since a race condition may persistently develop when two or more processors endeavor to induce to the variable at the same time.
 This study includes code to measure the time taken to execute both functions and plot the graph. It should be noted that sending multiple requests to a website simultaneously could trigger a flag, ultimately blocking access to the data. This necessitates some computation on the collected statistics. The execution time is reduced to one third when using threads compared to executing the functions sequentially. This exemplifies the power of multithreading.","PeriodicalId":9244,"journal":{"name":"Brazilian Journal of Poultry Science","volume":"26 1","pages":"0"},"PeriodicalIF":1.1000,"publicationDate":"2023-09-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Analysis of Multi-Threading and Cache Memory Latency Masking on Processor Performance Using Thread Synchronization Technique\",\"authors\":\"Akhigbe-mudu Thursday Ehis\",\"doi\":\"10.14295/bjs.v3i1.458\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Multithreading is a process in which a single processor executes multiple threads concurrently. This enables the processor to divide tasks into separate threads and run them simultaneously, thereby increasing the utilization of available system resources and enhancing performance. When multiple threads share an object and one or more of them modify it, unpredictable outcomes may occur. Threads that exhibit poor locality of memory reference, such as database applications, often experience delays while waiting for a response from the memory hierarchy. This observation suggests how to better manage pipeline contention. To assess the impact of memory latency on processor performance, a dual-core MT machine with four thread contexts per core is utilized. These specific benchmarks are chosen to allow the workload to include programs with both favorable and unfavorable cache locality. To eliminate the issue of wasting the wake-up signals, this work proposes an approach that involves storing all the wake-up calls. It asserts the wake-up calls to the consumer and the producer can store the wake-up call in a variable. An assigned value in working system (or kernel) storage that each process can check is a semaphore. Semaphore is a variable that reads, and update operations automatically in bit mode. It cannot be actualized in client mode since a race condition may persistently develop when two or more processors endeavor to induce to the variable at the same time.
 This study includes code to measure the time taken to execute both functions and plot the graph. It should be noted that sending multiple requests to a website simultaneously could trigger a flag, ultimately blocking access to the data. This necessitates some computation on the collected statistics. The execution time is reduced to one third when using threads compared to executing the functions sequentially. This exemplifies the power of multithreading.\",\"PeriodicalId\":9244,\"journal\":{\"name\":\"Brazilian Journal of Poultry Science\",\"volume\":\"26 1\",\"pages\":\"0\"},\"PeriodicalIF\":1.1000,\"publicationDate\":\"2023-09-25\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Brazilian Journal of Poultry Science\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.14295/bjs.v3i1.458\",\"RegionNum\":4,\"RegionCategory\":\"农林科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"AGRICULTURE, DAIRY & ANIMAL SCIENCE\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Brazilian Journal of Poultry Science","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.14295/bjs.v3i1.458","RegionNum":4,"RegionCategory":"农林科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"AGRICULTURE, DAIRY & ANIMAL SCIENCE","Score":null,"Total":0}
引用次数: 0

摘要

多线程是指单个处理器并发执行多个线程的过程。这使处理器能够将任务划分为单独的线程并同时运行它们,从而提高了可用系统资源的利用率并提高了性能。当多个线程共享一个对象并且其中一个或多个线程修改它时,可能会发生不可预测的结果。内存引用局部性差的线程(如数据库应用程序)在等待内存层次结构的响应时经常会遇到延迟。这个观察结果为如何更好地管理管道争用提供了建议。为了评估内存延迟对处理器性能的影响,我们使用了一个双核MT机器,每个核心有四个线程上下文。选择这些特定的基准是为了允许工作负载包含具有有利和不利缓存局域性的程序。为了消除浪费唤醒信号的问题,本工作提出了一种包括存储所有唤醒信号的方法。它将唤醒调用断言给消费者,生产者可以将唤醒调用存储在一个变量中。在工作系统(或内核)存储中,每个进程可以检查的赋值是一个信号量。信号量是一个以位模式自动读取和更新操作的变量。它不能在客户端模式下实现,因为当两个或多个处理器试图同时诱导变量时,竞争条件可能会持续发展。 本研究包括用于测量执行两个函数所花费的时间和绘制图形的代码。应该注意的是,同时向一个网站发送多个请求可能会触发一个标志,最终阻止对数据的访问。这需要对收集的统计数据进行一些计算。与顺序执行函数相比,使用线程可以将执行时间减少到三分之一。这体现了多线程的强大功能。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Analysis of Multi-Threading and Cache Memory Latency Masking on Processor Performance Using Thread Synchronization Technique
Multithreading is a process in which a single processor executes multiple threads concurrently. This enables the processor to divide tasks into separate threads and run them simultaneously, thereby increasing the utilization of available system resources and enhancing performance. When multiple threads share an object and one or more of them modify it, unpredictable outcomes may occur. Threads that exhibit poor locality of memory reference, such as database applications, often experience delays while waiting for a response from the memory hierarchy. This observation suggests how to better manage pipeline contention. To assess the impact of memory latency on processor performance, a dual-core MT machine with four thread contexts per core is utilized. These specific benchmarks are chosen to allow the workload to include programs with both favorable and unfavorable cache locality. To eliminate the issue of wasting the wake-up signals, this work proposes an approach that involves storing all the wake-up calls. It asserts the wake-up calls to the consumer and the producer can store the wake-up call in a variable. An assigned value in working system (or kernel) storage that each process can check is a semaphore. Semaphore is a variable that reads, and update operations automatically in bit mode. It cannot be actualized in client mode since a race condition may persistently develop when two or more processors endeavor to induce to the variable at the same time. This study includes code to measure the time taken to execute both functions and plot the graph. It should be noted that sending multiple requests to a website simultaneously could trigger a flag, ultimately blocking access to the data. This necessitates some computation on the collected statistics. The execution time is reduced to one third when using threads compared to executing the functions sequentially. This exemplifies the power of multithreading.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
Brazilian Journal of Poultry Science
Brazilian Journal of Poultry Science 农林科学-奶制品与动物科学
CiteScore
1.80
自引率
9.10%
发文量
60
审稿时长
>12 weeks
期刊介绍: A Revista Brasileira de Ciência Avícola surgiu em 1999 a partir da necessidade que a comunidade científica possuía de um periódico para veiculação e publicação de seus trabalhos, com a publicação de três números anuais. A Revista conta hoje com um corpo editorial altamente qualificado e com artigos científicos desenvolvidos pelos maiores especialistas da área, o que a cada dia atrai mais leitores em busca de inovação e respaldo técnico. Devido à credibilidade que conquistou pelos esforços de sus autores, relatores e revisores, a Revista ganhou caráter de coleção, sendo consultada como fonte segura de estudo desenvolvidos na Avicultura. A partir de 2003 – volume 5 -, a Revista passou a chamar-se Brazilian Journal of Poultry Science, e todos os trabalhos passaram a ser publicados em inglês. No mesmo ano subiu para quatro o número de revistas por volume, ampliando-se assim os trabalhos publicados anualmente.
×
引用
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学术官方微信