linux+fortran+openmp使用中遇到的一些问题

本文探讨了在使用Fortran进行编程时遇到的编译错误问题,特别是ld警告及未定义符号引用的问题,并尝试通过添加-lgfortran和-lm链接选项来解决。此外,还讨论了一个关于OpenMP并行化导致的精度问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1运行程序发现  cannot execute binary file

 

描述:

使用load  ./可执行文件 查看

 ld: warning: cannot find entry symbol _start; defaulting to 00000000004000e8
earth2_omp.allloop.fromPC: In function `MAIN__':
earth2_omp.allloop.fromPC.for:(.text+0x19): undefined reference to `_gfortran_set_options'
earth2_omp.allloop.fromPC.for:(.text+0x2d): undefined reference to `_gfortran_cpu_time_4'
earth2_omp.allloop.fromPC.for:(.text+0x61): undefined reference to `_gfortran_system_clock_4'

添加了-lgfortran 和 -lm之后还是报这样的错误。应该是需要安装库或者连接好库。

 

解决:

 

 

 

 

earth项目进展:

1 实验2,,,,8线程的,观察是不是线程越多,精度越差。如果是,那就验证了 是因为 openmp乱序执行引起的截断误差的积累,导致openmp的结果精度差

 

2线程并行很快就运行完了(这是不正常的)。对比结果,感觉有错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值