英特尔公司的一名研究人士在个人博客中表示,软件开发人员需要考虑代码库方面出现的重大变化,为多核计算作好准备。
英特尔正在促使软件开发人员考虑为处理器核心数量可能多达上千个的硬件平台编写程序。
这则忠告出现在英特尔微处理器技术实验室的首席工程师Anwar Ghuloum撰写的一篇研究博客上。这名研究人士在近日发表的Unwelcome Advice(“不受欢迎的忠告”)博客中,表示他一直在日益与开发人员探讨,如何将性能提升到与“我们还没有交付”的处理器核心数相当的水平;“但在某些情况下我们强烈暗示,我们正在往多核这个方向迈进。”
Ghuloum说:“我们在谈论数十个、数百个乃至数千个核心,这并不是什么罕见的设计。”
他表示,根据数量众多的核心编写程序时,开发人员就要在算法方面从头搞起。开发人员应当考虑代码库方面的重大变化,包括诸多语言、库以及软件工程方法及惯例。
Ghuloum说:“最后,我给出的忠告就是,这些开发人员应当开始考虑算法开发及部署环节可能面对数十个、数百个乃至数千个核心。”
在研究机构、石油天然气和金融服务等行业,在高性能计算环境下从事工作的开发人员熟悉多核开发。不过,主流开发人员不太可能另外花心思、针对比目前产品中更多的核心来编程。
Ghuloum说:“对更多主流的应用程序开发人员来说,这则忠告(即为多核环境作好准备)通常不受欢迎,不过鼓舞人心的迹象是,开发人员自己越来越慢慢认识到这一点。”
至于英特尔,这家芯片生产商正在研制开发人员将来需要的工具。比方说,英特尔的研究人员已开发出了一种名为Ct的编程语言,这门语言专门面向多核计算。
该语言是C/C++的一种扩展,而软件开发人员对C/C++非常熟悉,他们让应用程序准备好可以在英特尔或者竞争对手AMD公司的平台上运行。虽然其他语言需要开发人员手动分隔代码以便在特定的核心上运行,但Ct却能自动完成这项工作。英特尔的高级研究人员Mohan Rajagopalan近日在接受媒体采访时说:“有了Ct,那简直就像是针对单核机器来编程。你把它交给编译器和运行库,即可实现并行处理。”
英特尔开发的Ct编译器可根据数据类型以及针对数据执行的操作来分隔代码,以便在不同的核心上运行。英特尔还开发了针对这种编译器的运行库和应用编程接口(API)。