Fortran Coder

标题: 使用intel mkl的syevd函数求解特征值特征向量内存不足 [打印本页]

作者: mmSCI    时间: 2020-2-28 22:23
标题: 使用intel mkl的syevd函数求解特征值特征向量内存不足
使用intel mkl的syevd函数,求解特征值特征向量内存不足:Intel MKL INTERNAL ERROR: Insufficient workspace available in function SYEVD.我用的语言是fortran :call syevd(C,W,'V')



作者: mmSCI    时间: 2020-2-29 09:12
自顶自顶自顶自顶自顶自顶自顶
作者: li913    时间: 2020-3-1 11:10
矩阵多大?电脑内存多大?
作者: mmSCI    时间: 2020-3-1 17:31
li913 发表于 2020-3-1 11:10
矩阵多大?电脑内存多大?

矩阵20000*20000,服务器内存125G,不过我搞了搞又没事了。现在碰上一个新问题。fortran保存数组到dat是不是有行列限制?怎么我保存一个20000长度的向量到dat,保存之后变成了4000*5的。保存3*20000的二维数组变成10000*6,行列数都对不上。程序如下
M=20000
open(10,file='eigenvalue.dat')
      write(10,*) (W(i),i=1,M)
      close(10)
      open(11,file='eigenstate.dat')
      do i=1,3
          write(11,*) (EigenState(i,j),j=1,M)
      end do
      close(11)

作者: li913    时间: 2020-3-4 14:06
默认输出,每行不超过80字符。你需要用输出格式。
作者: mmSCI    时间: 2020-3-5 14:08
li913 发表于 2020-3-4 14:06
默认输出,每行不超过80字符。你需要用输出格式。

大神,前段时间的问题又出现了。为什么计算特征值时syevd函数老出错呢?
use lapack95,only: syevd
use blas95,only:gemm
call syevd(C,W,'V','U',info)
现在计算出来的特征值全是0,info=-1000
编译指令是ifort -mkl EM.f -o EM  /opt/intel/mkl/lib/intel64/libmkl_lapack95_ilp64.a /opt/intel/mkl/lib/intel64/libmkl_blas95_ilp64.a


作者: li913    时间: 2020-3-6 12:22
给个单位阵试试结果。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2