ミラクル・リナックスは、FPGAを使った文字列分割処理の高速化についての研究開発成果を公開した。glibcのstrtok関数の機能をFPGAで処理させ、CPUでの処理に比べて約10倍の処理速度が得られたという。
ミラクル・リナックスは2016年12月1日、FPGA(Field Programmable Gate Array)を使った文字列分割処理の高速化についての研究開発成果を公開した。
同社では、文字列分割処理を高速化する手法としてFPGAを研究。文字列分割をFPGAで並列処理するアルゴリズムと、ホストコンピュータとFPGAの間で効率よくデータを転送する、IoT機器やIoTゲートウェイからの大量データ処理を目的としたフレームワークを開発した。
具体的には、LinuxでC言語ライブラリとして一般に利用されているGNU C Library(glibc)のstrtok関数の機能を、CPUに代わってFPGAで処理させる。LinuxのコアライブラリでFPGAを利用することで、アプリケーションからのインタフェース(API)は互換性を保つことができ、既存のアプリケーションを改変せずにそのまま利用できることを利点に挙げる。
大量テキストログのバッチ処理を想定した同社のベンチマークテスト結果では、CPU(3.6GHz動作の第4世代インテルCore i7プロセッサー)での処理速度と比べて最大10倍高速化したという。FPGAによる処理では、処理対象データをFPGAに転送する際のオーバーヘッドがあることから、データ量が数KBまでの少量時はCPUよりも処理時間はかかるものの、データ量が1MB以上になれば、CPUでの処理に比べて高いパフォーマンスが得られるようになるようだ。
同社は同技術の開発を進める背景について、「Apache Hadoopでの文字列解析など、大量のデータを処理する場合にFPGAでの処理が有効だ。併せてCPU負荷を軽減できることから、処理自体だけでなく、システム全体の高速化が可能になる」と述べる。今後、今回開発した文字列分割処理だけでなく、文字列から数値への変換や、大文字/小文字変換、部分検索などの文字列処理、さらにデータの暗号化や圧縮/伸張処理をFPGAに載せる計画も示した。
Copyright © ITmedia, Inc. All Rights Reserved.