Python中数值线性代数的仪器

时间:2010-06-19 20:09:03

标签: python numpy scipy linear-algebra instrumentation

我使用numpy进行数值线性代数。我怀疑如果我对如何执行某些计算进行小的修改以使它们更有效,例如,我可以获得更好的性能。

我想知道在python中是否有任何形式的检测可用于检测缓存和TLB未命中。有一个非常好的api,PAPI,我在最近的课程中学到了它,但它没有Python界面:

http://icl.cs.utk.edu/papi/overview/index.html

另外,有一个很好的方法来分析numpy或其他python数字代码吗? timeit模块很难集成到代码中。 mpi4py有一个很好的方式来使用MPE库进行配置。演示代码的一个片段(demo / mpe-logging / cpilog.py):

communication   = MPE.newLogState("Comunicate",  "red")
with communication:
    comm.Bcast([n, MPI.INT], root=0)

创建可以图形方式显示的日志文件。但这有点MPI具体。

感谢。

2 个答案:

答案 0 :(得分:1)

也许其中一个提供的分析器可能会帮助您找到热点?

请参阅profiling python

这些可能无法提供足够的细节来触发直接行动,但应指出在哪里寻求改进并帮助确定收益递减点。

答案 1 :(得分:1)

罗伯特·克恩(NumPy开发者之一)为这个场景编写了line_profiler。它比Hotspot / cProfile更适合分析NumPy重的代码。