文章出处: developerWorks
作者:Cameron Laird
您的公司除了为过时的小型计算机通常需要的特殊电能和通风付费以外,是否还要为运行旧的Fortran程序所需的软硬件支付繁重的许可证费用和支持费用?如果是的话,那么可以开始试着将那些程序重新部署到Linux服务器上,并了解一下在提高这些应用程序性能或有效性的同时,能砍掉多少那样的费用。
Linux还主管了许多基于Fortran的新工作(比您可能意识到的还要多)。Linux程序员之间的语言之争通常涉及像Java、Python、C++或甚至C#这样的流行语言。在这种情况下,于二十世纪五十年代末最早发明的 Cobol、Fortran 和 Lisp 这些语言所做的有用工作量可能会出乎您的意料。
特别是,Fortran已在Linux下找到了快乐的家园。本月的“服务器诊所”概述了您应该了解的在 Linux 上使用 Fortran 的重要性以及如何了解更多信息。
求助于 Linux
不要认为一谈到Fortran就一定要追溯历史。围绕Fortran开展的行动有很多:国际 J3 委员会起草了新的Fortran2000标准、编译器工程方面已经取得令人瞩目的发展以及每年产生了大量新应用程序。有关 Fortran 的各种消息都暗示Linux在新的开发中所占比例在不断增加;例如,在高性能面向科学的群集上通常都少不了 Fortran和Linux。Linux4chemistry目录,以及科学和工程方面最类似的目录以拥有许多用Fortran编码的程序为特色。程序员对Fortran很熟悉而且Fortran在性能方面优于C,这使它继续受到技术程序员的青睐。
Linux对旧的应用程序所起的作用虽然不太明显,但经论证更有趣。有一个用Fortran 编码的庞大“骨干”程序累积,其中的一些程序已有长达三十五年的历史了,支持全世界范围的企业和实验室中日常的操作。在某些领域中,与“旧”相关联的只有Y2K泡沫。但是与它相关的远不止这些;成千上万个用Fortran编码的程序在每个工作日都报告财政状况、控制工厂设备、分析实验数据、管理人事记录、切换通信硬件以及执行类似的重要功能。这些程序中的许多在其所担当的角色中都完美地运作着,而且除了运行它们的硬件发生老化以外,并不需要特别更改。例如,Hewlett-Packard的MPE和OpenVMS产品线的退休向客户发出了一个严峻的挑战,因为在过去的几十年中,他们一直依赖这些小型计算机品牌。
Linux能解救这些问题。服务器级别的Linux机器很可靠,能长时间正常运行,提供了良好的系统服务(包括异构网络中的互操作性),主管各种高质量的Fortran编译器并且很安全(至少可与其它准备向企业提供的系统相比拟)。银行、制造商和政府机构通常为了“整合”,正悄悄地将他们的许多旧程序移到 Linux 上。
对于这样的迁移,Linux服务器的质量和可用性是让人非常满意的;在我访谈过的组织中,这些项目的结果通常都比预期的好。但是,由于竞争、安全性和通常在法律方面的原因,在我遇到的所有人中,没人愿意“公开发布”访谈。金融公司和制造公司如果透露他们内部过程的细节,不仅得不到任何好处,反而有许多风险。但是,军事计算的相对开放与此形成了鲜明的对比。例如,大家都知道许多武器系统和战役的模拟都是用 Fortran 编写的。英国国防部在 Linux 上主管了 F3 狂风(Tornado)战斗机的分析程序。
如果您在处理这样的旧应用程序迁移或向正从事Fortran开发的团队提供支持,以下是您应该知道的用于Linux的Fortran参考资料:
大量可用的标准和工具
流行的各个Linux分发版一般包含GNU项目的免费G77Fortran编译器副本。这个编译器提供了命令行参数,这些参数允许该处理器处理范围很广的Fortran(根据66、77、90和95标准及几种变体编码)。G77 在灵活性和可移植性方面占优,但却以性能为代价,所以良好调优的商业编译器的市场依旧会很繁荣。请注意 G77 通常被安装成名为“f77”的可执行文件,其它几个 Fortran 编译器也是如此。
甚至在专有编译器和工具之中,也可以免费获得几个,包括一种用于 Linux 的 Intel 7.0Fortran编译器的可下载形式。这个编译器性能极佳,看来它在x86和Itanium级Linux主机上会有光明的未来,因为 Intel 的编译器组整合了曾在 DEC、Compaq 和 HP 确立声誉的工程团队。
有几家公司提供了各种转换程序。这些工具可能会映射源代码,例如可以将符合F77的源代码映射成F95文本。尽管转换程序在过去一直很重要,但在当前的LinuxFortran用户中,我已经很少碰到依赖它们的用户。只要通过调优他们的Fortran编译器,当前的项目似乎就满足了他们的需求。比使用命令行参数时遇到的难题更棘手的通常涉及专门和专有语言扩展;处理它们需要人类程序员具备熟练的转换技能。不管哪种情况,自动源代码转换程序在当前已没有多少优势。
其它工具现在似乎更流行。有几种交互式开发环境(IDE)(包括Absoft的ProFortran)可以处理 Fortran。概要分析也是一项成熟的技术,对于重视性能的人很有用。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10797429/viewspace-101681/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10797429/viewspace-101681/