24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2588  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

dexter337

铁杆木虫 (小有名气)

[交流] 最近碰到的一个Intel visual Fortran 计算精度的问题.大家的机器上是否也是这样? 已有5人参与

我 以前都是用compaq visual Fortran 6.6的imsl库进行计算的.但是近期需要加大计算的矩阵维数.因此需要改用Intel visual Fortran的mkl函数库.我的程序中用到了zgesv这个函数求解一个复系数的方程组.
       原来用compaq visual Fortran的时候用的是imsl中的dlsacg精度很好.但是在Intel visual Fortran上跑的结果误差很严重.于是开始查找出错原因.
       后来我发现一个奇怪的现象.就是用imsl手册中的一个计算例子,在Intel 上出的结果精度好像不够.希望大家提提意见,多多讨论,小虫不胜感激.
       Intel visual Fortran中程序例子如下:
               program main
        implicit none
        integer(8),parameter::n=3
        complex(8)::a(n,n),b(n)
        integer(8)::info,ipiv(n)
        a=reshape((/(3.0d0,-2.0d0),(1.0d0,1.0d0),(4.0d0,0.0d0),(2.0d0,4.0d0),(2.0d0,-6.0d0),&
        (-5.0d0,1.0d0),(0.0d0,-3.0d0),(1.0d0,2.0d0),(3.0d0,-2.0d0)/),(/n,n/))
        b=(/(10.0d0,5.0d0),(6.0d0,-7.0d0),(-1.0d0,2.0d0)/)
        call zgesv(n,1,a,n,ipiv,b,n,info)
        open(2,file='x.txt')
        write(2,5)b
