HPC講習会のためのスパコン利用環境構築

# はじめに

国プロ発の科学技術計算ソフトウェア（[第一原理電子状態計算PHASE/0](https://azuma.nims.go.jp/software/phase)）の開発に携わっています。この度、[京都大学学術情報メディアセンターのスパコンを使ったPHASE/0利用講習会](https://www.hpci-office.jp/events/seminars/seminar_phase0_250226)を開催する機会をいただきました。

計算実行に際して、設定諸条件をテキストファイルに記述しますので、講習会ではテキストファイルを編集する場面があります。プログラム開発者を対象とした講習会であれば、テキストエディタが利用できることを前提に参加者を募っても良いのですが、本講習会の受講対象は材料研究者です。テキストエディタに不慣れな方にも参加していただきたいと思います。

現在、スパコンのOSは（ほぼ間違いなく）Linuxです。古くからLinux (UNIX)に慣れ親しんでいる人の多くは、vimもしくはEmacsを扱えると思われ、それらの利用を前提とした講習会も開催されています。また、京都大学からも、[vi (vim) とEmacsの使い方が紹介](https://web.kudpc.kyoto-u.ac.jp/manual/ja/linux)されています。

本稿の目的は、vim, Emacs以外の、初心者でも扱いやすいと（私が）思うテキストエディタを、その利用環境まで含めて紹介することです。

スパコンは、手元の端末 (PC) からSSH接続して利用します。京都大学では[FastX](https://web.kudpc.kyoto-u.ac.jp/manual/ja/login/fastx)という仕組みが用意されてるので、Webブラウザ経由でスパコンを操作できます。取っ付き易くはありますが、広く普及している方法とは言い難く、今後、他の計算機を利用することを見据えて（是非、スパコン利用に馴染んでください）、汎用的な方法をご紹介します。

他の方の記事も参考にしてください。

https://qiita.com/jsasaki/items/ece57a27ca1927c21bd8

https://qiita.com/aya_se/items/9e3e333b26e989e2c97b

# MobaXterm

Windowsからのスパコン利用に用いる定番ソフトウェアの一つが[MobaXterm](https://mobaxterm.mobatek.net/)です。
（Windowsに標準添付されている「ターミナル」でもSSH接続可能ですが、使い難いので使用お勧めしません。）

MobaXtermは、端末（コマンドライン）操作だけでなく、ファイル転送、X-Window Systemを内蔵しており、これだけで何役もこなします。
そして、テキストエディタ（MobaTextEditor）も包含しています。
このエディタは、リモート（スパコン）にあるファイルをPCに転送して、PC上で編集操作を行うので、動作が軽快です。そして終了時には、リモート（スパコン）のファイルを更新します。マウスを利用したコピー（カット）＆ペースト、カーソルキー使ったカーソル移動など直感的に操作でき、多くを編集しない人に必要な機能は備わっています。

![mobaedit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159352/bc2dad34-1911-8a09-ab61-8299cdcc9d78.png)

# macOSの場合

macOSでは、標準添付の「ターミナル」を用いてSSH接続します（私はiTerm2を使っていますが、大きな違いではありません）。
X-Window System（Xサーバー）は[Xquartz](https://www.xquartz.org/)が定番です。追加インストールしてください。
ファイル転送用のアプリケーション（FTPクライアント）があると便利です。私は[Cyberduck](https://cyberduck.io)のお世話になっています。（無料でも使えますが、気に入ったら寄付しましょう。Windows版もあります。）

Cyberduckで（スパコン上の）ファイルを選択して、macOSが搭載しているテキストエディタ（例えば、テキストエディット）で編集できます。

![cyber.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159352/c27fc49d-9927-f0c4-2575-99c02c242dc8.png)

# Visual Studio Code

別途、特にお勧めするのが[Visial Studio Code](https://code.visualstudio.com/) （以下、VSCodeと略します）です。OSを選ばず利用できます。（スパコンにもインストールできますが、本稿では扱いません。）
基本はテキストエディタですが、様々な拡張機能を組み合わせることで、その他の役割も担います。純粋にテキストエディタとしても秀逸で、不慣れな方が直感的に操作できる一方で、習熟すればプロフェッショナルな利用にも適します。
リモートホスト（スパコン）にSSH接続するための拡張機能は[Remote - SSH拡張機能](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)です。接続は、VSCodeウィンドウ左下の、こんな感じ「><」のボタンを押して、`ホストに接続する...`を選びます。

![remotessh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159352/443f1d43-6f10-9e49-aedf-70be5d1d809f.png)

接続後にスパコンのフォルダ（ディレクトリ）を開けば、エクスプローラーにはスパコンのディレクトリがツリー構造で表示され、ファイルを選択すると編集できます。
`Ctrl` + `J` (macOSでは`cmd` + `J`) でターミナルが開きます。スパコンのコマンドライン操作に使います。macOSで使っている場合は、グラフィックス表示など別ウィンドウが開く場面で、自動的にXサーバーが起動します。

![VSCode 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159352/df573668-b9a2-4c09-b02a-e42dd9e73f3c.png)

`Remote - SSH`を利用しない場合は、MobaXtermやCyberduckから起動するテキストエディタをVSCodeに設定すると便利です。

加えて、スクリーンキャスト モードを切り替える（`Toggle Screencast mode`）とキー入力を画面表示させることができ、講習会講師の説明にも役立ちます。

# まとめ

科学技術計算ソフトウェア操作方法の習得は容易ではありません。スパコン操作方法を同時に習得するとなれば、なおさら困難です。テキストエディタを含む計算機（接続）環境を整えることが、スパコン操作方法を習得する助けとなり、科学技術計算ソフトウェアの操作習得に集中できることを願っています。