CPU負荷をかける際に素因数分解をさせたのでつい

CPU負荷をかける際に素因数分解をさせたのでつい

今日も今日とてAWSとイチャコラしております。
先日AWSのEC2上でのちょっとした検証のために「他への負荷はかけずにCPU負荷だけをかけた状態でテストしたい」という要望が出ました。
CPU負荷だけかけたいってことはCPUに難しげな計算をやらせればいいのかな、どうすればいいんだろう、いっそAWS上でビットコインでも掘るか?そうすればAWSの費用も稼げてあわよくば俺もビットコイン長者になれるかもしれない。乗るしかない、このビッグウェーブに!・・・いやいやいや、そうじゃない。
落ちつけ・・・心を平静にして考えるんだ・・・こんな時どうするか・・・
落ちつくんだ・・・『素数』を数えて落ちつくんだ・・・
ん・・・素数?
そうだ、素数、というか素因数分解があるじゃないか。(無理やり)

というわけでコストの高い計算として有名な素因数分解をさせれば良いじゃないか、と思いついたものの素因数分解をさせる事がメインではないのでお手軽にやりたいわけです。
やりたい事をお手軽にやるといえばRubyにそんな便利なメソッドとかあるんじゃね?とかユルく考えながら検索してみたところ・・・本当にありました
さすがやな、Rubyはん。

そんなわけでAWSのEC2インスタンスにログイン、irbを起動して以下のような感じで

require 'prime'
loop do (Random.rand(1000000000000000)+1).prime_division end

延々と素因数分解をし続けてもらうことで目的が達成できました。
一応説明すると、適当に桁数の大きな数字を選んでもらい、素因数分解させ、それを無限ループにブッ込んでるだけですね。
注意点としては0を素因数分解しようとするとZeroDivisionErrorが出てしまうので+1しておきましょう、くらいでしょうか。
今回はたまたまRubyを使いましたが、他の言語でも同じような感じでできるんじゃないでしょうか。

そうそう、CPUに負荷をかけるということはt2インスタンスの場合はバーストさせるということになるのでご注意ください

カバー写真はフリー写真素材ぱくたそから大川“日本一インターネットで顔写真が使われている”竜弥さん。

TAG

  • このエントリーをはてなブックマークに追加
やまま
スペシャリスト やまま yamama

マンガとアニメとゲームから錬成された宇宙大好きエンジニア。 軌道エレベーターで行ける静止軌道上のコロニーに住まいを移し、ゲームやってマンガ読んでアニメ見て爆睡、ゲームやってマンガ読んでアニメ見て爆睡、という生活を夢見ながら今日もコードを書き続けるのだった。