Fortran Coder

MKL库GETRS函数access violation问题

查看数: 1571 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-2-15 10:53

正文摘要:

求助各位大佬,我现在需要进行一个大型线性方程组求解,系数矩阵的维度为(N*N=34000*34000),使用的类型是REAL(kind=4),在调用MKL库GETRS函数的时候出现access violation问题,请问怎么解决?堆栈上限已经调到最 ...

回复

cqflhl 发表于 2023-4-28 12:15:07
堆栈我一般只设置reserve size 1000000000
按你的设置commit size 1000000000
结果直接报错
OMP: Warning #2: Cannot open message catalog "2052\libiomp5ui.dll":
OMP: System error #126: 找不到指定的模块。
OMP: Info #3: Default messages will be used.
OMP: Error #136: Cannot create thread.
OMP: System error #8: 内存资源不足,无法处理此命令。
cqflhl 发表于 2023-4-28 12:10:19
1033257950 发表于 2023-2-16 07:31
已解决,改用单精度SGETRF和SGETRS函数后可以正常运行。CPU占用率低是因为没有打开MKL库的并行模式,在项目 ...

我用ggevx求特征值及向量也碰到同样的问题, REAL8, 阶数<=100可以求解, 超过了在调试状态下也可求.
按你的方法改成sggevx, 报错, 好像这个函数只能在F77下使用,
如果用REAL4, 但仍然用ggevx, 提示错误        1         error #6285: There is no matching specific subroutine for this generic subroutine call.   [GGEVX]

之所以用双精度, 因为以前在CVF+IMSL的时候发现双精度和单精度求解的结果相差非常大, 可以说单精度得到的结果是错误的       
1033257950 发表于 2023-2-16 07:31:01
已解决,改用单精度SGETRF和SGETRS函数后可以正常运行。CPU占用率低是因为没有打开MKL库的并行模式,在项目-属性-Fortran-Libraries-Use Intel Math Kernel Library 中选择Paralle即可

评分

参与人数 1F 币 +2 收起 理由
fcode + 2 赞一个!

查看全部评分

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-9 08:56

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表