sjlinger 最近的时间轴更新
sjlinger

sjlinger

V2EX 第 393419 号会员,加入于 2019-03-19 14:10:05 +08:00
sjlinger 最近回复了
@justou 不好意思,说的还是简单了,我再补偿下,Fortran 代码主要的就是上面这些了,其它的就是读文件里的数据给 lat 和 lon,已经定义变量了,其它的没有更多了,我也是怕会生成额外的计算耗时,所以不敢加多余的语句。编译器和编译代码都一样,编译器是 gfortran,Python 的代码也是读了赋给 lat 和 lon 的外就是 var=loop.test(lat,lon),剩下的就是 Fortran 函数自己去算了,但好像这个论坛上传不了文件,所以再现没大有可能。如果您愿意,咱们可以加个好友,我把数据文件发您,您在您那测一下,我肯定感激不尽。
附上个我测试 f2py 的性能数据:
real-time: 49.16020 #这是 Python 调用 Fortran 函数时,我计算的函数内部运算的耗时,
如果是允许 Fortran 编译器编译的,是 13.66936 这么长时间

/-----------------------\
< F2PY performance report >
\-----------------------/
Overall time spent in ...
(a) wrapped (Fortran/C) functions : 49705 msec
(b) f2py interface, 1 calls : 113 msec
(c) call-back (Python) functions : 0 msec
(d) f2py call-back interface, 0 calls : 0 msec
(e) wrapped (Fortran/C) functions (actual) : 49705 msec

Use -DF2PY_REPORT_ATEXIT_DISABLE to disable this message.
Exit status: 0
@justou 您好,实在是百度给挖出来的,而且我也确实为此而困惑,所以不断搜索。我建了个贴,请您移步 https://www.v2ex.com/t/546561#reply0,谢谢
@justou 您好,最近在用 Python 调用 Fortran 程序时发现一个很费解的问题。问题是这样的:我用 Fortran 程序写了一个三重循环大概每个循环在 1000 次左右,用 ifort 编译后运行用时 15s 左右,同一个三重循环,稍微改变下适合 f2py 编译及 Python 调用,循环则一点没变,用 f2py 编译完用 Python 调用,这三重循环用时 50s 左右,请问这是为什么?谢谢
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2643 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 15:12 · PVG 23:12 · LAX 07:12 · JFK 10:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.