2017-02-18 270 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的完整說明。