新的软件设计技术允许程序运行更快
北卡罗莱纳州立大学的研究人员开发了一种新的软件开发方法,该方法将使普通计算机程序的运行速度提高20%,并可能纳入新的安全措施。
研究人员已经找到了一种运行某些程序的不同部分的方法 - 包括第一次如此广泛使用的程序作为文字处理器和Web浏览器 - 同时使程序使程序更有效地运行。
为了理解他们是如何做到的,你必须对电脑有所了解。计算机芯片的大脑是它的中央处理单元,或称“核心”。计算技术已经发展到现在每个芯片上都有4到8个核的地步。但是对于一个利用这些核心的程序来说,它必须被分解成独立的“线程”——这样每个核心就可以同时执行程序的不同部分。把一个程序分解成多个线程的过程叫做并行化,并行化可以使计算机快速地运行程序。
但是,某些程序难以并行化,包括文字处理器和Web浏览器。这些程序像流程图一样运行 - 某些程序元素依赖于他人的结果。这些程序一次只能使用一个核心,最大限度地减少多核芯片的益处。
但是NC州立大学的研究人员已经开发出一种技术,通过使用非传统的方法将程序分割成线程,从而允许难以并行化的应用程序并行运行。
每个计算机程序都包含多个步骤。该程序将执行计算,然后执行内存管理功能 - 这准备内存存储器包含当前正在使用的数据或释放内存存储。在一个周期中,它一遍又一遍地重复这些步骤。并且,对于难以平行化程序,传统上,这两个步骤都在单一核心中进行。
“We’ve removed the memory-management step from the process, running it as a separate thread,” says Dr. Yan Solihin, an associate professor of electrical and computer engineering at NC State, director of this research project, and co-author of a paper describing the research. Under this approach, the computation thread and memory-management thread are executing simultaneously, allowing the computer program to operate more efficiently.
“通过在一个单独的线程上运行内存管理功能,这些难以并行化的程序可以以大约20%的速度运行,”Solihin说。“这也为开发新的内存管理功能打开了大门,这些功能可以识别程序行为中的异常,或执行额外的安全检查。以前,这些功能会耗费过多的时间,降低整个程序的速度。”
使用新技术,当需要执行内存管理功能时,“计算线程通知内存管理线程 - 有效地告诉它分配数据存储并通知存储空间所在位置的计算线程,”devesh tiwari,ph.d.在NC州和纸的主要作者的学生。“通过同样的令牌,当计算线程不再需要某些数据时,它通知内存管理线程可以释放相关的存储空间。”
这篇题为“MMT:在动态内存管理中开发细粒度并行”的论文将于4月21日在亚特兰大举行的IEEE国际并行和分布式处理研讨会上发表。这项研究由美国国家科学基金会资助。该论文由Tiwari、Solihin、北卡罗来纳州立大学博士生Sanghoon Lee和北卡罗来纳州立大学电子与计算机工程助理教授James Tuck博士共同撰写。
北卡罗来纳州立大学电气和计算机工程系是该校工程学院的一部分。
- 船员 -
编辑注:演示文稿摘要跟随。
MMT:利用动态内存管理中的细粒度并行性
作者:Devesh Tiwari,Sanghoon Lee,James Tuck,北卡罗来纳州立大学
提出了:2010年4月21日,在IEEE国际平行和分布式处理研讨会上,亚特兰大。
抽象的:在本文中,我们提出了一种新的方法,可以通过将动态管理功能卸载到我们称为内存管理线程(MMT)的单独线程来加速多核体系结构上的动态内存管理的新方法。我们表明,通过提取并行性,可以通过提取并行于底层内存管理库算法和数据结构来提取显着的性能改善。我们还展示了MMT提供的并行性如何对高开销存储器管理任务有益,例如,与内存管理相关的安全检查。我们在英特尔酷睿2 Quad平台上评估了MMT,用于两个广泛使用的内存分配器:Doug Lea和Phkmalloc分配器。平均而言,MMT为两种分配器实现了1.19倍的加速比,而应用程序和内存管理库都未被修改,并且对并行化方案令人沮丧。对于PHKMALLOC与安全检查打开,MMT将安全检查开销降低21%,平均仅为1%。
- 类别:
