0

我正在尝试从 C++ 中的静态 Fortran 库中调用函数。

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

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

这种挂起的原因可能是什么?

编辑:操作系统:Linux,我检查的是我的 shell 的堆栈大小,特定于库的环境变量,顺便说一句,库是 Watson 稀疏矩阵包,一个稀疏线性求解器,问题大小是矩阵的大小作为求解器输入的运算符。我不能发布任何代码,因为有很多依赖项,它会使过程更加复杂。

4

1 回答 1

0

你的机器有多少内存?换多少?

如果大量使用交换,您最终可能会花费大量时间来读写交换,这将使调用变得非常缓慢。

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

于 2012-08-15T14:02:33.640 回答