C/C++LinuxSystem ProgrammingLow-level
大規模データ解析システムの汎用化移植
専用ハードウェア用ソフトウェア(C言語/Linux)を、汎用PCサーバ(Ubuntu)へ移植・最適化。
特定用途向けの大規模データ解析システムの、ハードウェア依存脱却(非依存化)プロジェクトを担当しました。
専用ハードウェア上で動作していた従来の解析ソフトウェア(C言語、約4万行)を、コスト削減と拡張性向上のため、一般的なUbuntuサーバ(汎用PC)上で動作するように移植・改修を行いました。
担当範囲と技術的詳細
低レイヤーシステムプログラミング
専用ハードウェアに強く依存していた共有メモリ管理やスレッド制御(pthread)を、標準的なLinuxシステムコールやライブラリを用いて再実装しました。特に、高速なデータ処理が求められる環境下において、マルチスレッドによる並列処理の最適化と安定動作を実現しました。
- 言語: C言語 (一部C++)
- 環境: Linux (Ubuntu 14.10 64bit)
- 主要技術: pthread, Shared Memory, Socket Programming, PCAP Library
モジュール移植とビルド環境構築
大規模なソースコード(*.c 26ファイル程度、約4万行)の依存関係を整理し、汎用環境でのビルドプロセスを確立。コンパイルエラーやランタイムエラーを一つひとつ解析・修正し、コモディティハードウェア上での完全な動作を達成しました。
暗号化データ処理
独自形式で暗号化されたメッセージデータの復号化処理モジュールを移植し、後続の解析モジュールへ正しくデータを渡すパイプラインを構築しました。
成果
本プロジェクトにより、高価な専用ハードウェアに縛られることなく、汎用的なサーバで同等の解析機能を提供することが可能になりました。これにより、導入コストの大幅な削減と、柔軟な運用基盤の構築に貢献しました。