OSDI2010专题–确定的并行性(Deterministic Parallelism)

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




【陈怀临注:在现代OS,特别是多核OS的情况下,并行性的研究是最重要的部分之一。工业界的应用通常都比较naive或者simple–通过最简单的利用系统,从而remove任何系统资源(CPU,Mem,Interconnect)利用的非确定性。这种usage的最大缺点是导致了基于芯片的Bare Mental环境的产生和使用,从而导致了大量的3rd party app应用的无法及时apply。。。在今年的OSDI2010上,有三篇不错的文章关于Deterministic Parallelism。其中来自Yale大学的Efficient System-Enforced Deterministic Parallism更是获得了OSDI2010的Best Paper!!!。其中第3篇,来自哥伦比亚大学的文章是来自Junfeng Yang。弯曲评论的海外学人曾经介绍过这个来自清华大学,后毕业于西海岸斯坦福大学的青年才俊。。。不错,这次的OSDI2010的高调出场,基本上是Tenure到手了。恭喜,小杨!】

Deterministic Process Groups in dOS
Tom Bergan, Nicholas Hunt, Luis Ceze, and Steven D. Gribble, University of Washington

Awarded Jay Lepreau Best Paper!
Efficient System-Enforced Deterministic Parallelism
Amittai Aviram, Shu-Chun Weng, Sen Hu, and Bryan Ford, Yale University

Stable Deterministic Multithreading through Schedule Memoization
Heming Cui, Jingyue Wu, Chia-che Tsai,and Junfeng Yang, Columbia University

(2个打分, 平均:4.50 / 5)

雁过留声

“OSDI2010专题–确定的并行性(Deterministic Parallelism)”有5个回复

  1. processor 于 2010-11-21 11:18 下午

    OSDI’10的Deterministic Parallelism这一topic是对近10年来计算机体系结构中对shared memory系统中deterministic replay问题研究的延续。

    在共享存储系统环境下(shared memory, SMP, ccNUMA),多线程程序中如果存在data race,则其执行是非确定性的。例如:

    int A = 0; // initial value, global var

    thread 1 thread 2

    A = 1; R1 = A; // load R1, A

    A = 2;

    对于以上code snip,thread 2在运行时具体读取到A的什么值取决于运行时”R1 = A”和”A = 1″及”A = 2″间的相互次序(ordering)。同一程序的不同执行由于运行时访存读写操>作竞争次序不同,可能会导致执行的逻辑结果不同,所以共享存储并行程序(以下简称并行程序)的执行是不确定的(存在data race的情况下)。不确定性导致程序的调试十分不
    便,因为错误的场景在re-excution时有可能得不到重现。

    针对以上问题,研究人员对shared memory replay作了研究,研究工作的发展脉络如下:

    在处理器中用硬件逻辑记录memory race,重新执行时按照记录的信息重放。代表性工作有:
    FDR,RTR,Strata, Rerun, Delorean,LReplay。这些工作力求通过记录尽量少的memory race信息达到确定性重放的效果。其中LReplay是中科院计算所龙芯组的工作。

    在多核处理器硬件结构级支持确定性。代表工作是DMP。我认为DMP是一个很不错的idea。笼统的说,DMP可以达到如下效果,只要程序的外部输入不变(外设IO、系统调用),即使线程间存在data race,该程序在DMP上运行也是确定的。DMP的做法是在硬件结构级对各线程的访存操作进行定序,在概念上是反向的TLS(Thread Level Speculation)。DMP的具体做法较为复杂,涉及Transactional memory, cache coherence等背景知识。

    操作系统、虚拟机级支持确定性。在LReplay发表后,硬件结构支持replay的研究基本上走到了尽头。DMP为replay开辟了一个新的研究方向。但是DMP本身机制十分复杂,很难在实
    际的处理器中应用。但是DMP的思想是有效的,所以,关于共享存储程序确定性的研究已转移到软件领域。并且,可能只有软件的确定性方案最终能真正被实际应用。

  2. westermann 于 2010-11-22 1:35 上午

    好给力的回复!!

  3. 看客 于 2010-11-22 4:42 下午

    你现在还弄这个?
    DMP虽然能实现确定执行,但是是通过把本质上不确定(intrinsically non-determinism)强制为确定执行(deterministic execution)。因此表面看必定会影响性能,深层看违反了程序的本性。可能对特定一些程序没什么影响,但作为一个基础架构来应用不好说。

    这个领域有些group还是比较浮躁的,研究整体上都追求短平快,能出paper就是大爷。有些group试图做基础性问题,但paper方面肯定会暂时不得意。没辙,trade-off嘛。

  4. sarita 于 2010-11-23 12:45 上午

    看客在说我吗,你觉得luis这小虫怎么样,是不是特别给力

  5. machinariumer 于 2011-04-05 1:26 上午

    不错。“工业界的应用通常都比较naive或者simple–通过最简单的利用系统,从而remove任何系统资源(CPU,Mem,Interconnect)利用的非确定性。这种usage的最大缺点是导致了基于芯片的Bare Mental环境的产生和使用,从而导致了大量的3rd party app应用的无法及时apply。。。”这一句话好迷糊。