2017-02-18 278 views
1

我目前是CLion上一些MPI程序的代码。当我通过CLion运行程序时,它只使用单个进程。如何让Clion使用“mpiexec”运行

我知道我可以添加一些add_custom_command CMake让它使用mpiexec。这只是有点不方便,因为每当我运行该程序时,由add_custom_command所做的运行只是进入FLASH,单步运行将刷新运行板。

我想知道是否有什么办法让CLion自动运行mpiexec?我检查了edit configurations,但似乎我只能添加程序参数。

在这里问IDE问题可能很尴尬,如果我不应该这样做,我会立即删除这个问题。

回答

2

您可以从终端在多个进程中运行程序。如果你使用Cygwin的MPI,你可以在Cygwin的终端试试这个:

> cd ThreadsandMPI/MPI/HellowWorld/ 
> rm helloworld.exe # if it exists, delete it 
> mpic++ helloworld.cpp -o helloworld.exe 
> mpirun -np 4 helloworld.exe # run 4 processes 

但是,如果你想做到这一点不留IDE这是可能的。你需要创建一个名为MPI.xml(在C:\Users\<yourUserName>\.clion\config\tools文件夹)文件,该文件将包含这样的代码:

<?xml version="1.0" encoding="UTF-8"?> 
<toolSet name="MPI"> 
    <tool name="mpic++" description="MPI C++ compiler" showInMainMenu="true" showInEditor="true" showInProject="true" showInSearchPopup="true" disabled="false" useConsole="true" showConsoleOnStdOut="false" showConsoleOnStdErr="false" synchronizeAfterRun="true"> 
     <exec> 
      <option name="COMMAND" value="C:\cygwin64\bin\sh.exe" /> 
      <option name="PARAMETERS" value="-l -c &quot;cd /cygdrive/d/CLion_Projects/$FileDirName$; mpic++ $FileName$ -o $FileNameWithoutExtension$.exe&quot;" /> 
      <option name="WORKING_DIRECTORY" value="$ProjectFileDir$" /> 
     </exec> 
    </tool> 
    <tool name="mpirun" description="Runner for MPI" showInMainMenu="true" showInEditor="true" showInProject="true" showInSearchPopup="true" disabled="false" useConsole="true" showConsoleOnStdOut="false" showConsoleOnStdErr="false" synchronizeAfterRun="true"> 
     <exec> 
      <option name="COMMAND" value="C:\cygwin64\bin\sh.exe" /> 
      <option name="PARAMETERS" value="-l -c &quot;cd /cygdrive/d/Clion_Projects/$FileDirName$; mpirun -np $Prompt$ -bind-to core:overload-allowed $FileNameWithoutAllExtensions$&quot;" /> 
      <option name="WORKING_DIRECTORY" value="$ProjectFileDir$" /> 
     </exec> 
    </tool> 
</toolSet> 
  • 在这个文件MPI.xml查找和使用自己的路与克利翁项目
  • 更换2个出现次数的 d/CLion_Projects到目录
  • 确保选项命令(在cygwin64\bin文件夹路径sh.exe )修正值
  • 通知,D:\something必须d/something和当然避免路径

空间,这一文件将用于MPI C++编译器mpic++和转轮MPI mpirun集成外部工具。 顺便说一下,有关如何通过here设置MPI到Clion的完整说明。