並列計算のためのカーネルの設定

並列計算を行う場合はローカルのカーネルおよびリモートの追加のカーネルを使うことができる.CPUで追加のコアを使うローカルカーネルは通常設定の必要はないが,リモートカーネルの場合はどこにあるか,またリモートリソースにどのようにアクセスするかを指定する必要がある.

$DefaultParallelKernelsデフォルトで起動するカーネル設定のリスト
KernelConfiguration["URL"]起動できるカーネルの設定
LaunchKernels[]設定されたカーネルを起動する

並列計算のためのカーネルの設定

はじめに:デフォルト設定

デフォルトでは,並列計算にはローカルカーネルが使われる:
起動されるカーネルの数はマシンの$ProcessorCountに等しい:

文字列"localhost"または"Local"はカーネル設定の短縮形である.カーネル設定の特性をすべて得るためには,短縮形を設定オブジェクトに変換してその特性について問う.

短縮形をカーネル設定オブジェクトに変換する:
その特性を得る:
または特性との連想を得る:
指定数のローカルカーネルは簡単に起動できる:

設定の管理

新しい値を$DefaultParallelKernelsに割り当てると,現行のセッションにおけるその後のLaunchKernels[]では,これらのカーネルが使われる.この割当てはセッションに渡って保存される.

デフォルトのカーネルのリストを,4個のローカルカーネルとリモートマシンの2個のカーネルに変更する:
これでこのカーネルのリストがLaunchKernels[]で使われる:
ノートブックのカーネルを終了して再起動すると,$DefaultParallelKernelsは以前に割り当てられた値を保持する:
$DefaultParallelKernelsの値をデフォルトに戻し,永続的な設定を削除するためには,Unsetを使う:

カーネル設定は環境設定カーネルセクションまたは評価 並列カーネル設定メニュー項目から編集することもできる.

カーネル設定の特性

カーネル設定の詳細形式は,特別な場合に変更できる多数の特性をサポートする.

特性をKernelConfigurationのオプションとして指定する:
設定オブジェクトの特性の値を与える:
すべての特性名と値を与える:
既存の設定を変更するためには,新しいオブジェクトで変更したい特性を指定する:
"KernelCount"特性は,カーネル設定の短い文字列形式でより簡単に与えることができる:
使用される値を検証するために,それを設定オブジェクトに変換してその特性を尋ねる:

エンジン実行ファイルの場所

ローカルマシンのカーネルでは,起動するエンジンはカーネルを発動するエンジンと同じものである.

ローカルカーネルに対するデフォルトのカーネルコマンド:
これは,カーネルを起動するカーネルと同じインストールフォルダ内にある:
file: URLで場所を与えることによって,異なるカーネルを起動することができる:

リモートリソースにアクセスする場合,"wolfram"実行ファイルがシェルの検索パス上になければ,リモートマシンのエンジン実行ファイルの場所を指定しなければならない場合がある.

macOSコンピュータのリモート実行ファイルを指定する:
OS依存のデフォルトでは,"OperatingSystem"オプションを使う:

設定するカーネルのタイプ

ワークステーション以外のマシンのカーネルを使う場合,リモートマシンにアクセスするために使われる方法を指定する必要がある.方法によっては,リモートのユーザ名のような追加のパラメータも必要になる.

ローカルカーネル

"Local"デフォルトのローカルカーネル指定
"localhost"レガシーのlocalhost指定
"file://"デフォルトのカーネル実行ファイルを使うための空ファイルのURL
$ProcessorCount起動するデフォルトカーネル数を示す整数

ローカルカーネルのURLに相当する形式

所望のデフォルトカーネル数を示すために,ローカルカーネルはレガシーの"localhost"文字列,ファイルのURL,整数で指定することができる.

ローカルカーネル指定に相当する形式:
file: URLを使うと,別の実行ファイルを与えることができる:

SSHカーネル

SSHプロトコルを使うと,リモートコンピュータにセキュアログインができる.SSHキーを設定することでパスワードのプロンプトなしでログインすることができる.Wolfram Engineをインストールしてリモートマシンにログインすると,研究室,ローカルクラスタ,クラウド計算サービスのリモートリソースに簡単にアクセスできる.

ローカルのWindowsコンピュータでは,MicrosoftのSSHパッケージをインストールしてリモートリソースが使えるようにすることをお勧めする.WindowsはSSHサーバを設定することでリモートリソースとして設定することもできる.これは高度なトピックなので,ここでは言及しない.

他のオペレーティングシステムはSSHがすでにインストールされている.

"Username"noneリモートのユーザ名
"OperatingSystem""Unix"リモートのオペレーティングシステム
"KernelCommand"os-dependentリモートのエンジン実行ファイル

SSHカーネルの一般的な特性

リモートのLinuxコンピュータ上のデフォルトカーネルを起動する:
リモートのMacintosh上で2個のデフォルトカーネルを起動する:
特定のカーネルバージョンを起動する:

WSTPServerカーネル

コンピュータにWSTPServerをインストールすると,このコンピュータ上のカーネルを簡単に提供することができる.WSTPServerはRemoteEvaluateで使用する個々のカーネルおよび並列カーネルを提供することができる.

並列カーネルのデフォルトプールにあるカーネルの数をリクエストする:
1個のカーネルを使って評価する:

WSTPServerインスタンスはいくつかのカーネルプールを提供することがある.

URLパスのコンポーネントとして使うプールを指定する:

LightweightGridカーネル

Wolfram Lightweight Grid ManagerはgridMathematicaの一部である.これはより新しいWSTPServerと同じ方法で並列カーネルを分配する.Lightweight Grid Managerの詳しい使用方法は並列計算のためのLightweightGridカーネルの設定に記載されている.

Lightweight Gridカーネルは,wstp:の代りにlwg:を使うが,WSTPServerカーネルと同じように設定できる.

指定されたホスト上のLightweight Grid Managerのデフォルトインストールにあるカーネル数をリクエストする:
または,Lightweight Grid Managerの完全なURLを指定する: