调用fortran函数会使程序挂起

时间:2012-08-15 13:59:15

标签: c++ fortran

我试图用C ++中的静态Fortran库调用函数。

根据问题的大小,我的程序开始挂起对Fortran库函数的初始调用。我无法理解这个问题的原因......

举个例子,如果问题大小是133k,程序会在没有挂起的情况下启动并正常结束。但是,如果我将问题大小增加到365k或更多,这些大问题会导致在第一个函数调用中挂起程序。 intel和gnu编译器都会导致相同的行为。

这可能是什么原因造成的?

编辑:OS:Linux,我检查的是我的shell的堆栈大小,特定于库的环境variblaes,btw库是Watson Sparse矩阵包,稀疏线性求解器,问题大小是大小作为求解器输入的矩阵运算符。我不能发布任何代码,因为有很多依赖项,它会使流程更复杂。

1 个答案:

答案 0 :(得分:0)

你在机器上有多少内存?多少掉期?

如果大量使用swap,最终可能会花费大量时间来读取和写入交换,这会使调用真的变慢。

如果Fortran库中使用的算法具有更高的复杂性,那么通过更多输入可能会(更多)获得更长的调用时间。