RaspberryPiで地球外知的生命体探査と重力波解析

提供: ディーズガレージ wiki
移動先: 案内検索
アレシボ天文台
グリーンバンク望遠鏡
パークス天文台 (CSIRO提供) https://ja.wikipedia.org/wiki/CSIRO
500メートル球面電波望遠鏡 http://fast.bao.ac.cn/en/
ジョドレルバンク天文台 Lovell-Telescope
LIGO リビングストン観測所 Courtesy Caltech/MIT/LIGO Laboratory
LIGO ハンフォード観測所 Courtesy Caltech/MIT/LIGO Laboratory

SETI@home、Einstein@Homeに参加してみます。
参考: Berkeley Open Infrastructure for Network Computing - Wikipedia

環境

ボード Raspberry Pi 2 Model B
OS Raspbian Stretch with desktop 2018-11-13
microSD SanDisk Ultra microSDHC Class10 8GB
LAN 標準搭載のLAN
作業補助 モニター マウス キーボード

OSの準備

「Raspbian インストール」などで検索してみてください。
省略

IP固定(省略可)

設定内容は各ネットワーク環境により異なります。
「Raspberry Pi Strech IP固定」などで検索してみてください。

$ sudo nano /etc/dhcpcd.conf

末尾に追記

interface eth0
static ip_address=192.168.1.186/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

保存: Ctrl + o > リターン
終了: Ctrl + x

再起動

$ sudo reboot

遠隔操作(省略可)

運用にモニター、マウス、キーボードは必要ないので遠隔操作にします。
標準で入っているRealVNCを使用します。

VNC有効

Menu > 設定 > RaspberryPiの設定 > インターフェイスタブ > VNC有効 > OK

解像度の変更

Menu > 設定 > RaspberryPiの設定 > システムタブ > 解像度 > 1280x1024程度

シャットダウンし、モニター、マウス、キーボードを取り外して電源入れ直し。
WindowsPCなどのVNCクライアントから接続を試す。
成功していれば、以降はVNCクライアントの窓の中で作業できます。

インストール

参考: Installing BOINC - BOINC

$ sudo apt-get install boinc-client boinc-manager
$ sudo service boinc-client start

再起動

$ sudo reboot

設定

Menu > システムツール > BOINC Manager起動

初めて起動する場合、「プロジェクトを選択してください」窓が出ます。
もう一度表示は、「ツール > プロジェクトを追加」ボタンで再度表示します。
SETI@home、Einstein@Home、2つの場合は2回登録操作。

BOINC02.jpg

タスクの確認で必要なのでメールアドレス、パスワードをメモ BOINC03.jpg

表示 > 詳細表示で切り替え
「常時稼働」と「ネットワーク活動を常に許可」に変更

BOINC05.jpg

CPU使用量が100%で動いてしまいインターフェース操作がもたつきます。
CPU使用量を調整してみます。

オプション > 計算に関するプレファレンス
最大で75%のCPUコアまで 程度

BOINC06.jpg

再起動

$ sudo reboot

CPU使用量が80%程度で常時動いていれば成功です。

タスクの確認

計算中のタスクはRaspberryPiのBOINC Managerでも確認可

SETI@home
Einstein@home

設定したメ-ル、パスワードでログイン
アカウント情報からタスク表示

BOINCstatsで集計画像くれます。
sig.png

延命(省略可)

swap

無効化
Stretchの場合

$ sudo dphys-swapfile swapoff
$ sudo systemctl stop dphys-swapfile
$ sudo systemctl disable dphys-swapfile

tmpfs

有効化

$ sudo nano /etc/fstab

末尾に追記

tmpfs    /tmp                              tmpfs    defaults,size=32m,noatime,mode=1777  0       0
tmpfs    /run/user/1000                    tmpfs    defaults,size=16m,noatime,mode=1777  0       0
tmpfs    /home/pi/.cache/lxsession/LXDE-pi tmpfs    defaults,size=16m,noatime,mode=1777  0       0

保存: Ctrl + o リターン
終了: Ctrl + x

再起動

$ sudo reboot

確認

$ df -F tmpfs

rsyslog

停止

$ sudo nano /etc/rsyslog.conf

使わないモノをコメントアウト

###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
#auth,authpriv.*                        /var/log/auth.log
#*.*;auth,authpriv.none         -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
#kern.*                         -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
#mail.*                         -/var/log/mail.log
#user.*                         -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info                      -/var/log/mail.info
#mail.warn                      -/var/log/mail.warn
#mail.err                       /var/log/mail.err

#
# Some "catch-all" log files.
#
#*.=debug;\
#       auth,authpriv.none;\
#       news.none;mail.none     -/var/log/debug
#*.=info;*.=notice;*.=warn;\
#       auth,authpriv.none;\
#       cron,daemon.none;\
#       mail,news.none          -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
#*.emerg                                :omusrmsg:*

保存: Ctrl + o リターン
終了: Ctrl + x

再起動

$ sudo reboot

folder2ram

RAMディスク化

参考: GitHub - bobafetthotmail/folder2ram: mount those folders to ram without losing access to their counterpart on disk!

インストール

$ sudo wget -O /sbin/folder2ram https://raw.githubusercontent.com/bobafetthotmail/folder2ram/master/debian_package/sbin/folder2ram
$ sudo chmod +x /sbin/folder2ram
$ sudo folder2ram -configure
will now open the configuration file with your favourite text editor
write its name and press enter (nano, vim, gedit are the most common)
リターン
$ sudo nano /etc/folder2ram/folder2ram.conf

末尾に追記

tmpfs		/var/log
tmpfs		/var/tmp
tmpfs		/var/spool
tmpfs		/var/cache/samba
tmpfs		/var/lib/boinc-client/slots

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo folder2ram -mountall
$ sudo folder2ram -enablesystemd

再起動

$ sudo reboot

確認

$ df -F tmpfs

他の頻繁に書き込みされるlogを探す場合

$ cd /
$ sudo find . -path "./proc" -prune -o -path "./sys" -prune -o -type f -name "*.*" -mmin -5 -ls

journald

参考: man journald.conf の訳

$ sudo nano /etc/systemd/journald.conf

追記

Storage=volatile

保存: Ctrl + o > リターン
終了: Ctrl + x

再起動

$ sudo reboot

jbd2

jbd2/mmcblk0p2が1分毎に書き込みを行ってるように見える。
停止する方法が見当たらない。
5分毎の書き込みに変更することは可能な様子。

$ sudo nano /etc/fstab

変更 PARTUUIDは環境による

#PARTUUID=5ee44bf0-02  /               ext4    defaults,noatime  0       1
PARTUUID=5ee44bf0-02  /               ext4    defaults,noatime,commit=299  0       1

保存: Ctrl + o リターン
終了: Ctrl + x

再起動

$ sudo reboot

確認

$ sudo apt-get install iotop
$ cd /var/tmp
$ sudo iotop -obtaqqq > output.txt
しばらくしたら停止 Ctrl+C
$ sudo nano output.txt

終了: Ctrl + x

機器の具合

オーバークロック
オーバークロックが原因で計算中に異常が発生してるように見えるので「無し(900MHz)」にしてます。

GPU
対応していないようです。メモリ割り当てをデフォルト値「64」にしてます。

発熱

CPU温度の確認
$ sudo vcgencmd measure_temp

公式では「CPUのコア温度が 80度を超えると黄色の四角を画面の右上に表示します。85度を超えた場合は CPUの動作速度を 600MHzに強制的に落とします。動作させるアプリケーションが高負荷の場合にはヒートシンクを取り付けます。」だそうです。