金融工学分野では64GBでも全然足りないメモリ量

コンピュータで必要なメモリサイズは用途ごとに異なります。

ネット閲覧したりゲームやる程度だったら最低8GBでもいいと思います。しかし8GBだとページアウトが発生しストレージ(補助記憶)とメモリ(主記憶)との間でスラッシングが発生するためできれば16GB以上が理想です。

ゲームだったら16GB程度用意しておくべきです。ゲーム単体は8GBで動くように実装されているものが多いですが、OSのKernel用のメモリも必要ですし、ゲーム以外にも同時にブラウザ(タブが増えると大量にメモリを消費する)やDiscordやOBSを起動させている人もいるでしょう。

メモリを大量に積んだマシンの用途としては4K編集というのをよく見かけます。あとCADです。

動画の編集などはメモリに全部乗せたほうが圧倒的に早いですから大容量が好まれます。

ですが、他にも大量のメモリが必要な用途はあります。

例えば金融分析です。

金融分析というとおおざっぱですが、例えばボラティリティの実測値を元にボラティリティスマイルカーブをCalibrationする用途です。しかしこれは個人ではあまり馴染みのない法人向けのセルサイドでよく使われ、法人向けのバイサイドでは自己勘定売買でオプションを使ったボラティリティ・アービトラージで使われる用途です。金融工学の理論は主に法人向けのセルサイドで使われます。

他にはもっと個人に近い分野だと株を2銘柄組合せて相場の上下に関係なく利益を上げるペアを見つけるEngle-Granger二段階共和分検定などがあります。

まず金融分析は元となるデータが大量にあります。個人がよくやるような日次のデータを使った株の分析であっても1日で3,000銘柄程度の価格が必要です。株ならまだマシなほうで、社債や国債になると発行日と年限ごとに銘柄が次々に増えていくので膨大になります。さらには組成された金融派生商品(デリバティブ)になるとこれも組成ごとに別々の商品が存在します。

これらのデータは最低でも倍精度(できれば4倍8倍精度)の浮動小数点型で演算を行うため、これが10年分となるとものすごいデータサイズになります。データベース上にずっと置いておくだけならいいですが、時価やリスク量(Greeks)を計算するときにはデータベースから取り出してメモリ上に置いて計算しなければなりません。そうなるとメモリ量が大量に必要になります。

さてここからが金融分析のえぐいところです。金融分析では回帰分析をよく使います。最も単純なものではy=ax+bにあてはめる単回帰などです。さらに一般的に言えば確率解析は当然のこと最小二乗法分野も金融工学では頻繁に使います。

例えば個人向けの単純な株用途だとある株価をxとして、別の株価をyとして回帰分析をするとなると、組合せは株の銘柄数の2乗になります。

現在上場株式は3600銘柄もあります。これを全て分析したら1200万通り近くあります(組合せではなく順列の数だけ分析する)。そしてその分析の度に複数の統計量が発生するので、それをメモリ上に残すとなるとあっという間に数百GBになってしまいます。さらにそれを単回帰ではなくロバスト回帰にしたりすると行列演算の繰り返し(Iteration)で統計量の推定と検定を実施するため、サンプルサイズの2乗のオーダーでメモリ上に置くデータサイズが増えていきます。

このような用途だと大量のメモリ食いますから最初からできるだけ多くしておいたほうがいいです。とはいっても32GBや64GBでも全然足りないというのが本音です。どのくらいメモリがあれば満足に分析できるか計算してみたら16エクサバイトでした。ギガ、テラ、ペタ、エクサです。なぜそんなに必要かというと行列計算が必要だからです。金融分析でなくても、行列計算をする分野の方はメモリは最初から多くしておくことをおすすめします。