主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

mpiSettings

配置 MPI 通信选项

    说明

    mpiSettings('DeadlockDetection',DeadlockDetection) 切换工作单元 onoff 上的死锁检测。当 DeadlockDectection 处于开启状态时,如果在调用 spmdReceivespmdSend 期间检测到死锁,工作单元可以返回错误。虽然没有必要在所有工作单元上启用死锁检测,但这是最有用的选项。

    示例

    mpiSettings('MessageLogging',MessageLogging) 切换工作单元 onoff 上的消息日志记录。当 MessageLogging 打开时,默认消息目标是 MATLAB® 命令行窗口。

    示例

    mpiSettings('MessageLoggingDestination',MessageLoggingDestination) 更改 MPI 日志消息记录目标。选项包括 MATLAB 命令行窗口、标准日志文件或指定文件。

    示例

    示例

    全部折叠

    关闭 spmd 代码块中当前并行池中所有工作单元的死锁检测。

    spmd
        mpiSettings('DeadlockDetection','off');
    end

    为通信作业在 jobStartup.m 作业内设置死锁检测和 MPI 日志记录。

    在作业开始之前,jobStartup.m 文件会在工作单元上自动运行。有关 jobStartup.m 文件的信息,请参阅 jobStartup

    将以下代码添加到通信作业的 jobStartup.m 文件中。

    mpiSettings('DeadlockDetection','on');
    myLogFname = sprintf('%s_%d.log',tempname,spmdIndex);
    mpiSettings('MessageLoggingDestination','File',myLogFname);
    mpiSettings('MessageLogging','on');

    输入参数

    全部折叠

    工作单元之间通信期间的死锁检测选项,指定为以逗号分隔的 DeadlockDetection 对和以下值之一:

    • 'on' - 启用死锁检测。这是 spmd 语句内的默认状态。

    • 'off' - 禁用死锁检测。这是通信作业的默认状态。

    一旦并行池中工作单元的设置发生变化,该设置将一直有效,直到并行池关闭。

    如果您使用大量工作单元,则禁用死锁检测可能会提升性能。如果某些工作单元长时间不调用 spmdSendspmdReceive,死锁检测可能会导致通信错误。如果遇到错误,请尝试禁用死锁检测。

    示例: spmd;mpiSettings('DeadlockDetection','off');end;

    数据类型: logical

    工作单元之间通信期间的 MPI 消息日志记录选项,指定为以逗号分隔的 MessageLogging 对和以下值之一:

    • 'on' - 启用 MessageLogging

    • 'off' - 禁用 MessageLogging

    数据类型: logical

    日志消息的目标,指定为以逗号分隔的 MessageLoggingDestination 对和以下选项之一:

    • 'CommandWindow' - 将 MPI 日志信息发送到 MATLAB 命令行窗口。如果通信作业中的任务设置为捕获命令行窗口输出,则可以在任务的 CommandWindowOutput 属性中找到 MPI 日志记录信息。

    • 'stdout' - 将 MPI 日志信息发送到 MATLAB 进程的标准输出。如果您正在使用 MATLAB 作业调度器,这就是 mjs 服务日志文件。

    • 'File','filename' - 将 MPI 日志信息发送到指定为 filename 的文件。

    如果设置了 MessageLoggingDestination,这并不会自动启用 MessageLogging。需要单独的函数调用来启用消息日志记录。

    提示

    • 设置 MessageLoggingDestination 不会自动启用消息日志记录。需要单独调用来启用消息日志记录。

    • 您必须在工作单元程序上调用 mpiSettings 函数,而不是在客户端。要更改通信作业中的 MPI 通信设置,请在任务函数中使用 mpiSettings,或在 jobStartup.mtaskStartup.m 文件中的用户定义选项中使用。

      要更改并行池中所有工作单元的 MPI 通信设置,请使用 poolStartup 文件中的 mpiSettings

      有关更多信息,请参阅 jobStartuptaskStartuppoolStartup 函数。

    版本历史记录

    在 R2006a 之前推出

    另请参阅

    | |