---
# System prepended metadata

title: GPUマシン使用方法

---

# 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/)
