主要内容

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

RemoteClusterAccess

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

构造函数

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' - 指示身份文件是否需要密码的标志,指定为 truefalse。如果是 true,则连接时会提示您输入密码。如果没有提供身份文件,则不使用此名称-值参量。

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

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

    默认值为 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 中删除。startMirrorForJobresumeMirrorForJob 方法必须已经被调用。

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 复制到远程 remoteDataLocationconnect 方法必须已经被调用。如果原始客户端 MATLAB 会话已结束,并且您正在从新客户端会话访问相同的文件,则这很有用。

runCommand

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

startMirrorForJob

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

stopMirrorForJob

stopMirrorForJob(r,job) 立即停止从远程 remoteDataLocation 到本地 JobStorageLocation 的指定作业的文件镜像。startMirrorForJobresumeMirrorForJob 方法必须已经被调用。这将取消正在运行的镜像并从远程位置删除该作业的文件。这与 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 连接,指定为 truefalse

默认值为 true

Hostname

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

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

IdentityFileHasPassphrase

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

默认值为 false

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

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

IdentityFilename

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

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

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

IsConnected

指示 RemoteClusterAccess 对象是否连接到集群的标志,返回为 truefalse

默认值为 false

IsFileMirrorSupported

标志指示 RemoteClusterAccess 对象是否支持文件镜像,指定为 truefalse

默认值为 false

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

JobStorageLocation

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

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

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

  • connect(r,clusterHost,remoteDataLocation)

  • r = getConnectedAccessWithMirror(host,remoteDataLocation,username)

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

Port

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

默认值为 22

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

UseIdentityFile

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

默认值为 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 中推出

另请参阅

主题