如何确认实际上* *在运行时使用的库Octave

时间:2014-05-29 19:08:59

标签: makefile octave atlas

我使用ATLAS库(特别是多线程库:libtatlas.so)构建了八度(成功)。

在配置和制作过程中(经过大量调试之后)看起来都很顺利,但在制作Octave之后我仍然看到矩阵乘法运算在单个线程中运行(ATLAS库应该使该操作成为多线程)。

有没有办法可以看到Octave实际上实际使用的库,当它执行矩阵乘法运算时,例如:

x = rand(10000,10000); y = rand(10000,10000); t=time(); 
z = x * y; 

我正在尝试确定这是否仍然是构建问题(例如,Octave没有在正确的ATLAS库中链接)或者这是否是ATLAS问题(Octave使用正确的库但ATLAS的行为不符合预期)。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Linux平台,则可以使用ldd最轻松地调试库分辨率。如果您只是在应用程序二进制文件上运行它:

ldd <the binary file>

它将输出库依赖关系如何解析的列表。

更复杂的方法是在运行应用程序之前将LD_DEBUG设置为libs

env LD_DEBUG=libs <command to run application>

这将输出信息到命令行,显示整个共享库分辨率和初始化过程。