過去のページ Page 30 of 38 未来のページ

Github Longest Streak

切らないことを目標としていた感じだったけれど, 昨日切れてしまった.

また伸ばしていかないと.

追記

何故か繋がった.

よくわかんないけど, ラッキーだと思って切れないようにします.

KMC のOB 会でhttp://kmc-jp.github.io/nona7-ob-slide/ しゃべったほげ.

KMC にCloudStack が立ちました.

なんかいろいろあってCloudStack が立ちました.

最初はOpenStack を立てようとしてたのですが, なんかうまくいかなくてやめました.

CloudStack はWeb からぽちぽちと設定したらいい感じにできたので楽でした.

KMC は学年, 所属にかかわらず入会することができます. 詳しくはこちら.

KMC はマシンをくださる企業も募集しております. 釣りタイトルっぽいと思ったけど全然事実だ.

AWS, 無料枠を使いきってしまってからは長らく放置していたが、最近スポットインスタンスの存在を知って感動した。

スポットインスタンス

スポットインスタンス とは、 Amazon の使われていない計算資源をオークション形式で利用できるシステムだ。

オンデマンドインスタンス と比べると、かなりの安さで同じマシンを利用できる。

無料枠で利用できた、t1.micro インスタンスは、オンデマンドインスタンスなら $0.020 / 1時間 であるが、スポットインスタンスなら、だいたい$0.003 / 1時間 程度で借りることができる。 一月で300円もかからない計算になる。

もちろん安いのには理由がある。 スポットインスタンスは、起動リクエスト時に、「1時間あたりこの値段までなら出せる」という価格を提示して、その値よりも"実際の値段" が安ければ利用できる という風になっている。

この"実際の値段" というのは、需要によって決定されるので、みんなが使うと値段が上るし、使っていなければ下る。

そして、もしインスタンスの起動中に、実際の値段が上って、自分が提示した価格を上まわった時、自分のインスタンスは停止させられる。

このようにいきなり停止されてしまう可能性があるかわりにとても安くなっている。

安定性を求められるものには使えないが、大きな計算資源の必要なことがしたい時などにはこのインスタンスは便利だ。

c3.8xlarge という仮想32コアのすごいマシンがあるが、このマシンはオンデマンドだと$1.680 / 1時間もする。10時間ぐらいで計算が終わるとすると17ドルぐらい。ちょっと高いけどまあ出せなくはない額だ。20時間になると学生が遊びに使うにはちょっとキツい……

しかしスポットインスタンスなら、だいたい$0.25 / 1時間 程度で借りることができる! 20時間まわしても5ドルしかかからない! 余裕!

わたし

最近2048AI を強くするために、大量のプレイアウトやモンテカルロなどで大きな計算資源が必要であった。 うちの自慢のCloudStack(KMC で立てました。主に私が管理してるのでなんでもしほうだい) でも、3GHz * 4コアのインスタンスが作れる上限だが、そのインスタンス一つで全計算ノードの20% を食い尽してしまう。

2048AI のためにオンデマンドインスタンスで数千円溶かせるほどではないのでどうしようかなーと思っていたら、スポットインスタンスの存在を教えてもらって感動した。

うちのCloudStack の全ノードが束になってようやくちょっと敵わない程度のインスタンスが、全ノードの平常時電気代ちょっとで借りることができる。

スポットインスタンスを使えばかなり安く強大な計算資源が手に入るので、これからは計算資源が少し足りない時は力技でなんとかできそうだと思った。夢が広がる。

memo

インスタンスの起動時に自分が指定するのは、あくまで「出せる上限」なので、実際にかかる金額は"実際の値段" しかかからない。

値段のグラフを見ていると、時々どこかの企業が何かをしてるのか、大きく変動していたりしていておもしろい。

このスライド はAmazon の人のスライドらしいが、これの55ページからがスポットインスタンスの説明になっている。 また、72ページからが、スポットインスタンスの入札の戦略になっていて興味深かった。

2048 AI コンテストの第二回があった。

今回の私の出場した際のソースコードはこれ です。

今回は三位でした。

前回の時と比べて、かなりの高速化を図れたので、10手読みまで行くことが可能となった(前回は6手読みだった)。

Grid を前回はstd::array<std::array<int, 4>, 4> だったが、64bit int 一つで16個のGrid を表わすようにして、色々な操作を謎のbit 演算にすることでかなり高速になった。

謎のbit 演算が沢山でてきて辛かったので、Google Test も導入した。

10手まで読めるようになったことによって、4096 まで作れるようになった。

まだ100〜1000回に一回程度しか8192 を作ってくれない。

GA も実装しないと。

ref

過去のページ Page 30 of 38 未来のページ