热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

服务器诊所:Fortran,在Linux上安家

文章标题:服务器诊所:Fortran,在Linux上安家。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  许多面向 Fortran 的开发人员在 Linux 上找到了快乐的家园。除了新的开发和移植,在 Linux 上使用 Fortran 这一任务中还有相当多的工作涉及旧的应用程序,其中一些已有三十五年以上的历史。
  
  您的公司除了为过时的小型计算机通常需要的特殊电能和通风付费以外,是否还要为运行旧的 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)战斗机的分析程序。
  
  大量可用的标准和工具
  首先是 Michael Metcalf 的参考资料页(请参阅下面的参考资料)。它收集了有关编译器、其它工具和文档的最广泛且最新的信息。
  
  流行的各个 Linux 分发版一般包含 GNU 项目的免费 G77 Fortran 编译器副本。这个编译器提供了命令行参数,这些参数允许该处理器处理范围很广的 Fortran(根据 66、77、90 和 95 标准及几种变体编码)。G77 在灵活性和可移植性方面占优,但却以性能为代价,所以良好调优的商业编译器的市场依旧会很繁荣。请注意 G77 通常被安装成名为“f77”的可执行文件,其它几个 Fortran 编译器也是如此。
  
  甚至在专有编译器和工具之中,也可以免费获得几个,包括一种用于 Linux 的 Intel 7.0 Fortran 编译器的可下载形式。这个编译器性能极佳,看来它在 x86 和 Itanium 级 Linux 主机上会有光明的未来,因为 Intel 的编译器组整合了曾在 DEC、Compaq 和 HP 确立声誉的工程团队。
  
  有几家公司提供了各种转换程序。这些工具可能会映射源代码,例如可以将符合 F77 的源代码映射成 F95 文本。尽管转换程序在过去一直很重要,但在当前的 Linux Fortran 用户中,我已经很少碰到依赖它们的用户。只要通过调优他们的 Fortran 编译器,当前的项目似乎就满足了他们的需求。比使用命令行参数时遇到的难题更棘手的通常涉及专门和专有语言扩展;处理它们需要人类程序员具备熟练的转换技能。不管哪种情况,自动源代码转换程序在当前已没有多少优势。
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
author-avatar
徐崇杰嚼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有