KernelConfiguration

KernelConfiguration[spec]

RemoteEvaluateあるいはLaunchKernelsに使用できるカーネルを指定する.

詳細

  • KernelConfiguration["spec",options ]を使ってカーネル指定のデフォルト設定がオーバーライドできる.
  • 次は,認識されるカーネル指定である.
  • "ssh://user@hostname:port/path"SSHを使ってアクセスできる,指定されたマシン上のカーネル
    "ssh://hostname"指定されたマシン上のデフォルトのパス,ユーザ,ポートを使う
    "hostname""ssh://hostname"に等しい
    "wstp://server:port/pool"WSTPServer上のカーネル
    "wstp://server"デフォルトのポートとカーネルプールを使う
    "Local"デフォルトのローカルカーネル
    "localhost"同一マシン上のカーネル
    nn 個のローカル並列カーネル
    "file:///path/to/wolfram"同一マシン上の指定されたカーネル
    "file://"同一マシン上のデフォルトカーネル
    "https://www.wolframcloud.com/"Wolfram Cloud内のカーネル
    "lwg://host.example.com:port/path"LightweigtGridサーバ上のカーネル
    "lwg://host.example.com:port"LightweightGridマネージャへのデフォルトパスを使う
    "lwg://host.example.com"LightweightGridサーバのデフォルトポート(3737)を使う
    LinkObject[]実行中のカーネルへのWSTPリンク
  • 次は,SSHカーネルの設定である.
  • "EvaluationKernelArguments"{"-noinit"}評価カーネルの追加引数
    "ForwardPort"Random接続の転送に使うリモートポート
    "KernelArguments"(OS-dependent)カーネルプログラムに渡す引数
    "KernelCommand"(OS-dependent)実行するカーネルプログラム
    "KernelCount"1起動する並列カーネルの数
    "MachineName"None接続するマシン名
    "Method"(OS-dependent)リモートマシン上のカーネルの接続方法
    "Name"Automaticこのカーネルの一意的な名前
    "OperatingSystem""Unix"リモートオペレーティングシステム
    "Port"NoneSSHサーバのポート
    "SshArguments"(以下を参照のこと)SSHコマンドに渡す引数
    "SshCommand""ssh"SSHコマンドの名前
    "SshIdentity"None使用するSSH秘密鍵
    "SubKernelArguments"{"-noinit","-subkernel"}並列サブカーネルの追加引数
    "TimeConstraint"10接続の待機時間(単位:秒)
    "Username"NoneSSHが使うログイン名
  • 接続メソッドの"Launch"はmacOSとLinuxのデフォルトである.これはLinkLaunchを使ってSSHを起動し,リモートカーネルとのWSTP接続にはstdin/stdoutを使う.
  • 接続メソッドの"Forward"はWindowsのデフォルトである.これはローカルマシン上に聞いているWSTPソケットを作成し,SSHトンネル内のカーネル接続をリモートカーネルからリスニングソケットに転送する.
  • デフォルトのリモート"KernelCommand"は宣言された"OperatingSystem"に基づいて選択される.
  • "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は,カーネルプールが指定されていなければデフォルトのプールからカーネルを選択する.
  • 次は,LWGカーネルの設定である.
  • "Agent"Automatic使用するLWGエージェントURL
    "KernelCount"1起動する並列カーネル数
    "Name"Automaticこのカーネルの一意的な名前
    "Service"Automaticリクエストするカーネルサービス
    "TimeConstraint"30接続の待機時間(単位:秒)
  • LightweightGridサーバは,カーネルサービスが指定されていなければデフォルトのサービスからカーネルを選択する.
  • 次は,クラウドカーネルの設定である.
  • "CloudBase"Noneクラウドベース
    "Name"Automaticこのカーネルの一意的な名前
    "TimeConstraint"接続の待機時間(単位:秒)
  • クラウドベースはHTTPS URLの形で与えられる.
  • 次は,ローカルカーネルの設定である.
  • "EvaluationKernelArguments"{"-noinit"}評価カーネルの追加引数
    "KernelArguments"(OS依存)カーネルプログラムに渡す引数
    "KernelCommand"(OS依存)起動するカーネルプログラム
    "KernelCount"$ProcessorCount起動する並列カーネル数
    "LimitByLicense"Trueライセンスで許可される並列カーネル数の制限
    "LinkProtocol"Automatic使用するリンクプロトコル
    "LowerPriority"True並列サブカーネルを優先順位を低くして実行するかどうか
    "SubKernelArguments"{"-noinit","-subkernel"}並列サブカーネルの追加引数
    "TimeConstraint"接続の待機時間(単位:秒)
  • LinkProtocolオプションはLinkLaunchに渡される.
  • リンクカーネルの設定には以下がある.
  • "LinkObject"None使用するLinkObject
    "Name"Automaticこのカーネルの一意の名前
  • リンクオブジェクトは実行中のカーネルに対して開いているWSTPリンク出なければならない.

