什么工具可以做FORTRAN调用关系分析?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么工具可以做FORTRAN调用关系分析?相关的知识,希望对你有一定的参考价值。

手头有一堆fortran源码(200+ subroutine),有没有什么工具可以分析出这些subroutine之间的调用关系?

二) 你适合当程序员吗,你知道编程序是怎么回事吗?
1、 程序员意味着要编程序。(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你)
2、你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨。(说坦白点就是,在你没有找到乐趣以前,它很枯燥)
3、你有对新技术追求的热情吗?你有刨根问底的探索精神吗?(热情绝对是最重要的!你仔细思考一下自己的性格适合当程序员吗?)
4、当程序员决不是什么好差事,时刻需要学习,需要思考。(直到你成为那个可以引导别人去学习和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序员的未来很迷茫。(但我认为关键看你自己!我希望你是一个有追求的人,不仅仅是混碗饭吃。因为真正的乐趣在于创造;如果你能改变软件业的历史,那才是英雄;不想成为Bill Gates,不想成为Dennis Ritchie和 Bjarne Stroustrup,我会说你没有追求。有个关于程序员未来的笑话,也许你还没听过,你该听一听,摘抄如下:
一个程序员对自己的未来很迷茫,于是去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的”
于是他去问Lippman。
Lippman说“程序员的未来就是驾驭程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?
上帝说“我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的”
于是他去问Gates。
Gates说“程序员的未来就是榨取程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的”
于是他去问侯捷。
侯捷说“程序员的未来就是诱惑程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝摇摇头“唉,我的孩子,你还是别当程序员了”)
6、当程序员还是很有乐趣的。(当你学到新知识时,当你有新的思想见解时,当你有新的产品问世时,和知己探讨你的成果时…我问你,觉得这些是乐趣吗?)
7、当程序员不易也不难。(世间事有难易乎?为之…;不为…。你有决心和信心吗?)
8、你真的要当程序员?是你自己的想法?
9、你舍得花钱买书吗?(读好书绝对是学习编程的最佳捷径。你一定会说,现在电脑书籍真T.M.D贵,没法子,谁让知识和技术在人家的脑袋,在人家的书里呢;等你写书时可以把价格定低一点,记着还有好多没钱但想买书的兄弟很困难呀。要舍得买书,买好书,不好的的书不如不读,其害大于其益,关于买什么书,你可以问高手或看候捷的书评;准备一个小本子记录你想买的书的名字,逛书店时看看,如果好就买下,记住要读,别光买不看。)
10、我告诉你,程序就是:任何有目的的、预想好的动作序列,它是一种软件。
11、编程序就是编写程序。
12、你想好了吗?(如果你想好了还是决定要当程序员,可以继续往下读;否则,你可以继续寻找别的出路了。)
参考技术A Understand for FORTRAN
用于分析fotran程序源代码。特别适合大型代码的结构分析。
http://download.csdn.net/download/laughcry2002/2954266
支持功能:
自动分析程序结构。
给出程序结构图表,输出html文档。
找到一个子程序在哪里被使用, 子程序里面又调用了其他什么子程序,子程序里面的变量都是什么意思。
可以作出整个代码的程序结构图,让你对程序一目了然。
自动文档生成,复杂度分析,以及交叉参考功能。
支持FORTRAN 77 (F77) 和FORTRAN 90 (F9X)语言标准。
包含了一个具有语法着色功能的编辑器,它可以告诉你有关编辑内容的信息。
提供了快速的代码导航,详细的交叉参考,交互式的源代码浏览,通过HTML输出报告的自动的文件生成,以及能够与外部编辑器容易地集成。
还包含了一个PERL API和C/C++ API,你可以用来写脚本和程序以便从你的源代码中自动生成文档。

Fortran 和 MPI 的良好分析器

【中文标题】Fortran 和 MPI 的良好分析器【英文标题】:Good profiler for Fortran and MPI 【发布时间】:2013-08-14 00:55:46 【问题描述】:

对于包含 MPI 的 Fortran 代码库,您使用哪个分析器? gprof 似乎无法正常工作。 Sun Studio Analyzer 仅返回 C/C++ 系统调用的计时,并且不显示任何 fortran 函数。

【问题讨论】:

gprof 有什么问题?我用它来分析我的 MPI 程序没有问题。您是否使用-pg 编译了要分析的对象? 要求我们推荐或查找工具、库或最喜欢的非现场资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。 gprof 如果您的调用树很浅,并且对 I/O 所花费的时间视而不见(如果有的话),则可以。我使用this method,它与 Fortran 中的 GDB 一起使用。我关闭 MPI,进行性能调整,然后重新打开 MPI。 感谢@MikeDunlavey 的回答。 @IRO-bot:我已经正确使用了 gprof,但是从属日志和主日志输出不正确,或者大多数有时非常耗时的功能没有显示出来。所以我想看看是否还有其他选择。谢谢。 【参考方案1】:

有许多专门用于并行/MPI 程序的性能分析工具,例如:

Score-P,可与许多不同的分析工具一起使用,例如Cube, Vampir HPCToolkit 仅使用采样,因此您不必重新编译您的应用程序 Tau

起初它们可能没有那么简单易用,但它们为调查并行应用程序的性能提供了更多帮助。

【讨论】:

【参考方案2】:

当提问者说“gprof 似乎没有正常工作”时,也许他指的是 N MPI 进程可能会破坏 gmon.out 文件的事实。在这种情况下,(未记录的)GMON_OUT_PREFIX 环境变量可能会使 gprof 更有用:

$ export GMON_OUT_PREFIX=gmon.out
$ mpiexec -np 4 cpi

【讨论】:

【参考方案3】:

Allinea MAP 是一个简单明了但非常强大的分析器。

它旨在显示 Fortran、C 和 C++ MPI 应用程序中的性能问题,并且只需很少的努力即可开始并进行分析。

它是图形化的,并与源代码浏览器集成,可根据代码行显示性能,并能够分析不良 MPI 行为、不良工作平衡或不良矢量化。

我是产品背后的团队之一,所以有点偏见。它是商业的——网站上有评估许可证。

【讨论】:

【参考方案4】:

gprof 是 Fortran 和其他基于 GNU 的编译器的出色分析器。

【讨论】:

@CyrilDuchon-Doris 他可能读过,他的回答是对 SkypeMeSm 问题的反驳,因为他没有提供任何细节和解释“为什么 gprof 不能正常工作”【参考方案5】:

您可以使用Intel Trace analyzer 来配置 MPI 通信,使用Intel VTune 来获取单个 MPI 任务的配置文件。这两种软件都在英特尔网站上广泛记录。

【讨论】:

【参考方案6】:

我想再添加两个分析器:(1) mpiP 是一个轻量级分析器,可以产生文本输出,但只测量 MPI 函数。 (2) Scalasca - 这会产生一个复杂的输出,它也可以指向同步不平衡(延迟发送者/延迟接收者)(与不指向同步不平衡的 TAU 相反)。

【讨论】:

以上是关于什么工具可以做FORTRAN调用关系分析?的主要内容,如果未能解决你的问题,请参考以下文章

Linux c++ 性能分析工具gprof

Fortran 和 MPI 的良好分析器

源码分析神器 — Understand的使用教程

源码分析:静态分析 C 程序函数调用关系图

fortran调用 带有参数 且 返回类型为数组的函数 及 相关歧义分析

fortran调用 带有参数 且 返回类型为数组的函数 及 相关歧义分析