VSCode(Remote-SSH)でジョブ実行サーバーに接続する方法|計算クラスター

Visual Studio Code(VSCode)のRemote-SSH拡張機能を使用すると、ローカルPCから計算クラスターのジョブ実行サーバーに接続し、サーバー上のファイルを直接編集できます。

この記事では、VSCodeの設定からSSH接続、ファイルの編集、Slurmジョブの投入までの基本操作を説明します。

VSCode(Remote-SSH)とは

VSCodeは、プログラムや設定ファイルを編集するためのコードエディターです。

Remote-SSH拡張機能を利用すると、SSH接続先のサーバーに保存されているファイルを、ローカルPCのVSCodeから直接開いて編集できます。

計算クラスターでは、主に以下の操作に利用できます。

  • Pythonなどのプログラムの作成・編集

  • Slurmジョブスクリプトの作成・編集

  • ターミナルからのジョブ投入や実行状況の確認

  • ジョブのログファイルや実行結果の確認

VSCodeはファイルの編集やジョブ管理に使用します。GPUを使用するプログラムは、ジョブ実行サーバー上で直接実行せず、Slurmを使用してジョブとして実行してください。

計算クラスター接続事前準備

VSCodeから計算クラスターに接続するには、以下のソフトウェアとSSH接続設定が必要です。

必要なもの

内容

Visual Studio Code

ローカルPCにインストール

Remote-SSH

VSCodeの拡張機能

SSH鍵

計算クラスターへの接続に使用する秘密鍵

configファイル

接続先や秘密鍵の保存先を設定したSSH設定ファイル

本記事では、すでにターミナルから計算クラスターへSSH接続できる状態を前提としています。

SSH接続の設定が完了していない場合は、先に以下の記事をご確認ください。

SSH接続の準備:configファイルの取得と設定

ジョブ実行サーバーへのSSH接続手順

VSCodeとRemote-SSHを準備する

まず、ローカルPCにVSCodeとRemote-SSH拡張機能をインストールします。

VSCodeをインストールする

Visual Studio Code公式サイトから、お使いのOSに対応したVSCodeをダウンロードし、インストールしてください。

すでにインストール済みの場合は、この手順は不要です。

Remote-SSH拡張機能をインストールする

VSCodeを起動し、画面左側の「拡張機能(Extensions)」アイコンをクリックします。

検索欄に Remote - SSH と入力し、Microsoftが提供する「Remote - SSH」を選択して「インストール(Install)」をクリックします。

インストールが完了すると、VSCodeからSSH接続先のサーバーを操作できるようになります。

VSCodeから計算クラスターにSSH接続する

Remote-SSHのインストールが完了したら、計算クラスターのSSH設定ファイルを使用してジョブ実行サーバーに接続します。

SSHのconfigファイルを確認する

計算クラスターへの接続には、Web管理ポータルから取得して設定した config ファイルを使用します。

通常、configファイルは次の場所に保存されています。

OS

保存先

Windows

C:\Users\<ユーザー名>\.ssh\config

macOS・Linux

~/.ssh/config

VSCodeのRemote-SSHは、この設定ファイルに記載された接続先を利用できます。

例えば、configファイルに以下の記述がある場合、接続先の識別名は login00-asuser10025 です。

Host login00-asuser10025

※識別名は利用者ごとに異なります。実際のconfigファイルに記載された値を使用してください。

ジョブ実行サーバーへ接続する際は、access00-... ではなく、login00-... で始まる識別名を使用します。

接続先を選択する

VSCodeでコマンドパレットを開きます。

  • Windows・Linux:Ctrl + Shift + P

  • macOS:Command + Shift + P

検索欄に以下を入力します。

Remote-SSH: Connect to Host...

表示されたコマンドを選択すると、SSHの接続先一覧が表示されます。

一覧から、configファイルに記載されたジョブ実行サーバーの識別名を選択してください。

例:

login00-asuser10025

接続先が表示されない場合は、コマンドパレットから Remote-SSH: Open SSH Configuration File... を実行し、使用するconfigファイルを確認してください。

接続先のOSを選択する

初めて接続する場合、以下のように接続先のOSを選択する画面が表示されることがあります。

計算クラスターのジョブ実行サーバーはLinux環境のため、「Linux」を選択してください。

SSH接続の完了を確認する

Linuxを選択すると、SSH接続が開始されます。

初回接続時は、VSCode Serverのセットアップが自動的に行われるため、通常より接続に時間がかかる場合があります。

接続が完了すると、VSCode画面左下に接続先の識別名が表示されます。

SSH: login00-asuser10025 のように表示されていれば、接続は完了です。

※接続先のOS選択画面は、初回接続時のみ表示される場合があります。

