memoryfolder

メモです

中古品のパーツを集めてマイニングリグを作ってみる

最近、気まぐれに中古のデスクトップPC(HP 500b MT)を5000円くらいで買いました。PCIeスロットが空いてたのでマイニングをしようと思います。

予算と目標

3~4万円の予算でETH 40MH/s程度ほしい(2017年現在で10000円/月相当。コインを選べばもう少し儲かるはず)

買ったHP 500b MTのスペック

Dual core pentium
2GB memory (+2GB additional)
500GB HDD
300W PSU
PCIe X16 *1,
PCIe X1 *1
http://h10032.www1.hp.com/ctg/Manual/c02511196

中古パーツ集め

GPU1個め

色々探した結果、値段とハッシュレートの効率が良さそうなRadeon r9 280Xを15000円くらいで買うことにしました。
ハッシュレートが一覧になってるページが少なくので苦労しましたが、参考程度にLitecoinのベンチマークを使いました。殆どのGPUが載ってるので比較に便利です。
Litecoin Mining GPU Reports

PSU

これはあまり中古品が出回ってなかったので、AmazonでCorsairのVS650を6000円くらいで買いました。HPについている300Wのものと合わせて1000W程度になるので、もう1つGPUを拡張できるはずです。
ebayとかに行けばno brandのやすいのが売ってますが、GPU用の端子が無かったりすぐ壊れたりと余計に高くなりそうなので辞めました。
http://www.corsair.com/en-gb/vs-seriestm-vs650-650-watt-power-supply-uk

GPUの消費電力はベンチマークがネットに乗ってます。
HIS Radeon R9-280 IceQ X2 OC review - Hardware setup | Power consumption


GPU2個め

PCIe X1しか残ってないので、expanderを買う必要があります。これはamazonで1000円位で買えます。
GPU2個目も、結局Radeon r9 280Xになりそうです。15000円。

ケーブル

Radeon r9 280Xは6pinと8pinの両方を電源として供給しないといけません(!)
買ったcorsairは6+2pinが2つの他にはSATAしか無く、HPのPSUSATAケーブルしかないので、残り2本分を変換する必要があります。
Amazonで2*SATA to 8-pin変換コネクタを買いました。2本で1000円くらい。

設置

取り敢えず、1個めのR9 280をPCIe X16につけました。ケースにちゃんと入ります。



仮想通貨マイニングを余ったPC(ubuntu)でやる

儲かるほどではないのはわかっていますが。
PCはthinkpad x121e、CPUはcore i3です。

GPUがないのでCPUで採掘できるbitzenyをやります。
基本的に以下に従いました。walletは後からでも大丈夫です。
(以下サイトで少し躓いたこと:
Linuxでwalletをダウンロードしても、agree + installだけでダウンロードはできないので注意。winかmacでやりましょう。というかwalletは後からでも大丈夫)

bombox.net

オックスフォードのpre-sessionalに行くべき?

結論として、研究やインターン等の予定が無ければ行くと良いと思います。働いている方も、退職時期を早めて休暇だと思って参加したら良いかも知れません。
ちなみに、オックスフォードのpre-sessional english courseのことで、基本的にオックスフォード大学院のオファーを持っている人のための6週間の英語コースですがLSEやUCLの人もいました。30万円します。
期間は8月初め〜9月中旬で、academic englishの勉強のほかに友人を作ったりオックスフォード市内について知ったりするのが目的となっています。
理系院生は少ない。大体マスター。アジア人はMBAとLLP率高くてみんな20後半~30代。

内容

Speaking, communication, writing, grammer, city toursが均等にある感じです。
毎日9-15時ですが、休み時間が合計2時間あって実質勉強時間は短い。

Speaking, communication

ペアや4−5人グループに別れてディスカッションなどします。テーマはニュースや"twitterとフリースピーチ"、"ドローンと戦争論"など文系よりで結構むずかしかった。
プレゼンの練習もあった。

writing, grammer

結構基礎的な文法からはじめて体系的に一通りなぞり、その後academic writingをやります。
文法って結構忘れてるので、思った以上に役に立った。ただ、理系はこんなにwriting skill要らないよって言われたw

city tours

オックスフォード市内や、バスで1時間位のところに行きます。遠足。

