High Performance Computing

先日のCpdeZineの記事 新たな関数型言語「F#」 (1/4):CodeZine(コードジン) より。
自分が気になったところだけまとめると、これからはHPCが必要とされてくる時代となるので、並列計算がしやすい関数型言語は発展できる可能性が高い、というもの。数十年前から言われ続けて、ずっと実現してこなかった話しですが、やはり説得力はあります。

というわけで、どういう風に必要とされているのか調べてみました。
http://derivative.fixstars.com/hpc.html

複雑な行使条件を持つデリバティブや仕組債の場合、解析的に解を求めることができないため、Monte Carlo 法を用いたシミュレーションによってプライシングを行います。シミュレーションによる解を収束させるためには、十分な回数のシミュレーションを行う必要があります。 Monte Carlo シミュレーションに必要な乱数や金利パスの生成は非常に計算負荷が大きく、高い計算能力が必要とされます。多くの金融機関で採用されている LMM (Libor Market Model) は、特に計算負荷が高い金利モデルです。

安直にいえば、モンテカルロ・シミュレーションに莫大な計算量が必要な為、HPCに対してニーズが発生しているということのようです。実際、上記リンク先の企業の製品のウリは、quantLibというオープンソースソフトウェアに改良を加え、速さ自体を向上&マルチコアで実行可能にした、というところのようです。
モンテカルロ・シミュレーションの場合、個々の試行が独立しているので、並列化も行いやすいのでしょう。

というわけで、自分としては、F#でモンテカルロ・シミューションをやってみたいですね。