cube.cubex库分析器

cubex的Python项目详细描述


cubex是一个用于分析多维数据集(.cubex)配置文件的python模块。

快速入门指南

cubex仍在进行中,但它当前可用,并且 以下说明将帮助您开始。

要创建新的Cube对象,请打开一个新文件。

>>importcubex>>prof=cubex.open('profile.cubex')

使用show_metrics()函数列出可用的度量。

>>>prof.show_metrics()bytes_sentvisitstime...

默认情况下,cubex不会将所有可用的度量加载到内存中。装载 所需的度量,例如time,使用read_data()函数。

>>prof.read_data('time')

Cube将调用树存储在列表中,prof.calltrees。对大多数人来说 程序,这将由一个条目组成。对于包含 多个可执行文件(MPMD),每个程序的调用树将是 列表。

调用树可以使用 配置文件的调用树。

>>prof.calltrees[0].print_tree()

这将显示调用树的每个节点,按深度缩进,并标记为 它对应的区域。

在这一点上,如果用户对调用树有一些直观的感觉,那么它会有所帮助 在个人资料里。(如果有人对如何改进这一点有意见,请 提交反馈。)

话虽如此,如果一个人知道 兴趣,然后使用region属性访问数据。

>>prof.regions[reg].cnodes[<cubex.calltree.CallTreeobjectat0x7f4437892f90>,<cubex.calltree.CallTreeobjectat0x7f4437539f10>,...]

这将返回调用树中每个节点(实际上是子树)的列表,其中 函数被调用。

要区分cnodes,可以检查其调用树(使用 print_tree())或检查其父节点。

>>cnode=prof.regions[reg].cnodes[0]>>cnode.parent.region.name'function_name_calling_cnode_'

也可以检查节点索引(cnode.idx),尽管这需要一些 树本身的知识,可以使用立方体图形检查 浏览器。

最后,要在目标cnode处获取度量值,请访问 metrics属性。

>>prof.regions[reg].cnodes[0].metrics['time'](496.59532077590507,291.106782542039,496.5975198073004,...)

这将返回以每个计算单位度量的时间列表,例如 MPI列组或OpenMP线程。

注释

  • 区域名遵循c约定。Fortran程序通常会转换 任何函数名都要小写,并将_附加到 函数名。例如,名为GET_LAPLACIAN的函数将 存储为get_laplacian_

    这是通常的惯例,但是其他编译器可能会偏离这个 因此,建议您在访问这些区域之前检查它们。

  • 目前,main分支只支持score-p输出。斯卡拉斯卡 输出略有不同,目前在 cubex

    我们有一些内部版本可以工作,但还不方便用户使用 在公开发行之前需要做一些清理。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用servlet的正确方法是什么?   java Android ListView选中所有复选框(自定义ResourceCursorAdapter)   java如何在一个活动中正确处理多个片段交互侦听器?   java jUnit和忽略继承的测试   具有多个权限的java ActivityResultLauncher   Java:我可以通过应用程序将客户端重定向到loadbalancer后面的同一个会话/节点吗?   java如何使用Hibernate保存具有一对一关系的两个类?   java JEditorPane字体大小设置不准确   java为什么JUnit4导入不被识别,即使JUnit4在我的有效pom中。xml?   多次使用流后的java空映射   JavaSwing中AccessibleContext的用途是什么?   java指定使用T的类   java查找twitter4j转发速率限制   枚举的Java数组(类)   java通过Maven build排除了一些类