例題

すべて開くすべて閉じる

  (2)

SSHでマシンに接続し,デフォルトカーネルを起動してその特性のいくつかを評価する:

カーネル指定をKernelConfigurationで包み込むこともできる:

リモートカーネルコマンドに絶対パスを指定する:

パスをKernelConfigurationのオプションとして与えることもできる:

スコープ  (25)

SSHカーネル  (6)

KernelConfigurationのオプションとしてパスをリモートカーネルに与える:

SSH URLの一部としてパスを指定することもできる.

macOS上のデフォルトカーネルコマンドへの絶対パスを指定する:

適切なカーネルコマンドを選択するためにリモートオペレーティングシステムを指定する:

オプションが必要なければKernelConfigurationは省略可能である:

起動する並列カーネルの数は"KernelCount"で与えられる:

URLの短縮形を使うときの並列カーネルの数は"?n"で指定できる:

WSTPServerカーネル  (4)

指定のポートで聞いているWSTPServerに接続する:

KernelConfigurationのオプションとしてポートを指定することもできる:

WSTPServerに接続し,指定プールのカーネルをリクエストする:

KernelConfigurationのオプションとしてカーネルプールを指定することもできる:

起動する並列カーネルの数は"KernelCount"で与えることができる:

URLの短縮形を使うときの並列カーネルの数は"?n"で指定できる:

クラウドカーネル  (2)

デフォルトのクラウド内のカーネルを使う:

使用する(秘密)クラウドのURLを指定する:

ローカルカーネル  (7)

ファイルのURLとして絶対パスで与えられた特定のローカルカーネルを使う:

KernelConfigurationの特性としてパスを指定することもできる:

相対パスで与えられた特定のローカルカーネルを使う:

起動する並列カーネルの数は"KernelCount"で与えられる:

URLの短縮形を使うときの並列カーネルの数は"?n"で指定できる:

単一の整数 nn 個のローカルカーネルの短縮形である:

ローカルカーネルの場合,並列カーネルのデフォルト数はライセンスが許す限り$ProcessorCountに等しい:

特定のリンクプロトコルを使用する:

LWGカーネル  (4)

LightweightGridサーバからデフォルトのポートとマネージャURLで2つの並列カーネルを起動する:

LightweightGridサーバのURLからカーネル設定を得る:

LWGカーネルのドキュメントされているすべての特性を得る:

この設定で並列カーネルを起動する:

URLの短縮系を使う場合,並列カーネル数は"?n"で指定することができる:

起動する並列カーネルの数は"KernelCount"で与えられる:

リンクカーネル  (2)

カーネルを起動してそれに対するWSTPリンクを取得する:

これをカーネル設定で使用する:

このカーネルで評価を行う:

Link kernels can be used only once:

並列サブカーネルとして使用できる2つのカーネルを起動する:

これをカーネル設定で使用する:

並列計算にこの設定を使用する:

特性と関係  (2)

カーネルオブジェクトはカーネルの起動方法を説明する.永続的な接続を表す訳ではない:

評価ごとに新たなカーネルが起動されるが,これは使用後に破棄される:

$DefaultParallelKernelsはデフォルトで並列計算に使用するカーネルのリストである:

おもしろい例題  (1)

リモートマシンを指定する:

プロセッサ数についてクエリを行う:

破棄されたカーネル数の説明を更新する:

これらすべての並列サブカーネルを起動する:

Wolfram Research (2022), KernelConfiguration, Wolfram言語関数, https://reference.wolfram.com/language/ref/KernelConfiguration.html (2023年に更新).

テキスト

Wolfram Research (2022), KernelConfiguration, Wolfram言語関数, https://reference.wolfram.com/language/ref/KernelConfiguration.html (2023年に更新).

CMS

Wolfram Language. 2022. "KernelConfiguration." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/KernelConfiguration.html.

APA

Wolfram Language. (2022). KernelConfiguration. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/KernelConfiguration.html

BibTeX

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

BibLaTeX

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