多核时代,嵌入式编程和应用之出路
2007年7月中旬,英特尔公司在大连召开“2007英特尔中国多核技术学术论坛”,来自全国40多所高校的近百名教师济济一堂,探讨多核时代的软件编程方法和应用方案。
本文引用地址:http://www.amcfsurvey.com/article/78693.htm摩尔定律=晶体管预算+最低功耗+最低成本
Intel副总裁兼中国产品开发总经理王文汉博士指出,摩尔定律也随着时代的变迁而变换着内容。1965年诞生的摩尔定律预测每两年晶体管的密度翻一番。最早是在芯片上晶体管密度提高;后来变为速度提升,即CPU的主频越来越快;此时又带来了散热问题,因此现在追求能耗的降低。既追求密度、又追求功耗和成本的结果,就诞生了多核。
Intel处理器目前的主频不是追求快,但密度要高,因此未来1~2年多核将独领风骚,到2008年,10个Intel处理器中有8个是多核。今后3~5年,Intel将没有单核。
不过,过去CPU没有多核,现在多核编程与单核之间的落差非常大,所以市场上对多核软件的需要产生了迫切要求,同时为软件开发人员带来了机会。在多核软件领域,没有第一也没有最后,全世界都站在同一条起跑线上,希望中国的软件工程师抓住此机会。
多核环境下软件的特点是:开源,虚拟化,图形化,并行性。据Gartner Dataquest于2007年2月公布的报告,今后5年开源软件的年增长率将达到24.3%。过去采用分时化,现在是虚拟化:一个高速处理器可以虚拟成多个计算单元;同样,多核也可虚拟成一个高速处理器。现在的Silicon Life(硅时代)非常注重有好的图形效果,例如google图形搜索,游戏中3D场景出现,因此下一代软件将在图形上下足功夫。涉及到未来多核的应用方式,如何进行并行化编程,如何利用多核的庞大的计算功能?这是一个巨大的挑战。
图1 多核环境下软件的特点
多核编程的挑战
多核的产生是计算机系统结构发展之必然,这也带来了设计思想的根本转变。
武汉大学电子信息学院杨剑锋副教授认为,多核的困难之处在于答案是无解的。他以一个小学生的奥数题进行举例:在一个三角形中放入小三角形,再放入一条线,让同学们数里面有多少三角形,结果每个同学数出的结果是不同的。他又把同学们分成几人一组,以团队的形式数,结果每组正确率大大上升。杨教授的结论是:多核会产生时间线程的不同,因此多核、多线程就像解三角形这类数学题,解题时要考虑到各种情形,尤其困难之处在于每个程序员的方法别人是难以模仿和检验的。通过多人的集体智慧,成功率可大大提高。
浙江大学计算机学院的陈天洲教授指出,开发多核软件需要市场上出现多核编译器。他说:“从单核到多核,移植是个大问题,尤其是软件架构的移植。在单核时代,出现了操作系统,使人们看不见后面的硬件。目前能否有编译器,使写软件的人,不论是写Java还是C++,可利用编译器自动把任务分配到多核上。这是个挑战。”其他教授补充道,至于同构还是异构的,双核还是32核的,任务是如何分配的,应该是后台编译器的工作。就像学开车、开飞机,没必要先了解如何造汽车、造飞机。
英特尔亚太研发公司战略拓展经理芮斌举了另一个多核软件的例子,有人问他:多核就像十月怀胎,肚子里的孩子如何能让十个妈妈每人怀一个月?面对SMP(对称多处理),有的应用只能串行,不能并行。芮斌的答案是,多核的任务是让十个妈妈怀十个孩子。
可见,多核必须要找到用武之地,如果用不好,不仅浪费资源,而且更加耗电。浙大程教授指出:异构核适合比较密集的应用,例如多媒体视频处理,压缩/解压缩,有个组合,一个主做,另一个辅助。不过,这当然带来了很多的麻烦,包括软件设计上的。
多核在嵌入式的应用
“这些年来,嵌入式技术方面总是滞后于PC;但现在差距在缩小。” Intel中国嵌入式产品事业部技术市场经理王禾介绍道。由于Intel全面引入了多核,因此,Intel在努力寻找需要高性能、超低功耗的领域。
在商业上的应用,例如机场,现在大都是电子客票,每台机器都是嵌入式计算机。美国卖CD、DVD的商店,有一个大型的计算机,有大型的存储器和众多触摸屏,顾客可根据需要选择不同的CD与DVD节目来试听。777飞机上每个座位上都有一台VoD(视频点播)电视。工业自动化上的大型流水线。
无风扇也是多核的优势,特别适合没有噪音的场合。在医疗领域中,手术设备可采用多核处理器。一些人机交互产品也需要没有噪音的多核产品。
在安全监控系统中,传统模式是“摄像机+录像机”,采用多核后,不仅一台机器可以录下内容,还能监控,同时完成存储,并可很快被调出,而且还是多路。
在物流上,可以实现丰富的人机交换。例如连锁商场连接至整个大型库房网络,这里如果缺货,哪个州/省、哪家商店有立刻可以查到;另外,如何加密保护自己商店的内容也是下一步的课题。
由于多核是典型的高性能、低功耗,也很适合野外应用,例如地质仪器。
当然,嵌入式不是原始技术,是综合技术。在应用之后,要让人感觉不到多核。
评论