On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs

On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programs
复制标题

动态维护 fork-join 多线程程序中的串并关系

DOI:
10.1145/1007912.1007933
复制
发表时间:
2004
期刊:
2012 Design, Automation & Test in Europe Conference & Exhibition (DATE)
影响因子:
--
通讯作者:
C. Leiserson
C. Leiserson
中科院分区:
--
文献类型:
--
作者:
M. A. Bender;Jeremy T. Fineman;Seth Gilbert;C. Leiserson

文献摘要

被引文献

相似文献

数据率检测器的关键功能是确定一个线程是否与另一个线程并行执行,或者线程是否必须以串联方式运行。 <i> sp </i> </b>)关系“ fork-join多线程”程序。 > O </i>(1)每个操作的摊销时间以前最佳算法需要每次操作的时间与塔琳的功能倒数,而订购员工的订单维护数据结构使我们能够实施比早期种族中使用的更有效的“英语 - 希伯布”标签方案探测器,尤其会产生改进的检测器检测器。可以在<i> o </i>中确定种族(<i> t </i> <f> 1 </inf>)的时间。例如,种族探测器,使用锁定的赛车。通过将sp order与风和莱斯森的串行<b> <i> sp-bags </i> </i> </b>算法相结合,我们获得了一种平行的SP-Maintanting算法,称为<b> <i> sp-hybrid </i> </b>。程序具有<i> n </i>螺纹,<i> t </i> <ff> 1 </inf>工作,而关键路径长度为<i> t </i> </i> <inf>∞< /inf>。 >/<i> p </i> +<i> pt,/i>∞)lg <i.n </i>)预期的时间。 - 处理器执行时间<i> p </i> = <i> o </i>(<i> t </i> </i> </iff> 1 </inf> t </inf> t </inf>∞</inf>)。当<i> p </i> = <i> o </i>(√<i> t </i> </i> </iff> 1 </inf> <i> t </i>) <INF>∞</inf>),但是工作增加了<i> o </i>(lg <i> n </i>)的因素。
A key capability of data-race detectors is to determine whether one thread executes logically in parallel with another or whether the threads must operate in series. This paper provides two algorithms, one serial and one parallel, to maintain series-parallel (<b><i>SP</i></b>) relationships "on the fly" for fork-join multithreaded programs. The serial <b><i>SP-order</i></b> algorithm runs in <i>O</i>(1) amortized time per operation. In contrast, the previously best algorithm requires a time per operation that is proportional to Tarjan's functional inverse of Ackermann's function. SP-order employs an order-maintenance data structure that allows us to implement a more efficient "English-Hebrew" labeling scheme than was used in earlier race detectors, which immediately yields an improved determinacy-race detector. In particular, any fork-join program running in <i>T</i><inf>1</inf> time on a single processor can be checked on the fly for determinacy races in <i>O</i>(<i>T</i><inf>1</inf>) time. Corresponding improved bounds can also be obtained for more sophisticated data-race detectors, for example, those that use locks.By combining SP-order with Feng and Leiserson's serial <b><i>SP-bags</i></b> algorithm, we obtain a parallel SP-maintenance algorithm, called <b><i>SP-hybrid</i></b>. Suppose that a fork-join program has <i>n</i> threads, <i>T</i><inf>1</inf> work, and a critical-path length of <i>T</i><inf>∞</inf>. When executed on <i>P</i> processors, we prove that SP-hybrid runs in <i>O</i>((<i>T</i><inf>1</inf>/<i>P</i> +<i>PT,/i>∞)lg <i.n</i>) expected time. To understand this bound, consider that the original program obtains linear speed-up over a 1-processor execution when <i>P</i>=<i>O</i>(<i>T</i><inf>1</inf>T<inf>∞</inf>). In contrast, SP-hybrid obtains linear speed-up when <i>P</i>=<i>O</i>(√<i>T</i><inf>1</inf><i>T</i><inf>∞</inf>), but the work is increased by a factor of <i>O</i>(lg <i>n</i>).