回 帖 发 新 帖 刷新版面

主题:[讨论]Stack Overflow

同样的代码,在CVF里运行成功,在IVF里栈溢出。
修改Project-Properties-Linker-System-Stack Reserve Size无效果。
请问可能是什么原因?
溢出发生在LFCCG()函数,是IMSL中的矩阵LU分解函数。

虽说在CVF里可以运行,但是是在旧电脑里。
今后扩大问题的规模,需要更多的内存,就必须用装IVF的新电脑了。
谢谢!

回复列表 (共8个回复)

沙发

自己的数组改用动态内存分配试试呢?

板凳

比较大的数组都allocatable了。

我猜测程序本身没有问题,因为在旧电脑的CVF上可运行。
不知是不是IVF设置的问题。

3 楼

除了IVF设置问题,还有一种可能是IMSL 6.0里的矩阵LU分解函数LFCCG()和CVF里的不一样。
因为栈溢出就是发生在LFCCG()处的,并且同样的程序,同等的矩阵大小,在CVF里就是可以分解的。

4 楼

不知有没有人习惯用MKL的,里面的算法如何?
在使用栈方面会不会比IMSL要强一些?

如果MKL优于IMSL的话,我试一试,只是没有把握,不知会不会做无用功。

5 楼

已改用BLAS等有源码的东西了:)

6 楼

试试lapack的dgetrf

7 楼

五楼cgl_lgs:我看了一下BLAS的介绍,所有的Linear Solver都是解上三角/下三角系数矩阵的。你确定可以解一般性的矩阵吗?我的矩阵是复数矩阵,非三角、非带状,非对称,非Hermite正定。

我是在www.netlib.com看的。

8 楼

理論上來說應該是可以的,您的矩陣是密實的?
c打頭的函數就是復數參數:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册