昔に大学でスパコンを使って研究していたときに、「教えてもらえなかったけど知っておくと便利だったツール」をリストアップしておく。
ターゲット
- スパコンなどの共有SSHサーバを使って研究する学生
- 主に非情報系(スタッフ陣にあまり最新技術を教えてもらえなさそうな学生)
言語
多分fortranやCでMPIのコードを書くことになると思うが、それ以外に知っておくと便利なもの。
Python
非常に多用途な言語。自分は研究では主にグラフ描画に使っていた。アカデミア用途だと、gnuplotの代わりになるもの。
- 特にnumpy、matplotlib。
- gnuplotより機能がはるかによい。gnuplotは前処理を別の手段でやらないといけないが、Pythonはワンストップでできる。
- ほんまになんでもできるので、他のことがやりたくなってもつぶしが効く。ディープラーニング、webサーバ、etc
bash
- CUIで操作するときはまずこれなので。
- シェルスクリプトをちゃちゃっと書けると便利。
- プログラムを回すときに
./restart.sh
って唱えてる人、エディタで開いてみましょう。
開発環境
Emacs
- 宗教戦争の火種になりがちなので、他宗教の人は改宗する必要はないです。
-
emacs -nw
でコマンドラインで使える。 - lispエイリアンになるほど使い込む必要はないけど、
C-x C-s
とかM-;
(コメントアウト)とかは知っておきたい。
VSCode
なんでもできるエディタ
- WinSCPでもデフォルトで開くエディタを指定することができる。
- それどころかVSCode自身がリモートのソースを編集するプラグインを持っていたはず(使ったことはない)
Git
バージョン管理ソフト
- 大規模コードでディレクトリを切って管理するのは著しく非効率的であることに気づこう。
- 企業で開発するなら必須。
- テキストファイルなら何でも扱えるので、論文のバージョン管理にも最適。
markdown
テキストの記法
- 文法はわざわざ覚えるもんですらない
- pandocでpdfやhtmlに変換できる
- readmeなどちょっとしたテキストに便利。