求助:MUMPS中64位整数相关Makefile配置含义解析
MUMPS Makefile整数配置解析
核心配置规则解析
- MUMPS默认采用C标准的
int类型作为整数类型,该类型通常为32位(具体位数由编译平台决定),用于内部所有整数相关的计算与数据存储。 - 若需强制启用64位整数支持,需在
Makefile.inc文件的OPTC编译参数条目里添加-DINITSIZE64宏定义。添加后,MUMPS的代码会自动将内部所有整数类型切换为64位(如long long或平台适配的64位整数类型)。
依赖库的匹配要求
MUMPS调用的metis、ScaLAPACK、BLACS、BLAS所有依赖库,必须统一使用64位整数编译:
- 若依赖库采用32位整数编译,而MUMPS启用64位整数,会直接出现类型不匹配问题导致编译失败;
- 即便侥幸编译通过,运行时也会因整数长度不一致引发内存访问错误或计算结果异常。
内容的提问来源于stack exchange,提问作者Ma Maximowitz
相关产品推荐
相关产品推荐

