クラスター・システムに接続
計算規模が大きくなると, どうしても手元の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週間後に作業を再開しようとすると,「どこで作業してたんだっけ?!?」となる
- こうして,数ヶ月の努力が水の泡となる
人間の作業を信用してはなりません.
この問題を解決するのが,次節で紹介するソースコントロールシステムです.