当前位置:主页 > 科技论文 > 计算机论文 >

多核系统上可伸缩的读写同步

发布时间:2018-03-13 12:09

  本文选题:多核系统 切入点:性能 出处:《复旦大学》2014年硕士论文 论文类型:学位论文


【摘要】:随着计算机硬件技术的飞速发展,单个处理器性能的增长已经遇到了瓶颈,处理器个数的增长成为了提高单个计算机性能的主要发展方向。处理器个数的增长给应用程序的性能提升带来了新的机遇,也带来了性能和正确性上的挑战。为了充分的利用这些处理器资源,操作系统和计算密集型的应用正在向并行化的模型演进。在一个并行的系统中,多个任务之间往往需要共享一些信息以进行协同工作。为了使得多个任务可以正确有序的访问这些共享信息,并行程序采用同步的方法对不同任务的访问进行控制和限制,使得对每一个单独的任务来说,这些共享信息都维持着某种一致性。错误的使用同步可能会导致并行程序的错误或者影响其执行的性能,设计一个易于正确使用,而又具有良好性能的同步原语是一个十分重要的问题。一个理想的同步原语应该具有定义清晰的较强的语义保证,同时又尽量不影响应用在多核系统上的可伸缩性。读写锁是一种在语义上非常清晰的同步机制,它将对共享状态的访问者分为读者和写者两个类别,在同一时刻,仅允许一个写者进入临界区更新共享状态,或允许多个读者同时进入临界区读取共享状态。因为其易于理解的语义,读写锁在操作系统内核以及并行应用程序中得到了广泛的应用。理论上说,因为读写锁中的不同的读者并没有逻辑上的依赖,多个读者在没有写者的情况下应该可以快速的进入和离开临界区,并且不需要相互通信。事实上,现有的读写锁设计中,往往读者获取锁时要产生相互通信,或者使用昂贵的内存屏障指令确保同步的正确性。这些设计限制了使用读写锁的并行系统中读者的可伸缩性和吞吐量。针对读写锁的潜在性能问题,我们设计了一个高可伸缩的读写锁算法PRWLock,这一算法巧妙利用了现代多核系统较短的内存写可见时间以及较小的核间中断开销,在满足TSO内存一致性模型的系统上实现了不需要共享信息以及内存屏障的读者锁,同时保证了写者锁可接受的性能。我们进一步发现,在现代主流操作系统中的睡眠,唤醒机制会对同步机制的可伸缩性造成限制。当多个因为某一条件而进入睡眠的任务的唤醒条件达到时,唤醒操作是由单一任务串行完成的。针对这一问题,我们设计了操作系统中可以并发的唤醒睡眠任务的机制PWake,并将其与PRWLock相结合实现了可伸缩性更好的读写同步机制。为了验证这两种机制的有效性,我们在Linux的内核和用户态分别实现了PRWLock,并结合了PWake唤醒机制。我们将PRWLock应用在了Linux内核的地址空间管理机制上和一个用户态的内存数据库中,多项实验表明PRWLock具有同前人研究成果相似或更好的性能特性,并且更加易于部署到现有并行系统中。
[Abstract]:With the rapid development of computer hardware technology, the performance of a single processor has met with a bottleneck. The increase in the number of processors has become the main development direction for improving the performance of a single computer, and the increase in the number of processors has brought new opportunities for improving the performance of applications. It also presents performance and correctness challenges. In order to take full advantage of these processor resources, operating systems and computationally intensive applications are evolving to parallel models. In order to enable multiple tasks to access the shared information correctly and orderly, parallel programs use synchronous methods to control and restrict access to different tasks. For each individual task, this shared information maintains some consistency. The wrong use of synchronization can lead to errors in parallel programs or affect their performance, and design a design that is easy to use correctly. The synchronization primitive with good performance is a very important problem. An ideal synchronization primitive should have clear definition and strong semantic guarantee. Read and write locks are a semantically clear synchronization mechanism that classifies shared state visitors into two categories, reader and writer, at the same time. Only one writer is allowed to enter the critical area to update the shared state, or multiple readers are allowed to enter the critical section at the same time to read the shared state. Read-write locks are widely used in operating system kernels and parallel applications. In theory, because different readers in read-write locks do not have logical dependencies, Multiple readers should be able to quickly enter and leave the critical area without a writer and do not need to communicate with each other. Or use expensive memory barrier instructions to ensure the correctness of synchronization. These designs limit reader scalability and throughput in parallel systems using read-write locks. We design a highly scalable read-write lock algorithm, PRWLock. this algorithm makes good use of the shorter memory write visible time and the lower inter-core interrupt cost of modern multi-core system. Reader locks that do not require a shared information and memory barrier are implemented on systems that satisfy the TSO memory consistency model, while ensuring the acceptable performance of the writer lock. The wake-up mechanism limits the scalability of the synchronization mechanism. When the wake-up conditions for multiple tasks entering sleep due to a given condition are met, the wakeup operation is done serially by a single task. In order to verify the effectiveness of the two mechanisms, we have designed a mechanism for concurrent wake-up of sleep tasks in the operating system, PWake. and combined it with PRWLock to achieve a more scalable read / write synchronization mechanism. We have implemented PRW locklock in Linux kernel and user state, and combined with PWake wake-up mechanism. We have applied PRWLock to address space management mechanism of Linux kernel and a memory database in user state. Many experiments show that PRWLock has similar or better performance characteristics than previous studies, and it is easier to deploy to existing parallel systems.
【学位授予单位】:复旦大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP332

