集群调度:描述调度集群的推测线程

时间:2014-01-11 17:50:14

标签: multithreading cluster-computing scheduler

更新澄清:

T1被安排到一个集群,并依次触摸内存位置1,2,3,4,5,然后再返回1.

T2被同时调度到同一个集群并顺序触摸内存位置6,2,3,然后尝试写入1,而T1依赖于内存位置1仍为之前的状态。

我想在T2写入内存位置1之前,T2应该等待或者等待执行到群集上,直到T1完成。

是否可以确定T1需要保持一致的内存位置,例如内存位置1,并将此信息存储在表中。这样,在T2执行到集群之前,T2可以检查表中需要写入的内存位置,看到T1依赖于内存位置1,从而将T2的执行延迟到集群?

类似于下面PDF中的3.2章节。

感谢您的帮助。


我正在研究计算机科学课程的一个主题,我们可以如何理解并改进它。我选择的主题是群集调度。

我一直在阅读http://apt.cs.man.ac.uk/people/yiapanip/taco13yiapanis.pdf

等论文

似乎在调度线程时,检查与访问相同内存位置的其他线程的冲突,在线程写入并提交到内存后发生。有没有办法确定线程想要提交?

是否有信息(要知道的关键字)保存线程正在写入的内存位置表,以便在仅检查执行时写入的内存位置后,可以将后续线程调度到集群线程?如果存在对内存位置的写入,后续线程需要,则该线程停止,但如果未写入内存位置,因此不在表中,则可以将后续线程调度到该集群。 / p>

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

仍然不能100%确定群集的精确含义,但这是基于共享内存机器和基于软件的简单TLS系统*的答案。


要选择延迟T2的执行,您需要知道T2的读写集,并将它们与所有正在执行的线程的飞行集进行比较。

通常,这是不可能的,因为读写集可以依赖于数据:

a[i] = b[c[i]] 

话虽如此,使用静态近似或使用剖析可能会成功。


尽可能多的建议灵感,以及你需要记住的事情

  • 请记住:访问顺序很重要:RAW,RAR,WAR。

  • 一个有趣的引文供您追踪:

      

    Arnamoy Bhattacharyya。 2013.输入是否重要?使用数据依赖性分析来评估BlueGene / Q中的线程级别推测。出现在并行体系结构和编译技术(PACT '13)

    这表明你可能能够最大限度地减少对输入依赖性的担忧。

*软件TLS,因为整个对话在hardware speculation platform.上没有实际意义。