主要内容

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

RemoteClusterAccess

R2025b

当客户端实用程序无法在本地使用时连接到调度器

构造函数

r = parallel.cluster.RemoteClusterAccess(username)

r = parallel.cluster.RemoteClusterAccess(username,P1,V1,...,Pn,Vn)

描述

r = parallel.cluster.RemoteClusterAccess(username) 创建一个 RemoteClusterAccess 对象,并将 Username 设置为 username。

默认情况下,当您连接到集群时,系统会提示您输入密码。

提示

如果您已经为远程集群设置了集群配置文件,请使用 parcluster。有关详细信息,请参阅发现集群并使用集群配置文件。

如果您需要修改没有内置集群类型的第三方调度器的插件脚本,则只需直接使用 RemoteClusterAccess。当您使用通用调度器接口连接到集群时,您可以使用插件脚本。有关详细信息,请参阅使用通用调度器接口进行配置 (MATLAB Parallel Server)。

当您需要修改远程集群连接、提交或数据传输的设置时,请使用 RemoteClusterAccess。

r = parallel.cluster.RemoteClusterAccess(___,Name,Value) 使用一个或多个名称-值参量创建一个 RemoteClusterAccess 对象。例如,指定 'Port',31415 以使用端口号 31415 连接到集群。请在所有其他输入参量后指定名称-值参量。

接受的名称-值参量是:

  • 'AuthenticationMode' - 连接到集群时使用的身份验证模式,指定为字符串标量、字符向量、字符串数组或元胞数组。

    如果指定参量 'IdentityFilename',则默认值为 'IdentityFile'。否则,默认值为 'Password'。'AuthenticationMode' 的有效值为:

    • 'Agent' - 客户端与在客户端计算机上运行的 SSH 代理进行对接。

    • 'IdentityFile' - 当您连接到集群时,客户端使用身份文件进行身份验证。如果您使用 IdentityFilename 选项指定文件,则使用该文件。否则,MATLAB® 会在您连接时提示您指定标识文件的完整路径。

    • 'Multifactor' - 客户端提示您输入一次或多次。例如,如果客户端上启用了双因素身份验证 (2FA),则客户端会请求您的密码和第二个身份验证因素的响应。

    • 'Password' - 客户端提示您输入 SSH 密码。您的用户名由 Username 属性指定。

    或者,要连接到具有多个身份验证要求的客户端,请将 AuthenticationMode 指定为包含 'Agent'、'IdentityFile'、'Multifactor' 和 'Password' 组合的字符串数组或元胞数组。

  • 'IdentityFileHasPassphrase' - 指示身份文件是否需要密码的标志,指定为 true 或 false。如果是 true,则连接时会提示您输入密码。如果没有提供身份文件,则不使用此名称-值参量。

  • 'IdentityFilename' - RemoteClusterAccess 连接到远程主机时使用的标识文件的完整路径,指定为 'IdentityFilename' 和字符串标量或字符向量。

  • 'Port' - 您连接到的集群上的端口号,指定为 1 和 65535 之间的整数标量。

    默认值为 22。

有关更多信息和详细示例,请参阅 从远程主机提交 (MATLAB Parallel Server) 和 不使用共享文件系统提交 (MATLAB Parallel Server)。

方法

方法名称描述
connect

connect(r,clusterHost) 使用构造函数中提供的用户凭据选项建立与指定主机的连接。不支持文件镜像。clusterHost 必须运行 Linux。

connect(r,clusterHost,remoteDataLocation) 使用构造函数中提供的用户凭据选项建立与指定主机的连接。remoteDataLocation 标识 clusterHost 上用于文件镜像的文件夹。构造函数中提供的用户凭据必须具有对此文件夹的写访问权限。

disconnectdisconnect(r) 断开现有的远程连接。connect 方法必须已经被调用。
doLastMirrorForJob

doLastMirrorForJob(r,job) 执行将远程 remoteDataLocation 中已更改文件的最终复制操作,复制到本地 JobStorageLocation,以完成所提供的作业。该作业的所有正在运行的镜像也将停止,并且作业文件将从远程 remoteDataLocation 中删除。startMirrorForJob 或 resumeMirrorForJob 方法必须已经被调用。

getRemoteJobLocation

getRemoteJobLocation(r,jobID,remoteOS) 返回所提供的 jobID 的远程作业位置的完整路径。remoteOS 的有效值是 'pc' 和 'unix'。

isJobUsingConnection

如果该作业当前正在被镜像,则 isJobUsingConnection(r,jobID) 返回 true。

reconnectreconnect(r) 重新创建与远程主机的现有 SSH 连接。
resumeMirrorForJob

resumeMirrorForJob(r,job) 恢复从远程 remoteDataLocation 到本地 JobStoragelocation 的镜像文件以执行所提供的作业。这与 startMirrorForJob 方法类似,但不会先将文件从本地 JobStorageLocation 复制到远程 remoteDataLocation。connect 方法必须已经被调用。如果原始客户端 MATLAB 会话已结束,并且您正在从新客户端会话访问相同的文件,则这很有用。

runCommand

[status,result] = runCommand(r,command) 在远程主机上运行提供的命令并返回结果状态和标准输出。connect 方法必须已经被调用。

startMirrorForJob

startMirrorForJob(r,job) 将所有作业文件从本地 JobStorageLocation 复制到远程 remoteDataLocation,并开始镜像文件,以便将远程 remoteDataLocation 中文件的任何更改复制回本地 JobStorageLocation。connect 方法必须已经被调用。

stopMirrorForJob

