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
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境