中文 英语
系统与设计
白皮书

卡恩过程网络:无竞争和不确定性的并行编程

1974年的并行编程模型如何用线程方法解决问题,包括竞赛和非确定性。

受欢迎程度

现代个人计算设备具有多核特性。这不仅适用于台式机、笔记本电脑、平板电脑和智能手机,也适用于树莓派这样的小型嵌入式设备。为了利用这些平台的计算能力,应用程序程序员被迫以并行方式编写代码。大多数情况下,它们使用线程方法。这意味着代码的多个部分同时执行,并且可以访问同一组共享数据。然而,使用线程的并行编程非常复杂,而且很难调试。当一个线程修改了可能被其他线程读取的数据时,程序员必须插入适当的同步。几乎每个使用过线程的程序员都经历过数据竞争和/或非确定性行为。在这种情况下,应用程序可能会显示错误或崩溃,但一旦加载到调试器中,它就会顺利完成。产生这种影响的原因是线程执行的时间会影响线程内部的计算行为。 This means that if the timing changes, e.g. due to the OS scheduling the threads in a slightly different way, the threads might behave slightly differently — or in the worst case do something completely different.

Kahn过程网络(KPNs)方法是一种并行编程方法,也允许利用多核系统的潜力。它是由Gilles Kahn在1974年发明的。(他的论文原文可在以下网址浏览:http://www1.cs.columbia.edu/~sedwards/papers/kahn1974semantics.pdf这个编程模型避免了数据竞争和不确定性的问题。

点击在这里阅读更多。



留下回复


(注:此名称将公开显示)

Baidu