stopMirrorForJob(r,job) 立即停止从远程 remoteDataLocation 到本地 JobStorageLocation 的指定作业的文件镜像。startMirrorForJob 或 resumeMirrorForJob 方法必须已经被调用。这将取消正在运行的镜像并从远程位置删除该作业的文件。这与 doLastMirrorForJob 类似,但 stopMirrorForJob 不会尝试确保本地作业文件是最新的。对于正常镜像停止,使用 doLastMirrorForJob。

getConnectedAccess

getConnectedAccess(host,username) 返回一个连接到所提供主机的 RemoteClusterAccess 对象。如果存在,此函数可能会返回先前构建的 RemoteClusterAccess 对象。host 必须运行 Linux。

getConnectedAccess(...,P1,V1,...Pn,Vn) 将附加参数传递给 RemoteClusterAccess 构造函数。

getConnectedAccessWithMirror

getConnectedAccessWithMirror(host,remoteDataLocation,username) 返回一个连接到所提供主机的 RemoteClusterAccess 对象,使用 remoteDataLocation 作为镜像位置。如果存在,此函数可能会返回先前构建的 RemoteClusterAccess 对象。host 必须运行 Linux。

getConnectedAccessWithMirror(...,P1,V1,...Pn,Vn) 将附加参数传递给 RemoteClusterAccess 构造函数。

属性

RemoteClusterAccess 对象具有以下只读属性。当您构造对象或调用其 connect 方法时,会设置它们的值。

属性名称描述
AuthenticationMode

该选项指示您连接到集群时如何进行身份验证,以下列之一的形式返回:

  • 'Agent' - 客户端与在客户端计算机上运行的 SSH 代理进行对接。SSH 代理身份验证不支持 PPK 格式的密钥。仅支持 OpenSSH 格式的密钥。

  • 'IdentityFile' - 当您连接到集群时,客户端使用身份文件进行身份验证。如果 IdentityFilename 属性不是空字符串或空字符向量,则使用该文件。否则,MATLAB 会在您连接时提示您指定标识文件的完整路径。

  • "Multifactor" - 客户端提示您输入一次或多次。例如,如果客户端上启用了双因素身份验证 (2FA),则客户端会请求您的密码和第二个身份验证因素的响应。

  • 'Password' - 客户端提示您输入 SSH 密码。您的用户名由 Username 属性指定。

  • 包含 'Agent'、'IdentityFile'、'Multifactor' 和 'Password' 组合的数组 - 当您连接到集群时,客户端使用多种身份验证选项进行身份验证。

如果 IdentityFilename 属性不是空字符串标量或空字符向量,则该属性默认设置为 'IdentityFile'。否则,默认设置为 'Password'。

要设置此属性,请在创建 RemoteClusterAccess 对象时指定 'AuthenticationMode' 名称-值参量。

AutoReconnect

标志指示在远程命令错误后,MATLAB 是否自动重新创建与远程主机的 SSH 连接,指定为 true 或 false。

默认值为 true。

Hostname

要访问的远程主机的名称,以字符向量形式返回。

默认值是一个空字符向量。

IdentityFileHasPassphrase

标志指示身份文件是否需要密码,指定为由 'IdentityFileHasPassphrase' 和 true 或 false 组成的逗号分隔的对。

默认值为 false。

如果此属性设置为 true,则连接时系统会提示您输入密码。如果未提供身份文件,则不使用此属性。

要设置此属性,请在创建 RemoteClusterAccess 对象时指定 'IdentityFileHasPassphrase' 名称-值参量。

IdentityFilename

当 RemoteClusterAccess 对象连接到远程主机时使用的标识文件的完整路径,以字符向量形式返回。

默认值是一个空字符向量。如果此属性为空,则连接时会提示您输入密码。

要设置此属性,请在创建 RemoteClusterAccess 对象时指定 'IdentityFilename' 名称-值参量。

IsConnected

指示 RemoteClusterAccess 对象是否连接到集群的标志,返回为 true 或 false。

默认值为 false。

IsFileMirrorSupported

标志指示 RemoteClusterAccess 对象是否支持文件镜像,指定为 true 或 false。

默认值为 false。

如果 IsFileMirrorSupported 属性不为空,则 JobStorageLocation 属性设置为 true。

JobStorageLocation

远程主机上正在镜像的文件的位置,以字符向量的形式返回。

默认值是一个空字符向量。

要设置此属性,请使用以下任一语法连接到集群:

  • connect(r,clusterHost,remoteDataLocation)

  • r = getConnectedAccessWithMirror(host,remoteDataLocation,username)

  • r = getConnectedAccessWithMirror(___,P1,V1,...Pn,Vn)

Port

用于连接集群的端口号,以 1 和 65535 之间的整数标量返回。

默认值为 22。

要设置此属性,请在创建 RemoteClusterAccess 对象时指定 'Port' 名称-值参量。

UseIdentityFile

标志指示 RemoteClusterAccess 对象是否使用身份文件连接到集群,返回为 true 或 false。

默认值为 false。如果 AuthenticationMode 属性是 'IdentityFile',则 UseIdentityFile 属性是 true。

Username

用于连接集群的用户名,以字符向量形式返回。

示例

来自远程数据位置的镜像文件。假设对象 job 代表通用调度器上的一项作业。

remoteConnection = parallel.cluster.RemoteClusterAccess('testname');
connect(remoteConnection,'headnode1','/tmp/filemirror');
startMirrorForJob(remoteConnection,job);
submit(job)
% Wait for the job to finish
wait(job);

% Ensure that all the local files are up to date, and remove the 
% remote files
doLastMirrorForJob(remoteConnection,job);

% Get the output arguments for the job
results = fetchOutputs(job)

有关更多信息和示例,请参阅 从远程主机提交 (MATLAB Parallel Server) 和 不使用共享文件系统提交 (MATLAB Parallel Server)。

版本历史记录

在 R2011a 中推出

另请参阅

主题