如何让Clion运行“mpiexec”

时间:2017-02-18 09:47:57

标签: mpi clion

我目前正在为CLion上的一些MPI程序编写代码。当我通过CLion运行程序时,它只使用单个进程。

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

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

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

1 个答案:

答案 0 :(得分: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使用您自己的CLion项目目录路径
  • 确保选项COMMAND具有正确的值(sh.exe的路径 在cygwin64\bin文件夹中)
  • 请注意D:\something必须是d/something,当然要避开路径中的空格

此文件将集成MPI C ++编译器mpic++的外部工具和MPI mpirun的Runner。 顺便说一句,有关如何在here上将MPI设置为Clion的完整说明。