开源科学计算语言Fortress
3s领域,尤其是gps, rs里,很多的庞大的计算功能,如果用通用编程语言,如c,c++,java,实在是离业务太远,用matlab,fortran等,又不好集成。
Sun又有开放源代码动作,这一回是广邀各界协助打造一种称为"Fortress"的全新程序设计语言。
Sun日前悄悄把原型Fortress"解译器"(interpreter)发布为开放源代码软件。解译器是一种程序设计工具,用来逐行执行Fortress程序。
Sun实验室计算机科学家兼Fortress项目领导人Eric Allen说:"我们设法邀请学术界人士及其它第三者共襄盛举。"
Sun希望以Fortress取代50年前在IBM诞生的Fortran程序设计语言。Fortran至今仍活用于高效能计算机运算任务,例如气象预报。
尽管Fortress脱胎自美国国防部的超级计算机赞助计划,但也处理主流的运算问题--更轻易地促使多核处理器内的新型处理器引擎提高性能。
Allen说:"随着多核运算对一般桌面系统的重要性提高,程序设计师必须转用 Fortress这类语言,以便利用硬件性能。"
英特尔与AMD目前生产的主流x86芯片具有双重或四个处理核心,Sun的Niagara芯片拥有八个核心,不久后将提高到16个。然而,软件却难以分割成各自独立的片断、在那些核心当中平行运作,或越跨多重处理器运作。
Illuminata分析师Gordon Haff说:"对一些类型的工作负载(workload)来说,PC业做得不错。Google就是平行运算的问题。有些工作负载调节得很好,但许多则不 然。从那些工作负载榨出平行运算,是长久来的计算机科学问题。程序已有,但距离解决问题还十万八千里远。"
Sun希望Fortress有助于解决此问题,让开发人员能以在多核心平台上运作更佳的方式撰写程序。
例如,Fortress程序设计人员必须明确表明什么时候软件不应平行执行,这跟一般的预设作法相反。当Fortress程序执行"for"循环 (loop)--一项重复的任务--Fortress就会自动把这项任务分割成几个片段,并把每一段派送到不同的核心、处理器或服务器去处理。
Fortress也试图以智能方法存储数据,以便数据在需要使用时可就近在处理器附近获取。Sun认为,这对由独立服务器通过高速网络组成的大型计算机丛集(clusters)而言,尤其有用。
然而,RedMonk分析师Stephen O'Grady说:"要吸引大批程序设计师转用那个语言,非常难。"
采用开源的方式,是吸引新程序设计人员的自然选择。近年来,PHP、Python、Perl和 Mono等新语言都有开源底子。就连Sun的Java也已成为开源软件。
但O'Grady说,Fortress的未来可能变成"极小众化"(extremely niche) 。
Sun的Fortress解译器根据开原码BSD授权发布。但正式版Fortress的控制权仍掌握在Sun手中,所以,至少目前外部程序人员必须把他们贡献的程序交由Sun控制。
Fortress目前只初具雏形。Sun去年9月发布alpha版Fortress语言格式,但尚未拍板定案。而且,解译程序也在初步阶段。
未来,Sun希望除了打造解译器之外,也打造编译器(compiler),以便事先把软件译成某种计算机能解读的形式。编译软件通常执行速度比解译器快。
另外,Sun希望将来也推出最佳化的编译器(optimizing compiler),此技术可在软件执行时调整软件的编译版,以便改善效能。