Architectural support for synchronization-free deterministic parallel programming

Architectural support for synchronization-free deterministic parallel programming
复制标题

对无同步确定性并行编程的架构支持

DOI:
--
复制
发表时间:
2012
期刊:
IEEE International Symposium on High-Performance Comp Architecture
影响因子:
--
通讯作者:
T. Abdelrahman
T. Abdelrahman
中科院分区:
--
文献类型:
--
作者:
Cedomir Segulja;T. Abdelrahman

文献摘要

被引文献

相似文献

我们提出了一种新的同步机制称为版本。它以一种对程序员透明的方式,在具有串行语义的并行程序中动态地建立确定性的内存访问顺序。这种顺序是以分布式方式创建的,并通过监视内存访问和在必要时停止线程来强制执行。版本控制产生了并行编程模型,其中程序员不需要显式地同步线程,而只需要指定共享数据,这大大简化了并行编程。然而,版本控制引入了开销,因此需要架构支持。我们描述了版本控制和它需要的架构支持。我们还提出了一个并行编程模型,利用版本,并使用它来并行化13个基准测试应用程序。我们建立了一个FPGA原型的多处理器系统与版本的支持,并显示出良好的并行加速。我们的分析表明,无论是在时间开销方面,还是在额外的硬件方面,版本控制的影响都很小。
We propose a novel synchronization mechanism called versioning. It dynamically establishes a deterministic order of memory accesses in parallel programs that have serial semantics, in a way that is transparent to the programmer. This order is created in a distributed manner and is enforced by monitoring memory accesses and stalling threads if necessary. Versioning gives rise to parallel programming models in which programmers need not explicitly synchronize threads and only need to specify shared data, which greatly simplifies parallel programming. However, versioning introduces overheads and thus demands architectural support. We describe versioning and the architectural support it needs. We also propose one parallel programming model that utilizes versioning and use it to parallelize 13 benchmark applications. We build an FPGA prototype of a multiprocessor system with versioning support and show that good parallel speedups are obtained. Our analysis shows minimal impact of versioning, both in terms of timing overheads and in terms of additional hardware.