Questions tagged «fortran»

23
对于繁重的计算,Fortran是否比C更容易优化?
我不时地读到,对于繁重的计算,Fortran比C更快,甚至可以更快。是真的吗 我必须承认,我几乎不了解Fortran,但是到目前为止,我所看到的Fortran代码并未表明该语言具有C所没有的功能。 如果是真的,请告诉我原因。请不要告诉我哪种语言或库最适合数字运算,我不打算编写应用程序或库来做到这一点,我很好奇。
410 c  performance  fortran 

8
BLAS如何获得如此出色的性能?
出于好奇,我决定将自己的矩阵乘法函数与BLAS实现进行基准测试……我对结果并不感到惊讶: 自定义实施,1000 x1000矩阵乘法的10个试验: Took: 15.76542 seconds. BLAS实施,10次10​​00x1000矩阵乘法试验: Took: 1.32432 seconds. 这是使用单精度浮点数。 我的实现: template<class ValT> void mmult(const ValT* A, int ADim1, int ADim2, const ValT* B, int BDim1, int BDim2, ValT* C) { if ( ADim2!=BDim1 ) throw std::runtime_error("Error sizes off"); memset((void*)C,0,sizeof(ValT)*ADim1*BDim2); int cc2,cc1,cr1; for ( cc2=0 ; cc2<BDim2 ; ++cc2 …
108 c++  fortran 

6
用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 …
104 python  binary  fortran 

2
numpy如何比我的Fortran例程快得多?
我从仿真中得到了一个代表温度分布的512 ^ 3数组(用Fortran编写)。该阵列存储在大小约为1 / 2G的二进制文件中。我需要知道此数组的最小值,最大值和均值,并且由于不久以后无论如何我都需要了解Fortran代码,因此我决定尝试一下,并提出了以下非常简单的例程。 integer gridsize,unit,j real mini,maxi double precision mean gridsize=512 unit=40 open(unit=unit,file='T.out',status='old',access='stream',& form='unformatted',action='read') read(unit=unit) tmp mini=tmp maxi=tmp mean=tmp do j=2,gridsize**3 read(unit=unit) tmp if(tmp>maxi)then maxi=tmp elseif(tmp<mini)then mini=tmp end if mean=mean+tmp end do mean=mean/gridsize**3 close(unit=unit) 我使用的计算机上的每个文件大约需要25秒。那让我感到震惊,因为它相当长,所以我继续使用Python进行了以下操作: import numpy mmap=numpy.memmap('T.out',dtype='float32',mode='r',offset=4,\ shape=(512,512,512),order='F') mini=numpy.amin(mmap) maxi=numpy.amax(mmap) mean=numpy.mean(mmap) 现在,我希望这当然会更快,但是我真的很震惊。在相同条件下,它花费不到一秒钟的时间。平均值偏离了我的Fortran例程找到的平均值(我也使用128位浮点数运行,因此我以某种方式信任它),但仅在第7个有效位数左右。 numpy怎么这么快?我的意思是,您必须查看数组的每个条目才能找到这些值,对吗?我是否在Fortran例程中做了一些非常愚蠢的事情,以使其花费了更长的时间? 编辑: 要回答评论中的问题: 是的,我也使用32位和64位浮点数运行了Fortran例程,但它对性能没有影响。 我使用iso_fortran_env了提供128位浮点数的代码。 …

10
在现代时代学习FORTRAN
我最近来维护大量科学计算密集的FORTRAN代码。尽管有google和两本入门级书籍,但我在处理40岁语言的所有细微差别方面都遇到了困难。该代码充斥着“性能增强改进”。没有人有任何导游或实际的建议去到CS 101的水平-optimizing FORTRAN?有谁知道FORTRAN代码优化的运作方式?Java / C ++ /。NET提出的开发人员接管FORTRAN 77/90代码库时,可能不会发生任何典型的FORTRAN“陷阱”吗?
78 fortran 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.