VSCodeでサーバー上のファイルを編集する

SSH接続が完了すると、ジョブ実行サーバー上のPythonプログラムやジョブスクリプトをVSCodeから直接編集できます。

フォルダーを開く

VSCodeのメニューから「ファイル(File)」→「フォルダーを開く(Open Folder)」を選択します。

ジョブ実行サーバー上の作業ディレクトリを指定して開いてください。

フォルダを開くと、画面左側のエクスプローラーにファイル一覧が表示されます。

ファイルを編集する

ファイル一覧からPythonプログラム(.py)やSlurmジョブスクリプト(.sh)などを選択すると、VSCodeのエディターで内容を確認・編集できます。

編集内容を保存すると、接続先サーバー上のファイルに反映されます。

VSCodeのターミナルからジョブを実行する

VSCodeでは、SSH接続中にサーバー上のターミナルを使用できます。

メニューから「ターミナル(Terminal)」→「新しいターミナル(New Terminal)」を選択してください。

画面下部にジョブ実行サーバーのターミナルが開きます。

例えば、作成済みのジョブスクリプト submit.sh を投入する場合は、以下のコマンドを実行します。

sbatch submit.sh

ジョブの状態は、以下のコマンドで確認できます。

squeue -u "$USER"

※ジョブの投入には、事前にSlurmジョブスクリプトを用意する必要があります。

VSCodeのターミナルでも、通常のSSH接続時と同様にSlurmコマンドを使用できます。

GPUを使用する学習処理などは、VSCodeの実行ボタンからジョブ実行サーバー上で直接起動せず、Slurmを使用して実行してください。

VSCodeのSSH接続を終了する

作業が終了したら、不要な接続を残さないようにSSH接続を終了します。

VSCodeのメニューから「ファイル(File)」→「リモート接続を閉じる(Close Remote Connection)」を選択してください。

リモート接続を終了すると、ローカルPCのVSCode画面に戻ります。

Remote-SSH利用時の注意事項

計算クラスターでは、ジョブ実行サーバーへの同時ログイン数やメモリ使用量に制限があります。VSCodeを利用する際は、以下の点にご注意ください。

SSHの同時接続数について

計算クラスターのジョブ実行サーバーでは、1ユーザーにつき各ジョブ実行サーバーへの同時ログイン数が最大2セッションに制限されています。

VSCode(Remote-SSH)は、接続時に複数のSSH接続を使用する場合があります。

そのため、VSCodeで接続している間は、別のターミナルからのSSH接続を必要以上に増やさないようご注意ください。

また、tmuxを利用している場合、残存するウィンドウやペインがログイン数の制限に影響することがあります。

同時ログイン数の上限に達すると、以下のエラーが表示される場合があります。

There were too many logins

このエラーによってSSH接続できなくなった場合は、残存するセッションをユーザー自身で終了できないことがあります。その際は、弊社サポートにてセッション状況を確認し、対応いたしますのでご連絡ください。

ジョブ実行サーバーのメモリ制限について

ジョブ実行サーバーでは、1ユーザーあたりのメモリ使用量が最大16GBに制限されています。

VSCodeのRemote-SSHでは、接続先サーバー上でVSCode Serverや一部の拡張機能が動作するため、メモリを使用します。

大量のメモリを必要とする処理は、ジョブ実行サーバー上で直接実行せず、Slurmを使用してください。

VSCode(Remote-SSH)で接続できない場合の確認方法

VSCodeから計算クラスターにSSH接続できない場合は、まず通常のターミナルから接続できるか確認してください。

ターミナルからも接続できない場合は、SSH鍵、configファイル、同時接続数の制限などが原因として考えられます。

通常のSSH接続はできるものの、VSCodeから接続できない場合は、Remote-SSHの接続ログを確認してください。

VSCodeの「表示(View)」→「出力(Output)」を開き、出力先から「Remote - SSH」を選択すると、接続処理のログを確認できます。

特に、以下の項目をご確認ください。

確認項目

確認内容

SSH設定

正しいconfigファイルと接続先を選択しているか

SSH接続

通常のターミナルから接続できるか

VSCode Server

接続先でセットアップエラーが発生していないか

同時接続数

ほかのSSH接続やtmuxの仮想端末が残っていないか

接続エラーの原因を確認する際は、表示されたエラーメッセージとRemote-SSHのログを照合してください。

GPUSOROBANサポートチーム
GPUSOROBANサポートチーム
株式会社ハイレゾが提供するGPUクラウドサービスのサポートチームです。 GPUクラウドを安心してご利用いただけるよう、サービスの利用方法や技術情報、トラブルシューティングなどを発信しています。