本日は少し趣向を変えて計算機環境の話をします。
計算機環境の準備
今日現在では計算機の処理速度は十分に高速なため、複雑な重回帰分析などでも市販の計算機でも一瞬で結果を導くことができるようになりました。とはいえデータの種類や演算の内容、分析の方法によっては、大量のメモリや、ストレージ容量が必要になることがあります。このようなとき、会社や大学などで支給されるような一般の PC では処理が事実上不可能な場合があります。そこでデータ分析用に計算機環境を整える必要があります。
クラウド
Amazon EMR の Hadoop クラスタはプリセットでほとんどのことが準備されているため、手軽かつ強力な環境です。
Amazon EMR
https://aws.amazon.com/jp/elasticmapreduce/
また自前で Hadoop インフラなどを構築することができ、なおかつ GNU/Linux 上で柔軟に作業をしたいという場合であれば Amazon EC2 上に環境を用意したほうが良い場合もあります。筆者も Amazon EC2 を利用しています。
Amazon EC2
http://aws.amazon.com/jp/ec2/
データを蓄積するストレージとしては Amazon S3 が便利です。 Hadoop でデータを分析する際は中間領域が必要になるので、その分も考慮しなければなりません。
Amazon S3
http://aws.amazon.com/jp/s3/
AWS などの従量課金型クラウドを利用する長所としては、使ったら使ったぶんだけ費用を負担すれば良く、自前で計算機を維持するコストがかからないことでしょう。短所としてはその分、コスト計画の見積りが若干難しくなりがちな点です。
クラスタ計算機
すべてをクラウドで処理するのが必ずしも効率的かつコストパフォーマンスに優れるとは限りません。場合によっては物理計算機を自前で揃えてクラスタを組んだほうが良い場合もあるでしょう。
長所としては、ストレージ上に大量のデータを長期間保存するが参照頻度が低いといった場合や、データの通信量などが多くてクラウドに向かないといった用途でコストパフォーマンスが優れる場合があります。短所は、計算機を自前で管理する必要がある点でしょう。
最近の理系の研究室では 1TB 程度のメモリを搭載したクラスタ計算機も珍しくなくなりました。これに Hadoop や分散ファイルシステムを装備するとクラウドとはまた違った観点で様々なことができるようになります。
高性能計算機
処理の内容によってはコア数を増やしても分散せず 1 コアまたは 1 ユニットで負荷の高い計算をする必要に迫られることもあるでしょう。
執筆時点の現在であれば Intel Core i7 プロセッサ でも 3 万円台の価格で高性能なものが購入できますし、市販のワークステーションであればメモリを 128GB から 256GB 搭載することができます。また一般向けの PC でも昨今では 16GB から 32GB 程度のメモリを積むのは現実的な価格で可能ですし、計算機を一式揃えてもせいぜい 20 万円程度に収まることがほとんどです。
1 コアあるいは 1 ユニットで集中的な処理をする場合は高性能な計算機があると良いでしょう。もちろんそれでも処理しきれず計算機が落ちてしまうような処理をするのであればクラスタ計算機などで分散処理をすることを検討するべきです。
スキャナとプリンタ
計算機と直接関係はありませんが、資料を取り込んでデジタルデータにするためのスキャナと、データを出力するためのプリンタもあると良いでしょう。
とくに matplotlib は出版品質の図を多くのフォーマットで提供することで知られていますから Web だけでなくプリンタとの親和性も抜群です。
また、理系の研究室などで、紙にノートをまとめるなどして知財管理をおこなっている場合、演算結果を出力してノートに貼るプリンタはほぼ必須となります。
まとめ
というわけで今回は計算機環境について書き連ねてみました。計算処理をどこでおこなうかは向き不向きがありますので、用途に応じてうまく使い分けるようにしたいところです。