【相似文献】

相关期刊论文 前10条

1 徐超;何炎祥;陈勇;刘健博;吴伟;李清安;;一种多核系统可靠性加强的任务调度方法[J];电子学报;2013年05期

2 刘磊;;对片上多核系统的系统结构的研究[J];电脑知识与技术;2008年29期

3 刘彩霞;石峰;谢小怡;薛建平;宋红;;面向嵌入式多核系统的可共享多通道便签存储器设计与实现[J];小型微型计算机系统;2010年07期

4 刘聪林;陈迎春;;簇型多核系统原型设计与验证[J];中国集成电路;2011年05期

5 Frank Ko;;涡轮增压多核系统[J];世界电子元器件;2006年11期

6 蔡德霞;钟诚;韦兴柳;林孔升;;多核系统上任意2序列公共元素的并行查找[J];合肥工业大学学报(自然科学版);2012年02期

7 谢炯;潘红芳;程金宏;王文阁;额尔敦;;多核系统性能检测及调优策略研究[J];电力信息与通信技术;2014年01期

8 虞保忠;张灯;徐晓光;胡宁;;嵌入式多核系统中断负载均衡研究[J];电子技术;2014年03期

9 胡哲琨;陈杰;;消息传递型片上多核系统的设计[J];湖南大学学报(自然科学版);2013年08期

10 李东生;高明伦;;高密度集成与单芯片多核系统及其研究进展[J];半导体技术;2012年02期

相关会议论文 前1条

1 蔡德霞;钟诚;韦兴柳;林孔升;;多核系统上任意两序列公共元素的并行查找[A];全国第22届计算机技术与应用学术会议(CACIS·2011)暨全国第3届安全关键技术与应用(SCA·2011)学术会议论文摘要集[C];2011年

相关博士学位论文 前4条

1 张琦;多核系统中的程序性能优化研究[D];中国科学技术大学;2010年

2 傅琛;面向多核系统的高性能硬件事务存储的优化研究[D];哈尔滨工业大学;2011年

3 刘彩霞;基三片上多核系统TriBA存储体系关键技术研究[D];北京理工大学;2010年

4 刘志强;面向多核的系统级MPI通信优化关键技术研究[D];国防科学技术大学;2011年

相关硕士学位论文 前10条

1 刘然;多核系统上可伸缩的读写同步[D];复旦大学;2014年

2 尹凯;基于总线架构的多核系统编程模型及数据安全性研究[D];合肥工业大学;2009年

3 王轶群;多资源单处理器及多核系统上节能调度问题的研究[D];东北大学;2010年

4 邢慧敏;面向块处理的多核系统互连及存储机制的研究[D];上海交通大学;2011年

5 任懿;适合多核系统的分布式温度探测网络的设计[D];哈尔滨工业大学;2010年

6 农俊康;基于虚拟机的多核系统确定执行技术研究[D];国防科学技术大学;2011年

7 史成伟;多核系统中的内存管理系统优化研究[D];电子科技大学;2009年

8 郑龙;多核系统的高效机器视觉处理研究[D];广东工业大学;2015年

9 李筱;面向异构多核系统的并行计算模型和调度算法研究[D];湖南大学;2012年

10 周会娇;异构多核系统多媒体流计算实时任务调度策略研究[D];华中科技大学;2013年



本文编号:1606329

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/1606329.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户cd15a***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com