RemoteKernelObject

从版本 13.1 开始,RemoteKernelObjectKernelConfigurationKernelObject 取代.

RemoteKernelObject[spec]

指定可用于 RemoteEvaluate LaunchKernels 的远程内核.

更多信息

  • RemoteKernelObject["spec",options ] 可用于覆盖内核规范的默认设置.
  • 可以识别以下远程内核规范:
  • "ssh://user@hostname:port/path"使用 SSH 访问的给定机器上的内核
    "ssh://hostname"使用给定机器上的默认路径、用户和端口
    "hostname"等价于 "ssh://hostname"
    "wstp://server:port/pool"在 WSTPServer 上的内核
    "wstp://server"使用默认端口和内核池
    "localhost"同一台机器上的内核
    "file:///path/to/wolfram"同一台机器上的给定内核
    "https://www.wolframcloud.com/"Wolfram Cloud 中的内核
  • SSH 内核的设置包括:
  • "ForwardPort"Random用于连接转发的远程端口
    "KernelArguments"(OS-dependent)传递内核程序的参数
    "KernelCommand"(OS-dependent)要运行的内核程序
    "KernelCount"1要启动的并行内核数
    "MachineName"None要连接的机器的名称
    "Method"(OS-dependent)如何连接到远程机器上的内核
    "Name"Automatic此内核的唯一名称
    "OperatingSystem""Unix"远程操作系统
    "Port"NoneSSH 服务器的端口
    "SSHArguments"(see below)传递给 SSH 命令的参数
    "SSHCommand""ssh"SSH 命令的名称
    "SSHIdentity"None使用的私钥
    "SubKernelArguments"{-subkernel,-pacletreadonly}并行子内核的附加参数
    "TimeConstraint"10等待连接的秒数
    "Username"NoneSSH 应该使用的登录名
  • 连接方法 "Launch" 是 macOS 和 Linux 上的默认设置. 它使用 LinkLaunch 调用 SSH,并将 stdin/stdout 用于与远程内核的 WSTP 连接.
  • 连接方法 "Forward" 是 Windows 上的默认设置. 它在本地机器上创建侦听 WSTP 套接字,并将 SSH 隧道内的内核连接从远程内核转发到侦听套接字.
  • 根据声明的 "OperatingSytem" ,选择默认远程 "KernelCommand"
  • "Unix""wolfram"
    "MacOSX""/Applications/Mathematica.app/Contents/MacOS/wolfram"
    "Windows""wolfram.exe"
  • 如果给定的命令不在远程机器的搜索路径上,远程内核命令的绝对路径应该作为 "KernelCommand" 的值给出.
  • 如果 "Username" 未设置或者为 None,则 SSH 命令行中不提供用户名部分. "Username"$Username 设置远程用户名与本地用户名相同.
  • "Username""KernelCommand" 也可以作为规范的一部分作为 "ssh://user@hostname:port/path" 给出.
  • 默认的 "SSHArguments"-4 -x -o StrictHostKeyChecking=no -o BatchMode=yes.
  • SSH 无法交互地要求输入密码. 可以指定密钥,也可以使用 SSH 密码代理.
  • WSTPServer 内核的设置包括:
  • "KernelCount"1要启动的并行内核数
    "MachineName"None要连接的服务器的名称
    "Name"Automatic此内核的唯一名称
    "Pool"Automatic请求的内核池
    "Port"31415连接的端口
    "TimeConstraint"10等待连接的秒数
  • 如果未指定内核池,则 WSTPServer 从默认池中选择一个内核.
  • 云内核的设置包括:
  • "CloudBase"None云基础
    "Name"Automatic此内核的唯一名称
    "TimeConstraint"等待连接的秒数
  • 云基础以 https URL 的形式给出.
  • 本地内核的设置包括:
  • "KernelArguments"(OS-dependent)传递给内核程序的参数
    "KernelCommand"(OS-dependent)启动的内核程序
    "KernelCount"UpTo[$ProcessorCount]要启动的并行内核数launch
    "LowerPriority"True是否以较低的优先级运行并行子内核
    "TimeConstraint"等待连接的秒数

范例

打开所有单元关闭所有单元

基本范例  (2)

使用 SSH 连接到计算机,启动默认内核并运算其某些属性:

可选地将内核规范包装在 RemoteKernelObject 中:

指定远程内核命令的绝对路径:

或者,将路径作为 RemoteKernelObject 的选项:

范围  (17)

SSH 内核  (6)

作为 RemoteKernelObject 的选项,提供远程内核的路径:

或者,将路径指定为 SSH 字符串的一部分:

在 macOS 上指定默认内核命令的绝对路径:

指定远程操作系统选择合适的内核命令:

如果不需要任何选项,则可以省略 RemoteKernelObject

可以使用 "KernelCount" 给出要启动的并行内核数:

当使用 URL 简写格式时,可以使用 "?n" 指定并行内核数:

WSTPServer 内核  (4)

连接到侦听给定端口的 WSTPServer:

或者,将端口指定为 RemoteKernelObject 的选项:

连接到 WSTPServer 并请求给定池中的内核:

或者,将内核池指定为 RemoteKernelObject 的选项:

可以使用 "KernelCount" 给出要启动的并行内核数:

当使用 URL 简写格式时,可以使用 "?n" 指定并行内核数:

云内核  (2)

在默认云中使用内核:

指定(私有)云使用的 URL:

本地内核  (5)

使用由其绝对路径指定的特定本地内核:

或者,在第一个参数中给出路径;

如果不需要任何选项,则可以省略 RemoteKernelObject

使用由其相对路径给出的特定本地内核:

可以使用 "KernelCount" 给出要启动的并行内核数:

当使用 URL 简写格式时,可以使用 "?n" 指定并行内核数:

对于本地内核,在许可证允许的前提下,默认的并行内核数等于 $ProcessorCount

应用  (1)

RemoteKernelObject 可用于指定多个内核作为并行子内核启动:

属性和关系  (2)

内核对象描述了一种启动内核的方法; 它不代表持久连接:

每次运算都会启动一个新内核,使用后将其丢弃:

$DefaultKernels 是默认情况下用于并行计算的内核列表:

巧妙范例  (1)

指定远程机器:

查询它的处理器个数:

更新发现的内核计数描述:

启动所有这些并行子内核:

Wolfram Research (2020),RemoteKernelObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RemoteKernelObject.html.

文本

Wolfram Research (2020),RemoteKernelObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RemoteKernelObject.html.

CMS

Wolfram 语言. 2020. "RemoteKernelObject." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/RemoteKernelObject.html.

APA

Wolfram 语言. (2020). RemoteKernelObject. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RemoteKernelObject.html 年

BibTeX

@misc{reference.wolfram_2024_remotekernelobject, author="Wolfram Research", title="{RemoteKernelObject}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/RemoteKernelObject.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_remotekernelobject, organization={Wolfram Research}, title={RemoteKernelObject}, year={2020}, url={https://reference.wolfram.com/language/ref/RemoteKernelObject.html}, note=[Accessed: 22-November-2024 ]}