对于这样的问题,您实际上提出的要求使Fortran处于列表的顶部:
一)数字运算
B)paralellable
c)其是,现在仍然是事实上的 CS研究的语言教外(工程师谁不是专业的程序员)。
d)拥有令人难以置信的(!)行业支持,并且是许多行业级别的编译器明智的选择,而且没有一家供应商显示出放弃该分支的最少迹象。不久前英特尔的一位代表透露,他们的Fortran产品的销售量比其开发工具中的其他产品都要高。
这也是一种难以置信的语言。我不同意让研究助手尽快投入时间。我的第一本教科书上只有不超过30(?)页的稀疏印刷文本,哦,我不知道。它是一种语言,在学习了10个关键字之后,可以编写中等大小的程序。我敢说,用默认的Word文本编写的那30页对于大多数用户来说将构成一本更加全面的“ Fortran手册”。
如果你感兴趣的CUDA,你可能要检查波特兰集团的编译器,它支持它。我对更好的细节并不熟悉,但人们通常赞扬它。
除此之外,对于并行程序,您还可以使用OpenMP,MPI以及现在即将推出(且期待已久)的协同阵列,英特尔的编译器最近实现了它们。为了不浪费言语,Fortran具有用于程序并行化的非常好的“库”伽马。
为此,首先开发了行业标准的数字库,其他语言则或多或少地出现在功能/例程组合中。
话虽这么说,但是我还是会建议(取决于最初编写的时间)是F77代码或更旧的代码,还是随着时间的流逝部分地将其重写为较新的方言-至少是F90,如果可能的话还可以使用F2003功能。一个有关该主题的论文/论文近日发表(中等大小的PDF文件前面)。如果做得正确,不仅可以确保跨多个平台的可移植性,还可以使将来的维护更加容易。
ps就“未来维护”而言,只是我有时会提到的一部轶事。在撰写论文时,我重用了我导师的一些代码,这些代码是从撰写本文开始的35年前编写的。它只编译出一个错误。由于复制粘贴错误,结尾处缺少声明:)
@DaveMateer(回复评论) -我将在下面发表评论,这可能有点不礼貌,但请不要以错误的方式对待,因为这是出于公平的意图。
在我看来,您正在以错误的方式解决此“问题”。我的意思是简短的几点(因为现在还很晚,而且我能够整理可读(更不用说易于理解)的句子的能力使我在晚上10点之后离开。)
一)你提到你想尽量减少额外的编码时间,但你正在考虑从专门用于数值计算,以一个语言重写的语言丰富多彩的选择,如果你会原谅我的表情
- 其中一些不支持多维数组,除其他外
- 它们中的大多数不适合进行繁重的数值工作(我承认Haskell和Hadoop的并行处理能力,我对此一无所知,但从未听说过它们在那些圈子中)
- 它可能已经尝试过,但是我从未听说过将Fortran(一种离散问题的语言)重写为功能性语言的方法
- 最近在comp.lang.fortran(尝试通过Google网上论坛进行搜索)上进行了有关“云端”科学计算方面的讨论
(不想降低您的积极性,但是,公平地说,没有人真正确保这个词甚至代表什么,更不用说有成功应用的例子了。大多数人同意潜力的存在,但到目前为止,他们对目前的运作方式感到满意。许多问题也不适合这种并行化。
b)这样重写的费用是多少?人/小时。
c)-要编译的库的正确版本...-在任何语言中都是一个问题,无法避免,但是您可以看一下。
d)我听说过在某些场合并行应用程序中使用了Python(实际上是一种不错的语言),但是它在该市场的渗透率似乎并没有上升,而且它不断变化的性质使其成为一个非常差的选择。长期项目(请考虑向后兼容)。有些人非常喜欢它作为一种“胶水”语言。
gh,如果我有其他想法,请明天再添加。得睡一会...