感想

英語に関して大きく変わった印象は無いけど、他分野の友人が(特にMBAとか)できたのはよかった。
クラスメイトが多いからスポーツとかもできた。値段の価値はあるとおもいます。

Q: settle inできた?

もう少し時間かかりそう。

ubuntuをプリンターサーバーにしてwifiに繋げないプリンターをネットワークプリンターにする

プリンターを買ったんですが、寮にWPA2のwifiしかなくて(eduroam)、仕方なく古いPCをサーバーにした時の方法です。

0: ubuntuにドライバーを入れる

ubuntu16.04なので、プリンターをつなぐだけで勝手にドライバーをインストールしてくれました。
ubuntu14とかだとコマンドラインからapt-getしないといけなかったのに(それでつまづいて時間かかった)、すごい便利。

1: Google Cloud Printをセットアップ

chromiumを入れて、settings→左上の三マーク→printers→printer settings→setup printer
から、先ほどubuntu上で認識したプリンターをGoogle cloud printに追加。

2: LAN上でプリンターをシェア

google cloud printだと、子機となるMacではchromeからの印刷しか受けてくれないので(windowsはドライバーがあるのに…)、
LAN上でシェアして家では使えるようにしました。
方法はこちら。

How to Share A Printer in Ubuntu 14.04 Trusty LTS | UbuntuHandbook


これで普通にネットワークプリンターを持ってるのと同じ環境にできましたー。

はてな記法のメモ

はてな記法

python
>|python|

||<

import numpy as np

ターミナル出力
>|cterm|
||<

fatal error: file not found

Cのコードをpythonで使う

extensionというそうです
Can we use C code in Python? - Stack Overflow
1. Extending Python with C or C++ — Python 2.7.13 documentation

Machello worldをやろうとすると結構詰まったので以下回避策のメモ。
まず、チュートリアルに従ってhello.cppとMakefileを作りました。

hello.cpp

char const* greet()
{
   return "hello, world";
}
 
#include <boost/python.hpp>
 
BOOST_PYTHON_MODULE(hello_ext)
{
    using namespace boost::python;
    def("greet", greet);
}

Makefile

# location of the Python header files
 
PYTHON_VERSION = 2.7
PYTHON_INCLUDE = /usr/include/python$(PYTHON_VERSION)
 
# location of the Boost Python include files and library
 
BOOST_INC = /usr/include
BOOST_LIB = /usr/lib
 
# compile mesh classes
TARGET = hello_ext
 
$(TARGET).so: $(TARGET).o
	g++ -shared -Wl,--export-dynamic $(TARGET).o -L$(BOOST_LIB) -lboost_python-$(PYTHON_VERSION) -L/usr/lib/python$(PYTHON_VERSION)/config -lpython$(PYTHON_VERSION) -o $(TARGET).so
 
$(TARGET).o: $(TARGET).C
	g++ -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c $(TARGET).C


これでmakeコマンドを打つも

hello.CPP:6:10: fatal error: 'boost/python.hpp' file not found

finderで探すとこれは僕の環境では/usr/local/includeにあったので、PYTHON_INCLUEをこのパスに変えることで回避。

/usr/local/include/boost/python/detail/wrap_python.hpp:50:11: fatal error: 'pyconfig.h' file not found

pyconfig.hを探すもなかなか見つからない。よくわからないところにあった。とりあえずPYTHON_INCLUDE2ということで指定。
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/include/python2.7

次は

unknown option: --export-dynamic

このオプション、macではとりあえず消しとくといいらしい(ちゃんとした解決法もあるけど)。

そして

library not found for -lboost_python-2.7

これがわからない。ちょっとg++こまんどの勉強してきます

cythonでDLL load failed: %1は有効なwin32アプリケーションではありません が出る

pyxモジュールをまずpython setup.py build_ext --inplaceして、pyximportでインポートしている。

しかし

DLL load failed: %1は有効なwin32アプリケーションではありません
となりインポートできない…

すべてのモジュールを32bitにしたはずなのに!と思ったが、違うところに原因があった。
実は64bitのwindowspython setup.py build_ext --inplaceしていたんだった。

これを、ちゃんと32bitのwinで行うと実行できた。よかった。