5        format(2f20.16)
        end program main

       这个例子求解方程a*x=b这样的问题.结果是很整齐的解析结果是x=(1-i,2+i,3i).用compaq visual Fortran的结果是.
       1.0000000000000000 -1.0000000000000000
       2.0000000000000000  1.0000000000000000
       0.0000000000000000  3.0000000000000000
       基本上看不出误差.相应的dlsacg函数在我要计算的模型中工作的精度都很好.
       可是问题来了,在Intel中(也就是上面的程序.用mkl库给出的结果是.
      1.0000000000000024 -1.0000000000000004
      1.9999999999999987  1.0000000000000000
      -0.0000000000000039  2.9999999999999991
       这个结果有些出人意料,希望大家不要笑话我.因为我接下来用到这个函数的地方矩阵的性质比例子中的矩阵差的非常多.计算的结果精度非常不理想.
       想问问论坛里的虫友们,大家有没有遇到过这样的问题.有没有什么调节或者校准mkl或者Intel visual Fortran的方法或者设置呢?
       我使用的是 Intel visual Fortran 11.1.065专业版.自带的mkl是10.2版的.
       在这里先谢谢大家了,祝虫友们圣诞快乐!
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
送红花一朵
3楼2014-12-26 08:43:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询


小木虫: 金币+0.5, 给个红包,谢谢回帖
我看了一下,似乎Intel 给出的数据也在双精度舍入误差允许范围内,如有差别也不显著。你没有具体说明这样的舍入误差是如何影响你后面的结果的。如果这样的误差能影响你后面的结果,那只能说明你后面的算法不太robust。这种量级的误差可能有各种原因引起,不一定是数学库的原因。比如你给的cvf数据结果里3.0000000000000000 有16位0,这显然不可能是一般的结果。变换数组在内存中的位置,对其他变量的赋值都可能会改变这一状况。
2楼2014-12-26 04:28:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

todd0226

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
1、是不是数据类型不一致,我之前的程序因为这个原因结果有些误差。
2、当我在Use Intel Math Kernel Library中设置成Sequential (/Qmkl:sequential)时,release和debug模式下计算结果完全一样,而且多次计算结果一样。然而当我设置成Parallel (/Qmkl:parallel)时,release和debug模式下计算结果有些不同,多次计算的结果也有些微差别。
不知楼主的问题有没有可能是上面的原因。或者楼主能否解释一下第二个问题的原因呢?
4楼2014-12-26 09:17:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dexter337

铁杆木虫 (小有名气)

引用回帖:
4楼: Originally posted by todd0226 at 2014-12-26 09:17:54
1、是不是数据类型不一致,我之前的程序因为这个原因结果有些误差。
2、当我在Use Intel Math Kernel Library中设置成Sequential (/Qmkl:sequential)时,release和debug模式下计算结果完全一样,而且多次计算结果一 ...

感谢你的回复.
      我也怀疑过这个问题,首先设置了Fortran默认的数据存储类型.(默认是integer kind=4,real kind=4,complex kind=8),所以在最开始发现的问题是输入给函数的数据不同于compaq的.(此问题在发帖前已经排除).
      后来我也在服务器上实验了这个例子,结果和台式机上一样.用的是串行计算.我试验的结果是,串行和并行结果一样.
5楼2014-12-26 16:19:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 322求调剂 +5 宋明欣 2026-03-27 5/250 2026-03-28 03:53 by fmesaito
[考研] 085701环境工程,267求调剂 +12 minht 2026-03-26 12/600 2026-03-27 22:22 by 无际的草原
[考研] 086000调剂 +3 7901117076 2026-03-26 3/150 2026-03-27 21:34 by Jianing_Mi
[考研] 307求调剂 +8 超级伊昂大王 2026-03-24 9/450 2026-03-27 15:34 by 超级伊昂大王
[考研] 安徽大学专硕生物与医药专业(086000)324分,英语已过四六级,六级521,求调剂 +4 美味可乐鸡翅 2026-03-26 4/200 2026-03-27 15:27 by 星空星月
[考研] 求调剂 +3 刘柯@ 2026-03-24 4/200 2026-03-27 11:28 by shangxh
[考研] 求调剂 +6 林之夕 2026-03-24 6/300 2026-03-27 08:38 by hypershenger
[考研] 334分 一志愿武理-080500 材料求调剂 +4 李李不服输 2026-03-25 4/200 2026-03-25 21:26 by 星空星月
[考研] 生物技术与工程 +3 1294608413 2026-03-25 4/200 2026-03-25 18:02 by 1294608413
[考研] 302求调剂 +4 锦衣卫藤椒 2026-03-25 4/200 2026-03-25 16:29 by 功夫疯狂
[考研] 0854电子信息求调剂 +7 α____ 2026-03-22 9/450 2026-03-25 13:37 by α____
[考研] 一志愿吉林大学材料与化工303分求调剂 +4 为学666 2026-03-24 4/200 2026-03-25 11:27 by BruceLiu320
[考研] 一志愿武理085500机械专业总分300求调剂 +3 an10101 2026-03-24 7/350 2026-03-25 00:00 by 山鬼0-
[有机交流] 有机合成求助 20+3 FENGSHUJEI 2026-03-23 5/250 2026-03-24 19:31 by 88817753
[考研] 306求0703调剂一志愿华中师范 +10 纸鱼ly 2026-03-21 11/550 2026-03-24 17:22 by qingfeng258
[考研] 材料考研调剂生 +3 黄粱一梦千年 2026-03-24 3/150 2026-03-24 17:00 by barlinike
[考研] 361求调剂 +3 Glack 2026-03-22 3/150 2026-03-23 22:03 by fuyu_
[考研] 269求调剂 +4 我想读研11 2026-03-23 4/200 2026-03-23 21:25 by pswait
[论文投稿] 急发核心期刊论文 +3 贤达问津 2026-03-23 5/250 2026-03-23 17:13 by 妹子不好惹
[考研] 一志愿东华大学化学070300,求调剂 +7 2117205181 2026-03-21 8/400 2026-03-22 22:55 by chixmc
信息提示
请填处理意见