Skip to main content

計算機クラスタ

クラスター・システムに接続

計算規模が大きくなると, どうしても手元のPCでは困難になってきます.将来に備えて, VSCodeで外部のLinuxクラスターを利用しましょう.

  • 前提として,  このへんで $HOME/.ssh/config ファイルを作成済みであるとします.

インストール

【Code】【基本設定】【拡張機能】で

【Remote Development】をインストール

クラスターに接続

 

設定先をクリックすると

クラスターのターミナルが開く. 上の例では, ここで覚えた mkdir コマンドを用いて, 演習用のフォルダーを作成してます.フォルダーを作成したら, 左の【フォルダーを開く】しましょう.

あと, 当研究室には,ファイルサーバーが新旧2台あります. sun0とsun1です. 上の例では   [ユーザー名@sun0] $ と表示されているので, あなたの居住地が  sun0 であることがわかります.

自分がどちらに住んでいるのかは,覚えておきましょう.

【Code】【新しいウィンドウ】で新しいウィンドウを開いて, そこでMacの【フォルダーを開く】こともできます.

  • フォルダーの名前は,どちらも「PROG_EXE」ですが,右側は遠隔地のコンピュータのフォルダーを開いています.空っぽですね.
  • 左側は,今まで利用してきた,あなたのMacのフォルダーです.ここにプログラムを書いてました.

フォルダーの名前が同一でも,違うコンピュータなので,フォルダーの内容は異なります.

ファイルやフォルダーの作成

フォルダーやファイルを作成する方法は, 従来と同じです. 試してみましょう:

でも,これでは,Macで行ったのと同じ作業を,もう一度クラスター計算機で繰り返さなければならないですよね.これには,いろいろ方法があります.

ファイル転送(同期)

Macのフォルダーと, クラスターのフォルダーを「同期」させましょう.まず,Macの方をVSCodeで開いておきます.で

$ rsync -avr 送りたいフォルダー    SSHの接続先名:送り先フォルダー

コマンドを実行します.

  • 「今いるフォルダー」から送りたいフォルダーが見える状態であること!
  •    あなたのSSH設定に応じた, SSHの接続先名を使う.
  • 送り先フォルダーは, クラスター計算機の方のホームフォルダを起点とした場所を書くこと
  • SSHの接続先名送り先フォルダーの間には,コロン:が必要

こんな感じになる:

送信できたら,クラスターを開いているVSCodeのウィンドウでみてみましょう:

ファイルは無事に転送できて,編集もできます.ただし

  • リモートのクラスターで編集しても, Macのフォルダーの中身が変わるわけではない.
  • すると,リモートで編集したら, Macに持ち帰らないといけない
  • 再生ボタンが出現しないか,出現しても動作しない

持ち帰る場合,Macの方をVSCodeで開いておきます.で

$ rsync -avr SSHの接続先名:クラスターのフォルダー  受け取りたいMacのフォルダー    

コマンドを実行します.この方法の問題は非常にたくさんあります:

  • 人間(あなた)が,Macとクラスターの「どちらが新しいのか」を管理しなければならぬ
    • 10%程度の確率で,取り違えます
  • うっかり,旧バージョンで新バージョンを上書きしてしまい,一週間の努力が努力が水泡と帰す.
    • 経験上,毎月1回やらかす
  • 間違って違うフォルダーにコピーしてしまう
    • すると,同じような,ちょっとづつ,バージョンが異なるフォルダーが10個くらい出現する
    • 1週間後に作業を再開しようとすると,「どこで作業してたんだっけ?!?」となる
    • こうして,数ヶ月の努力が水の泡となる

人間の作業を信用してはなりません.

この問題を解決するのが,次節で紹介するソースコントロールシステムです.