问题描述

在 Numeca 的并行计算时,Solver Configuration 中选择了 MPICH2 求解计算的时候特别慢,CPU 利用率很低

8952f49585496a6b20534e61adf9cf13

然后我把 Solver Configuration 改成了 IntelMPI 结果就卡在那里一动不动

596af223d04dd5d590c1322fd1f39008

然后参照 【软件技巧】FineTurbo系列教程-并行卡住问题的解决办法_哔哩哔哩_bilibili 尝试解决但是无效。运行 .bat 文件,并没有启动运算,只跳出了如下界面

666

被挡住的文字是 Credentials for buaa rejected connecting to DESKTOP-ISAPFN7 就是报错了

问题发生原因

在第一次运行并行运算时,会弹出如下界面

893ae7811490266aa7e45c6f1608629e

Solver Configuration 中选择 MPICH2 会弹出一次,换成 IntelMPI 也会弹出一次,然后会让你输入电脑的用户名和电脑的密码(密码不显示)。我当时不知道,在选择 IntelMPI 时我输入的不是电脑用户名 Wenqi ,而是随手起了一个用户名 buaa 导致并行计算时卡住,且报错 Credentials for buaa rejected connecting to DESKTOP-ISAPFN7

解决方法

如何查看电脑用户名

win + r 输入 cmd 打开命令提示符,输入 whoami ,会输出 计算机名\用户名

Windows 的本地账户认证、注册表和 Intel MPI/Hydra 一般都以不区分大小写的方式匹配用户名

即 Wenqi,wenqi,WENQI… 都是同一个用户。SID 是 Windows 内部用于唯一标识账户的编号,用户名显示时的大小写通常不会影响身份认证。

方法1

卸载重新安装,然后并行运算时账户名和密码别输入错了,CPU利用率低就换一个 Solver Configuration

方法2

  1. 检查 Windows 凭据管理器

控制面板
→ 用户账户
→ 凭据管理器
→ Windows 凭据

但是没有发现与错误用户名 buaa、Intel MPI 或 NUMECA 有关的 Windows 凭据。如果发现了就把关于错误用户名的凭据删除掉,看不懂的先问一下 AI,不要乱删

  1. 在注册表中查找错误用户名

在命令提示符中输入 reg query HKCU /f "buaa" /s ,引号里面是错误的用户名

其中:

  • HKCU 表示当前 Windows 用户的注册表配置。
  • /f "buaa" 表示搜索内容 buaa
  • /s 表示递归搜索所有子项。

搜索结果如下:

1
2
3
4
5
HKEY_CURRENT_USER\Software\Intel\MPI
hydraAccount REG_SZ buaa

HKEY_CURRENT_USER\Software\Intel\MPI\HYDRA\CACHE
smpda REG_SZ buaa

这说明问题已经定位:HKEY_CURRENT_USER\Software\Intel\MPIhydraAccount 保存了 Intel MPI/Hydra 默认使用的账户,而它的值被错误设置成了 buaaHKEY_CURRENT_USER\Software\Intel\MPI\HYDRA\CACHE 中的 smpda 也缓存了旧用户名 buaa。因此,NUMECA 每次启动 Intel MPI 并行任务时,都会继续尝试使用错误账户,进而导致认证失败。

  1. 修复方法
  • 关闭 Numeca

  • 备份 Intel MPI 注册表配置

1
reg export "HKCU\Software\Intel\MPI" "%USERPROFILE%\Desktop\Intel_MPI_backup.reg" /y

执行后,桌面会生成:Intel_MPI_backup.reg 。如果后续需要恢复,可以使用该备份文件。

  • 修改 Intel MPI 默认账户

hydraAccount 从错误的 buaa 改为当前 Windows 用户 Wenqi

1
reg add "HKCU\Software\Intel\MPI" /v hydraAccount /t REG_SZ /d Wenqi /f

参数含义如下:

  1. /v hydraAccount:指定要修改的注册表值。

  2. /t REG_SZ:数据类型为字符串。

  3. /d Wenqi:将值设置为 Wenqi

  4. /f:不再询问,直接覆盖旧值。

也可以填写小写的 wenqi,Windows 本地账户认证通常不区分用户名大小写。

  • 删除旧的 Hydra 缓存

执行:

1
reg delete "HKCU\Software\Intel\MPI\HYDRA\CACHE" /v smpda /f

这条命令只删除 CACHE 下名为 smpda 的旧用户名缓存,不会删除整个 Intel MPI 配置。

这样做的目的是避免 Hydra 继续读取先前缓存的 buaa

  • 验证修改结果

执行:

1
reg query "HKCU\Software\Intel\MPI" /s

如果没有再找到 Intel MPI 中的 buaa,说明旧账户配置已经清理完成。

重新打开 NUMECA/FINE 17.1 并启动并行计算后,Intel MPI 即可使用正确账户运行。问题在完成以上修改后得到解决。

总结

本次故障的根本原因是:第一次使用 Intel MPI 并行计算时,误将 Windows 用户名填写错,Intel MPI/Hydra 又将错误用户名保存到了当前用户的注册表配置中,导致后续任务始终使用错误账户进行认证。CPU 利用率低在切换 Solver ConfigurationIntelMPI 后也得到了解决。