Tag: fortran

最佳Fortran IDE

有没有人在stackoverflow上使用Fortran? 你用什么IDE,你认为哪一个最好? 英特尔Visual Fortran似乎很多人围绕我很不方便。 因为不支持intellisense,重构等

Fortran与C ++,现在的Fortran在数值分析方面还有什么优势?

随着C ++编译器,特别是intel的快速发展,以及在你的C / C ++代码中直接使用SIMD函数的能力,Fortran在数值计算领域还有什么真正的优势呢? 我来自math应用背景,我的工作涉及到大量的数值分析,计算,优化等等,有严格定义的性能要求。 我对Fortran几乎一无所知,我在C / CUDA / matlab方面有一些经验(如果你认为后者是一种计算机语言),我的日常任务包括分析非常大的数据(例如10GB大matrix),看起来这个程序至less花了2/3的时间在内存访问上(这就是为什么我把它的一些工作交给GPU),你们认为这对我来说可能是值得的一些性能关键的部分我的代码来改善我的程序的性能? 因为那里需要完成的复杂性和事情,如果只有在那里有显着的性能上的好处,我才会去做这个例程。

我应该学习Fortran还是C ++来扩展R?

我使用相当大的数据集进行机器学习(他们仍然适合内存),我写了一些R中的计算,我发现它们太慢了。 因此,我想用我将从R调用的编译代码replace程序的“关键部分”。我手中的一个示例问题是实现前向后向algorithm 。 我的问题是,我应该学习Fortran还是C ++来做到这一点? 我只需要使用数字向量或matrix。 我主要感兴趣的是哪种语言更容易学习和从R的界面,我并不在乎我的简历上看起来更好。 我已经阅读了R扩展手册,并通过一些简单的Fortran和C ++代码使用了内联包。 我目前的印象是Fortran95的学习会比较简单,虽然Rcpp包也很有趣。 我目前知道R,Python和Matlab。

在Python中打包遗留的FORTRAN。 可以使用`setuptools`和`numpy.distutils`吗?

我正在尝试为我的领域中的一些stream行的Fortran代码做一个python包分发。 我希望它使用setup.py文件最标准的方法。 相关问题有助于学习如何打包Fortran扩展 。 当使用这种方法时,我注意到混合setuptools和numpy.distutils时有一些混淆的行为。 混合两者是不好的做法? 截至2015年,似乎最好尽可能使用setuptools 。 不过,我想用与numpy.兼容的方式构buildFortran扩展numpy. 所以我想从numpy.distutils导入来获得Extension和setup 。 我正在使用以下基本方法: from setuptools.command.develop import develop from numpy.distutils.core import Extension, setup ext_modules=[Extension("my_package.fortran_mod", sources=['src/fortran_mod.f'])] class MyDevelop(develop): def run(self): my_script() develop.run(self) setup( … ext_modules=ext_modules, cmdclass={'develop':MyDevelop}) 这似乎工作,但我有问题。 混合setuptools和numpy.distribute通常是一个好的做法吗? 我input的订单是否重要? 我应该总是先导入setuptools ? 有没有官方的最新教程打包numpy扩展? 也许甚至有一些讨论Fortran扩展? – 一些链接 http://www.fortran90.org/src/best-practices.html#interfacing-with-python

如何为android-ndk8b(x86 arch Android)构buildi686-linux-android-gfortran?

我尝试使用build-gcc.sh构buildi686-linux-android-gfortran(这是forrodindk-7b),但是我得到关于link.h的错误。 我从这里添加了link.h,但是它提供了更多的错误。 有没有人试图启用x86的Android的i686-linux-android-gfortran?

为什么fortran用于科学计算?

我读过Fortran仍被大量用于科学计算。 对于已经在Fortran中投入很大的代码,这对我来说是有意义的。 但是有什么理由使用Fortran而不是其他现代语言来实现新项目? Fortran中的语言devise决策与其说是比较stream行的语言(C ++,Java,Python,Ruby等)相比,是否更适合科学计算? 例如,Fortran的特定语言特性是否可以使编译器中的数值优化与我提到的其他语言相比具有更高的程度?

科学程序员阅读清单

我正在努力成为一名科学程序员。 我在math和统计方面有足够的背景,但缺乏编程背景。 我发现学习如何使用一种语言进行科学编程是非常困难的,因为大多数SP的参考文献都是微不足道的。 我的工作涉及统计/财务build模,没有涉及物理模型。 目前,我广泛使用Python和numpy和scipy。 完成R / Mathematica。 我知道足够的C / C ++来读取代码。 没有Fortran的经验。 我不知道这是不是一个科学程序员的语言清单。 如果是这样的话,在科学环境中学习这些语言的语法和devise模式是一个很好的阅读列表。

为什么定义PI = 4 * ATAN(1)

将PI定义为什么的动机是什么? PI = 4.D0 * DATAN(1.D0) 在Fortran 77代码中? 我明白它是如何工作的,但是,推理是什么?

用python读取二进制文件

我发现使用Python阅读二进制文件特别困难。 你能帮我一下吗? 我需要阅读这个文件,这在Fortran 90中很容易阅读 int*4 n_particles, n_groups real*4 group_id(n_particles) read (*) n_particles, n_groups read (*) (group_id(j),j=1,n_particles) 具体来说,文件格式是: Bytes 1-4 — The integer 8. Bytes 5-8 — The number of particles, N. Bytes 9-12 — The number of groups. Bytes 13-16 — The integer 8. Bytes 17-20 — The integer 4*N. Next many bytes — The […]

编写健壮的“现代”Fortran代码

在一些科学环境中,由于大多数开发人员只知道习惯用法,并且有很多遗留代码和相关经验,所以经常不能没有FORTRAN。 坦率地说, 高性能编程没有太多其他的跨平台选项(C ++可以完成这个任务,但是语法,零开始数组和指针与某些人不兼容)。 因此,我们假设一个新的项目必须使用Fortran 90,但是我想用最新的编译器(Intel ifort,还包括Sun / HP / IBM编译器)来兼容最新的软件架构, 所以我正在考虑强加一些广为人知的常识,但在我的环境中还不是一个标准: 全局variables被禁止,没有gotos,没有跳转标签, implicit none ,等等。 “面向对象的编程”(具有数据types和相关子程序的模块) 模块化/可重用的function,有据可查的可重用的库 断言/先决条件/不变式(使用预处理器语句实现) 所有(大多数)子程序和“对象”的unit testing 一个强烈的“debugging模式”( #ifdef DEBUG )与更多的检查和所有可能的英特尔编译器检查可能(数组边界,子程序接口等) 统一并强制执行易读的编码风格,使用代码处理工具助手。 所有的目标都是要有值得信赖,可维护和模块化的代码。 而在大量的遗留代码中,可重用性并不是一个重要的目标。 我search了关于面向对象的Fortran,合同编程(断言/前置条件/​​等等)的参考资料,并且find了没有大型项目参与的人员所做的丑陋和过时的文档,语法和论文以及死了的项目。 任何有关此主题的良好url,build议,参考文献/书籍?