一种基于任务窃取的任务调度方法及系统
摘要:
本发明公开了一种基于任务窃取的任务调度方法及系统,该方法的实现包括:构造任务依赖图,将依赖节点作为回调函数注册至被依赖节点的回调容器中;为线程池中各线程分配一个无锁双端队列并置空,将根节点按照轮询方式放入各线程的无锁双端队列底部;若线程的无锁双端队列不为空,则从无锁双端队列底部取出节点并执行;若线程的无锁双端队列为空,则从其他线程的无锁双端队列顶部窃取节点,并将窃取的节点压入该线程的无锁双端队列底部,取出窃取的节点进行执行;在所有节点任务执行完成后,将任务依赖图中各节点的入度恢复到原始值,并结束对主线程的阻塞。本发明针对大型任务级并行应用程序,可以有效提高传统任务级并行应用程序的性能。
公开/授权文献
0/0