由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Computation版 - 请教个问题
相关主题
有没有sun unix的高手呀?请教求解二阶ODE方程
Re: [转载] Re: 做计算买什么样的机器最好?真诚请教解方程组的问题!!
请教: 关于Fortran编译器关于C和Fortran: 一点儿个人观点
pgf90 Vs. ifort Vs. xlf90请教Silicon Graphics Indigo R4000和现在的主流配置有
[合集] 说说workstationfortran给数组赋初值一问
是不是cygwin问题?fortran90的超级怪问题
Fortran code optimization求助:downhill simplex minimization
提问:matlab效率问题(不同机器上)[合集] 请教一个牛顿迭代的问题
相关话题的讨论汇总
话题: dflnm话题: trim话题: len话题: allocate
进入Computation版参与讨论
1 (共1页)
r****y
发帖数: 1437
1
多年不搞fortran了,这次老革命碰到新问题了
想移植一个SGI Altix/Ifort上使用的并行程序到AMD Operton/pgf90上,
编译连接毫无问题,但是一运行就出现下列错误并异常终止
0: ALLOCATE: 18446744073709551615 bytes requested; not enough memory
18446744073709551615 = 2^64, 程序里并没有要求allocate
如此多的内存, 不知道为什么会出现这个问题
把compiler的options一个个试了试,无论怎么编译,都是
同样的错误。
哪位高见,指点指点。谢先。
j**u
发帖数: 6059
2
什么并行?multithreads 还是multi processors?
调试的时侯是哪一步allocate内存的?
俺虽然不懂fortran,如果是并行程序,希望可以帮上一点忙。

【在 r****y 的大作中提到】
: 多年不搞fortran了,这次老革命碰到新问题了
: 想移植一个SGI Altix/Ifort上使用的并行程序到AMD Operton/pgf90上,
: 编译连接毫无问题,但是一运行就出现下列错误并异常终止
: 0: ALLOCATE: 18446744073709551615 bytes requested; not enough memory
: 18446744073709551615 = 2^64, 程序里并没有要求allocate
: 如此多的内存, 不知道为什么会出现这个问题
: 把compiler的options一个个试了试,无论怎么编译,都是
: 同样的错误。
: 哪位高见,指点指点。谢先。

i**g
发帖数: 134
3
可能不同的系统和编译器对于初值的处理不同,导致allocate时的变量大小
同原来不同?
或者浮点比较执行不同,导致变量值不同?
2^64是long integer了?所有位都是1?
追踪一下控制allocate大小的变量的值的变化?

【在 r****y 的大作中提到】
: 多年不搞fortran了,这次老革命碰到新问题了
: 想移植一个SGI Altix/Ifort上使用的并行程序到AMD Operton/pgf90上,
: 编译连接毫无问题,但是一运行就出现下列错误并异常终止
: 0: ALLOCATE: 18446744073709551615 bytes requested; not enough memory
: 18446744073709551615 = 2^64, 程序里并没有要求allocate
: 如此多的内存, 不知道为什么会出现这个问题
: 把compiler的options一个个试了试,无论怎么编译,都是
: 同样的错误。
: 哪位高见,指点指点。谢先。

r****y
发帖数: 1437
4
呵呵,花了我一个晚上外加一个上午,终于从这个巨大无比的程序中将
此bug搞定。
结果不是multi-threads/mpi的问题,一个小bug导致了如此的复杂故事
(btw程序不是我写的,是一个大大的group, 100号人,developed)
把这个小bug改写在这,大家娱乐一下
program main
character(80) dflnm
character(80) restart_name
dflnm = 'INPUT/fv_rst.res'
print *, trim(dflnm(LEN_TRIM(dflnm):LEN_TRIM(dflnm)-2))
end
用ifort, pgf90, 都能编译通过
dflnm(LEN_TRIM(dflnm):LEN_TRIM(dflnm)-2) 显然错了,下标
应该是增序,应该是
LEN_TRIM(dflnm)-2:LEN_TRIM(dflnm)


【在 i**g 的大作中提到】
: 可能不同的系统和编译器对于初值的处理不同,导致allocate时的变量大小
: 同原来不同?
: 或者浮点比较执行不同,导致变量值不同?
: 2^64是long integer了?所有位都是1?
: 追踪一下控制allocate大小的变量的值的变化?

1 (共1页)
进入Computation版参与讨论
相关主题
[合集] 请教一个牛顿迭代的问题[合集] 说说workstation
请推荐讲解PDE中的柯西问题的书籍 (转载)是不是cygwin问题?
求解非线性方程组的方法Fortran code optimization
求救,有什么迭代算法不依赖初值的么?提问:matlab效率问题(不同机器上)
有没有sun unix的高手呀?请教求解二阶ODE方程
Re: [转载] Re: 做计算买什么样的机器最好?真诚请教解方程组的问题!!
请教: 关于Fortran编译器关于C和Fortran: 一点儿个人观点
pgf90 Vs. ifort Vs. xlf90请教Silicon Graphics Indigo R4000和现在的主流配置有
相关话题的讨论汇总
话题: dflnm话题: trim话题: len话题: allocate