并行编程使大多数多核处理器

随着自动化系统变得越来越复杂,底层硬件必须灵活,以适应工程师的需求。

Aw 3303 0901 Tech

例如,一个工程师可以开发一个实时嵌入式控制系统,同时它的人机界面。也许该系统还具有计算密集型任务,如高速运动控制或机器视觉。

传统的逻辑是顺序的——也就是说,程序每次执行一个步骤。但如今日益复杂的系统往往需要同时发生几件事情,然后将它们结合在一起。

Jeff Meisel, LabView多核技术产品经理,美国国家仪器公司www.ni.com美国仪器和控制供应商德州奥斯汀公司(Austin, Texas)谈到了其复杂性。“我们已经看到硅的家伙们带来了新技术,从多核处理器到现场可编程门阵列(FPGA)芯片。另一个工程复杂性是分布式处理的趋势。为了从这个硬件获得最大的性能,我必须以并行的方式思考。从根本上说,这个过程是把问题分解成不同的任务。”

数据革命
并行编程是“高科技”圈子里讨论的一个话题,并逐渐延伸到制造业。例如,加州大学伯克利分校的计算机科学教授Joe Hellerstein在流行的科技博客GigaOm (www.gigaom.com),他说,“我们现在正在进入我称之为‘数据工业革命’的时代,大多数数据将被机器消除:软件日志、摄像头、麦克风、RFID阅读器、无线传感器网络等等。这些机器产生数据的速度比人类快得多,而且根据摩尔定律,它们的生产速度将呈指数级增长。

“存储这些数据很便宜,而且可以从中挖掘出有价值的信息,”Hellerstein继续说。“在这种情况下,并行编程有一些好消息。数据分析软件的并行性相当自然。事实上,用SQL(结构化查询语言)编写的软件已经并行运行了20多年。但随着‘大数据’成为现实,越来越多的程序员对在并行模型上构建程序感兴趣,他们经常发现SQL是一种不熟悉的、限制性的方式来讨论数据和编写代码。”

与传统的顺序方式相反,并行处理编程提出了独特的挑战。在线百科全书维基百科(http://en.wikipedia.org),“并行计算……使用多个处理元素同时解决一个问题。”这是通过将问题分解成独立的部分来实现的,这样每个处理元素就可以同时执行其算法的部分。处理元素可以是多种多样的,包括具有多个处理器的单个计算机、多个联网计算机、专用硬件或上述任何组合。”

美国国家仪器公司(National Instruments)的LabView图形编程系统本质上是并行的,根据其联合创始人和NI研究员Jeff Kodosky的说法,该公司认为数据流编程模型比c语言等语言具有内在优势www.ni.com状态,“在数据流模型中,框图上的节点相互连接以表示逻辑执行流,它们可以用来轻松地表示并行性。当一个框图节点接收到所有必需的输入时,它生成输出数据并将该数据传递给数据流路径中的下一个节点。数据在节点间的移动决定了方框图上函数的执行顺序。”

虽然NI在这方面有合理的偏见,但它确实表明,选择一种具有实现并行性的内置特性的编程语言为工业控制开发人员提供了显著的优势。他们不需要精通底层复杂的并行硬件,如多核处理器和fpga,就能获得性能优势。

因此,无论您是开发多处理控制应用程序还是大规模数据库操作,并行编程都可能是您未来的发展方向。

加里•Mintchellgmintchell@automationworld.com他是《自动化世界》的主编。

国家仪器公司。
www.ni.com

更好地控制