
トロント大学の研究者グループは、取引所でのアルゴリズム取引におけるイベント処理の効率を改善するためのFPGAの使用
に関する論文を発表しました。 このドキュメントの主なポイントに注目してください。
はじめに
現時点では、金融市場では高頻度取引が支配的です(さまざまな情報源によると、アルゴリズムを使用して行われた取引の割合は現在約70%です)。 したがって、アプリケーションの実行とトランザクションおよび市場で発生するイベントの処理のプロセスを合理化することの重要性は常に高まっています。競争は非常に激しく、マイクロ秒がすべてを決定します。
成功した戦略は、さまざまな取引所で関連資産の価格の微妙な違いでさえプレーすることで、クリエイターに利益をもたらすことができます-例えば、会社の株式がニューヨーク証券取引所で40.05ドルの価格で、トロントで-40.04ドルで取引されている場合、アルゴリズムはカナダで株式を購入し、米国で販売する必要があります。 ここで1ミリ秒を獲得するごとに、年間で数百万の利益が得られます。
アルゴリズム取引は、[stock = ABX、TSXask = 40.04、NYSEask = 40.05]のような金融ニュースと市場データがイベントとして扱われるイベント処理プラットフォームとしてモデル化でき、投資戦略は金融機関または投資家によってサブスクリプションの形で定式化されます: stock = ABX、TSXask 6 = NYSEask]または[stock = ABX、TSXask≤40.04]。
したがって、スケーラブルなイベント処理プラットフォームは、着信イベントに対応するすべての投資戦略(サブスクリプション)を効率的に見つけることができなければなりません。
FPGAを使用する理由
イベント処理プロセスの最もリソースを消費する側面は、マッチングです。 このアルゴリズムは、入力イベント(クォートフロー、市場イベント)とサブスクリプションのセット(つまり、投資戦略)を受け入れ、市場イベントとの一致が見つかったサブスクリプションを返します。
絶えず増加するスループットでネットワーク内のデータ処理の効率の要件に対処することは重要な作業です。 スループットの増加とともに、処理されるデータの量も増加しています。 同時に、そのような状況で機能するためにあまり高価でないシステムを構築することは、プロセッサを作成するための既存の技術が限界に近づいており、パフォーマンスが以前ほど速く成長していないという事実を考えると簡単ではありません。
一般的なサーバーは、市場データの処理を適切な速度で処理できないことがよくあります。 その結果、トレーダーと金融機関は、インフラストラクチャの生産性を向上させる必要に直面しています。 サーバーを追加購入するだけでなく、FPGAを使用することで、アルゴリズムの動作を高速化できます。
ソフト処理アプローチ
ハードウェア再構成機能により、FPGAは
ソフトマイクロプロセッサを使用できます。これにはいくつかの重要な利点があります。 これらはプログラミングが簡単であり(これは、Verilogの代わりにCを使用する可能性があるため、専門知識が必要です)、異なるFPGAに移植でき、カスタマイズでき、システムの他の部分と対話するためにも使用できます。
現在の例では、FPGAはNetFPGAネットワークカード上にあり、PCIインターフェイス上のDMAを介してホストマシンと通信します。 FPGAには、メモリとネットワークインターフェイスへの直接接続を提供するプログラム可能なピンがあります。通常のサーバーでは、ネットワークインターフェイスカードを介してのみ操作できます。
実験のために、NetFPGA上で実行されるソフトマイクロプロセッサとPCを操作するための基本オプションに基づいてソリューションが作成されました。どちらの実装も同じマッチング戦略を使用しました。
ソフトマイクロプロセッサの実装イベント処理アプリケーションのスループットを向上させるために、2つのシングルタスク、5ステップ、マルチスレッドプロセッサを備えたNetThreadsが選択されました。
シングルコアでは、4つの「鉄」スレッドからの命令がラウンドロビンと同様の方法で処理されます。これにより、メモリが必要な場合でも計算を実行できます。 このようなシステムは、イベント処理に適しています:ソフトプロセッサは、通常のコンピューターが発生しやすいオペレーティングシステムの過負荷に悩まされず、最小限のリソースで並行してパケットを受信および処理でき、より高い解像度のタイマーにもアクセスできます(多くの場合、タイムアウトを処理し、操作をスケジュールするためのPCよりも多く)。
NetThreadsにはオペレーティングシステムが存在しないため、パケットはメモリ内の文字バッファーと見なされ、プロセッサによって完全に受信された直後に利用可能になります(ユーザー空間のアプリケーションにコピーするステップはスキップされます)。
ハードウェアのみ
使用される2番目のアプローチでは、専用のハードウェアソリューションを作成しました。必要なすべてのステップは、市場イベントの解析と適切な戦略との一致に使用されるコンポーネントを含む「カスタム」鉄コンポーネントによって実行されます。 この方法では、最高のパフォーマンスを実現できますが、最も複雑です。

ハイブリッドアプローチ
動的戦略とイベント形式をサポートするためにハードウェアのみを使用することは複雑であるため、上記の2つのスキームの利点を組み合わせたハイブリッドアプローチを適用できます。 FPGAは通常低レベル言語でプログラムされるため、この方法で作成された通信プロトコルの作業をサポートするのはかなり困難です。
この問題は、ソフトマイクロプロセッサを起動して、ソフトウェアを使用したパケット処理を実装することで回避できます。 着信パケットを市場データと解析した後、ソフトマイクロプロセッサはそれらをハードウェアに転送します。

おわりに
PCをベースケース、ソフトアプローチ、ハードウェアのみ、およびハイブリッドメソッドとして使用するさまざまなアプローチを適用した結果、研究者は市場イベントを処理するための提示された各メソッドの有効性に関するデータを収集できました。

実験中の負荷は、分析された投資戦略の250から10万まで変化しました。 その結果、ハイブリッドアプローチを使用することで、他の方法よりも2桁以上先を行くことができました(結果を上の表に示します)。