计算特征值问题求解器的 FLOP 数量

计算科学 特征值 复杂
2021-12-05 23:19:52

我有 2 个复杂的非对称矩阵A1000×1000,B1000×1000我正在使用 Matlab 来获取它的特征值(像 eig 或 eigs 这样的函数)。两个矩阵是不同的 - 一个更密集,另一个具有更复杂的值。为了比较两个矩阵的特征值求解过程的复杂性,我想计算此过程所需的 FLOP 数。当然,可以计算特征值求解器完成其任务所需的时间,但这非常不稳定,因为许多后台进程可能会产生一些噪音。

在 Matlab 中,没有函数可以让我获得eigs的 FLOP,但我可能会使用其他软件,因为我只需要这些矩阵A,B可以导出的。有没有人知道我如何才能达到我的目标?

1个回答

该解决方案将使用 PAPI(性能 API)库http://icl.cs.utk.edu/papi/有 Windows 和 Linux 版本。为了在 MATLAB 或 Octave 代码上使用它,您必须在 github 上添加由 quepas 编写的 mPAPI:https ://github.com/quepas/mPAPI 。然而,这需要 PAPI 版本 >= 5.5.1,并且由于 Windows 版本的 PAPI 在 3.x 版本之后没有继续,因此您将不得不使用 Linux。

现在它工作得非常好并且计算 FLOPs。PAPI 为此提供了很多预定义的事件。