VPN に接続し、ノートブックを開き、重いセルはサーバーで動くと期待します。実際にはトンネルはパケットを運ぶだけです。評価エンジンを導入せず、ライセンスを付与せず、どのマシンがコードを実行するかも選びません。これは三つの別の事柄であり、リモートカーネルの作業手順には最初の計算を信頼できるようにする前に三つすべてが必要です。

神話:VPN 接続がセットアップである

VPN はノート PC とサーバーの間にネットワーク経路を提供します。これは有用で、しばしば必要です。起動チャネルとカーネル接続がリモートホストに届かなければならないからです。しかし、そのホストに Wolfram カーネルが存在するか、ライセンスが二つ目の同時プロセスを許すか、フロントエンドがそれを使うよう設定されているかについては何も述べていません。

管理されたノート PC はフロントエンドだけを持ち、権利はサーバーに紐づくことがあります。逆も起こります。ノート PC のデスクトップライセンスは、共有インフラ上のカーネルを認可しません。どちらの場合も、トンネルを再接続しても解決しません。

この前提は早めに試してください。新しいノートブックで $MachineName を評価し、期待するホストと答えを比べます。ノート PC の名前が返れば、VPN がどれほど正常に見えても、そのセルはローカルで実行されています。

フロントエンドと評価エンジンを分ける

フロントエンドはウィンドウです。セルを編集し、出力を描画し、ノートブックファイルを保存します。カーネルは式を評価し、定義をメモリに保持するプロセスです。フロントエンドを閉じてもカーネルは移動せず、ノートブックを保存してもカーネルの状態は保存されません。

リモートカーネルを接続すると、ノートブックのファイル位置とカーネルの作業ディレクトリは別のものです。Directory[] は評価エンジンのディレクトリを報告し、Import、Export、相対ファイル名にとって重要なのはこのパスです。ノート PC のノートブックの隣にあるデータセットは、別のマシンで動くカーネルには見えません。

分析を書く前に、共有マウント位置、承認された転送手順、サーバーが直接到達できるデータベースのいずれかを選んで、データがどうサーバーへ届くかを決めます。この選択は、ノート PC のパスに依存するノートブックが次に別の人が実行したときに失敗するため、再現性に影響します。

承認されたチャネルでカーネルを起動する

Wolfram のリモートカーネルガイドは、カーネルエントリの追加、リモートマシンの選択、SSH 経由の起動を説明しています。例の実行ファイルパスと引数はその製品の作業手順に属します。そのまま貼り付けず、管理者が示すホストとバージョンに合わせてください。

ホストの同一性はセットアップの一部です。組織の手順で SSH ホスト鍵を検証し、発行された認証方式を使い、秘密鍵とパスワードは共有またはリポジトリにコミットされるノートブックファイルの外に置きます。起動コマンドとパスワードを含むノートブックは、便利さではなく資格情報の漏えいです。

近道として WSTP リスナーをインターネットに開かないでください。サポートされる方式は SSH 起動で、カーネルチャネルを認証済み接続の内側に保ちます。ネットワークチームが別のトランスポートを承認していればそれを使いますが、公開された評価ポートはトラブルシューティングの手順ではなく設計変更として扱ってください。

まず権利、データ、出力サイズを確認する

ライセンス所有者に、サーバーがこのユーザーのカーネルを実行してよいこと、同時セッションが許可されていることを確認します。リモート計算はデスクトップのフロントエンドとは別にライセンスされることが多く、権利による起動失敗は、サーバーのメッセージを読むまで失敗した SSH コマンドのように見えます。

次に結果のサイズを見積もります。数ギガバイトの式を返すカーネルは、起動チャネルとカーネルチャネルを通じてフロントエンドへ送り、ノート PC のメモリを停止させたり枯渇させたりします。重い集計はサーバーに残して要約を返すか、大きな結果をサーバー上のパスに書き出して意図的に転送してください。

実行ファイルパス、起動引数、作業ディレクトリをノートブックのセットアップメモに記録します。そうすれば次のユーザーは、サーバーが五つの候補パスのどれを使うかを再発見するのではなく、この構成を再現できます。

段階を順に診断する

五つの段階がすべて成功する必要があり、それぞれ別のテストがあるので、ノート PC から始め、いくつもの設定を一度に変えるのではなく最初の失敗で止めてください。

nc -vz research.example.edu 22
ssh -v [email protected] 'hostname; command -v wolframscript'
ssh [email protected] 'wolframscript -code "$MachineName"'

TCP 検査の失敗は、ルーティング、DNS、VPN の許可された宛先を示します。TCP 検査が成功して SSH ログインが失敗する場合は、認証またはホスト鍵ポリシーを示します。ログインはできるが実行ファイルが見つからない場合は、カーネルのインストールまたはフロントエンドに渡されたパスを示します。起動するが接続しないカーネルは、起動引数またはローカルファイアウォールを示します。

最初の意味のあるエラーを保存し、サーバー側の段階をそのマシンを所有する管理者に送ります。カーネルエントリを何度も作り直すと、どの段階が実際に失敗したかが隠れ、管理者が必要とする証拠が失われます。

最後に必要なのは、見覚えのあるウィンドウ、名前を挙げられる評価エンジン、コードとファイルの合意された経路です。VPN はその経路の一部にすぎず、作業手順がそれを早く反映するほど、決して問題ではなかったトンネルの再接続に費やす時間が減ります。

関連記事