# GPUマシン使用方法 [TOC] ## **1** 更新ログ - **2019.09.26** 初版 - **2019.09.29** 誤字修正 - **2019.10.08** pip関連の修正 (4.3節) ## **2** SSDの管理方法 ### 2.1 SSDの保管方法 ![](https://i.imgur.com/hI8osYu.jpg) 上の画像のように、141 ~ 147までを管理しています。SSDを抜いたら、使用するマシンの名前が書いた札を抜いた場所に入れてください。 写真の例では、`GPU141` が現在`Aries`というマシンで実行されていることがわかります。 ### 2.2 使用中把握方法 :::info これは検討段階であるため、今後変更する可能性があります。 ::: [GPUマシン稼働状況](https://docs.google.com/spreadsheets/d/1ESBY8D7D3YrS5DwUQRHWj3C8eClU8BqJT5xfCA8RsKg/edit?usp=sharing) 各々自分が使用したいマシンと日付がクロスする部分に名前を書いて下さい。「どれだけ連続して名前を書いていいの」や「予定がかぶった場合はどうするの?」等は使いながら考えます。 ## **3** ログイン方法 SSDをマシンにスロットインしたら、準備は完了です。 `ssh -X [ユーザー名]@gpuxxx`でリモートログインができます。 ``` ito.t@backfire:~$ ssh -X ito.t@gpu141 ito.t@gpu141's password: Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-65-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 個のパッケージがアップデート可能です。 0 個のアップデートはセキュリティアップデートです。 Last login: Tue Oct 8 13:25:27 2019 from 133.78.172.220 ito.t@gpu141:~$ ls COMAND Picture Wolfram Mathematica get-pip.py kenkyu_nishi sysad作業ログ Desktop Public b4zemi gpu141 phantom.env tarf Download Template backup iipl repos work LINK Video unko ismir sysAdmi ito.t@gpu141:~$ hostname gpu141.ipl.cs.tcu.ac.jp ``` 正常にログインできれば、GPUマシン上で自分の名前のホームディレクトリがマウントできているはずです。`hostname`コマンドで、今コンソールがどのマシンの上にいるのか確認してみてください。 ## **4** 注意点 GPUマシンを共有資産として使用しているので以下のことに注意してください。 ### 4.1 `sudo`使用不可 皆さんがログインしている自分の名前のユーザーには管理者権限がありません。なので`sudo`等を使う管理者権限が必要なコマンドの実行はできません。その都度, 伊藤か、荒井先生に頼んでください。 ただし、`shutdown`と`reboot`だけは`sudo`を使用してもパスワードを求められないようになっています。 ### 4.2 事前にインストールしたパッケージ `apt`や`dpkg`も`sudo`のパスワードを知らないと実行できません。なので、パッケージやドライバーは事前にインストールしています。 ##### 4.2.1 CUDA系 cuda9.0等をToolkit(.debファイル)経由でインストール済み。またドライバはcudaのtoolkitに付属しているものをそのまま使用しています(apt install cuda-8-0で入るバージョン)。別ではインストールを行っていない。 ただし、`cuda`へのパスは通していないので自分でパスを通してください。 ``` #.bashrcに追記するパス cuda-8.0の場合 export PATH=/usr/local/cuda-8.0/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH} ``` ##### 4.2.2 aptで入るパッケージ郡 - 開発系 - `build-essential` - `python3-tk` - `bpython` - `bpython3` - !開発系 - `gimp` - `audacity` ### 4.3 python環境の構築方法 Pythonのパッケージはすべて`.local`以下に配置する事を想定しています。 1. pipのダウンロード [https://bootstrap.pypa.io/get-pip.py](https://bootstrap.pypa.io/get-pip.py)より、スクリプトをダウンロード。 `python get-pip.py --user`,`python3 get-pip.py --user`を実行。 実際に入っているかバージョンの確認を行う。 ``` ito.t@gpu141:~$ python2 -m pip -V /home/ito.t/.local/lib/python2.7/site-packages/pip/_vendor/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown. warnings.warn(warning, RequestsDependencyWarning) pip 19.2.3 from /home/ito.t/.local/lib/python2.7/site-packages/pip (python 2.7) ``` ``` ito.t@gpu141:~$ python3 -m pip -V pip 19.2.3 from /home/ito.t/.local/lib/python3.5/site-packages/pip (python 3.5) ``` 正しい場所にインストールされていることを確認してください。 2. PATHを通す `get-pip.py`でインストールされる`pip`は`~/.local/bin`に`pip`があるのでここにPATHを通す。 ``` export PATH=${HOME}/.local/bin:${PATH} ``` 3. pipの使い方。 `pip3 install [パッケージ名] --user` 上のコマンドを通して`pip`を実行します。 ~~もし上記のコマンドでできない場合`python3 -m pip install [パッケージ名] --user`で試してください。~~ ## **5** 便利なコマンド一覧 ### 5.1 w ~ログイン状況の確認~ `w`というコマンドで、今`ssh`で繋いでいるマシンに誰がログインしているのか確認できる。 今回は`root`が`python`で何かしていることがわかりますね。 ``` ito.t@gpu141:~$ w 19:43:10 up 3:34, 2 users, load average: 0.05, 0.07, 0.02 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ito.t pts/0 133.78.172.220 19:37 0.00s 0.08s 0.00s w root pts/1 133.78.172.220 19:43 6.00s 0.31s 0.24s /usr/bin/python /usr/bin/bpy ``` ### 5.2 screenfetch ~マシンスペックの確認~ ``` ito.t@gpu141:~$ screenfetch ./+o+- ito@frontier yyyyy- -yyyyyy+ OS: Ubuntu 16.04 xenial ://+//////-yyyyyyo Kernel: x86_64 Linux 4.4.0-164-generic .++ .:/++++++/-.+sss/` Uptime: 6h 10m .:++o: /++++++++/:--:/- Packages: 2122 o:+o+:++.`..```.-/oo+++++/ Shell: bash 4.3.48 .:+o:+o/. `+sssoo+/ Resolution: 1920x1080 .++/+:+oo+o:` /sssooo. DE: Unity 7.4.5 /+++//+:`oo+o /::--:. WM: Compiz \+/+o+++`o++o ++////. WM Theme: Ambiance .++.o+++oo+:` /dddhhh. GTK Theme: Ambiance [GTK2/3] .+.o+oo:. `oddhhhh+ Icon Theme: Numix-Circle \+.++o+o``-````.:ohdhhhhh+ Font: Ubuntu 11 `:o+++ `ohhhhhhhhyo++os: CPU: Intel Core i7-6700 CPU @ 4GHz .o:`.syhhhhhhh/.oo++o` GPU: GeForce GTX 1080 Ti /osyyyyyyo++ooo+++/ RAM: 2330MiB / 32033MiB ````` +oo+++o\: `oo++. ``` 自分のログインしている環境のマシンスペックを確認することができます。 ### 5.3 time ~プログラム実行時間の計測~ コマンドの前に`time`というコマンドをつけるだけで、そのコマンドの実行時間が計測できます。 スクリプトの実行時間の目安にしてください。 ``` ito@frontier:~$ time du -h . 2>/dev/null | tail 445M ./Sync/lab/PDF 1.4G ./Sync/lab 1.4G ./Sync 8.0K ./.gnome/apps 12K ./.gnome 708K ./.cupy/kernel_cache 712K ./.cupy 2.5M ./.pulse_secure/pulse 2.5M ./.pulse_secure 84G . real 0m1.370s user 0m0.300s sys 0m0.656s ``` ### 5.4 shutdown ~限定的なsudo~ 本研究室の環境では、`sudo`が使えません。その権限が与えられないような構成になっています。 しかし、電源管理系のコマンドは使えないと困るということで、 `sudo shutdown` `sudo reboot` のみ、使用時に`root`のパスワードを求められずに実行が可能になっています。 ### 5.5 `script`コマンドを用いてログの管理 ==急に電源が落とされる可能性がある環境です。== Pyhtonのスクリプト本体の実行が終了した後、端末上の数字を確認する実装にしている人は`script`コマンドの使用を徹底してください。 [scriptコマンドで作業ログを記録](https://dev.classmethod.jp/server-side/os/scriptcommand/)