在 OS X

问题描述

我尝试在 OSX 上运行用 C# 编写的 mpi 程序,但是,我不断收到权限被拒绝的错误。 我安装mpi的步骤:

  • 安装自制软件
  • 使用自制软件安装的 mpich
  • 安装了单声道(所以我可以得到一个 .exe 文件
  • 在 Rider 中创建了一个项目,指定目标框架为 net50(最新的 .net core)和 net48(假设由 Mono 提供)
  • 已安装 mpi.net nuget 包
  • 进入包含ConsoleApp1.exe的net48的Debug目录
  • 使用和不使用 sudo 运行命令 mpirun -np 4 ./ConsoleApp1.exe

但是,我收到以下错误

[proxy:0:0@Marins-MacBook-Pro.local] HYDU_create_process (utils/launch/launch.c:74): execvp error on file ./ConsoleApp1.exe (Permission denied)

每个进程重复一次错误

使用 finder 我选择了有问题的 exe 文件和父文件夹,并授予每个人读写权限(认情况下授予读取权限)。但是,问题仍然存在。

我可以尝试什么来解决这个问题?

编辑: 我还尝试使用以下命令:

mpiexec -n 4 mono ConsoleApp1.exe

但是,我收到错误

Unhandled Exception:
System.DllNotFoundException: msmpi.dll assembly:<unkNown assembly> type:<unkNown type> member:(null)
  at (wrapper managed-to-native) MPI.Unsafe.MPI_Finalized(int&)
  at MPI.Environment.get_Finalized () [0x00000] in <fa7716c2d3a447518b7b229d8fa8506f>:0 
  at MPI.Environment..ctor (System.String[]& args,MPI.Threading threading) [0x00006] in <fa7716c2d3a447518b7b229d8fa8506f>:0 
  at MPI.Environment..ctor (System.String[]& args) [0x00000] in <fa7716c2d3a447518b7b229d8fa8506f>:0 
  at ConsoleApp1.Program.Main (System.String[] args) [0x00001] in <4afb3f1ea5bc4367a9a7afd6da6576a3>:0 

我不确定这是否是在 OS X 上使用 mpi 的正确方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)