Skip to main content
QUICK REVIEW

[論文レビュー] An Approach for Parallel Genetic Algorithms in the Cloud using Software Containers

Pasquale Salza, Filomena Ferrucci|arXiv (Cornell University)|Jun 22, 2016
Evolutionary Algorithms and Applications被引用数 8
ひとこと要約

本論文は、Docker、CoreOS、RabbitMQを用いて、通信オーバーヘッドを最小限に抑え、スケーラブルでフェイルセーフな実行を可能にする、クラウドネイティブでコンテナ化された並列遺伝的アルゴリズム(GAs)のデプロイ手法を提案する。AMQPベースのメッセージ通信を介したグローバル並列化モデルを活用することで、動的スケーリングとDevOpsスタイルのCI/CDワークフローをサポートし、開発者が言語やインfraストラクチャの制約なしに、隔離され、ポータブルなコンテナ内でGAアプリケーションをデプロイできる。

ABSTRACT

Genetic Algorithms (GAs) are a powerful technique to address hard optimisation problems. However, scalability issues might prevent them from being applied to real-world problems. Exploiting parallel GAs in the cloud might be an affordable approach to get time efficient solutions that benefit of the appealing features of the cloud, such as scalability, reliability, fault-tolerance and cost-effectiveness. Nevertheless, distributed computation is very prone to cause considerable overhead for communication and making GAs distributed in an on-demand fashion is not trivial. Aiming to keep under control the communication overhead and support GAs developers in the construction and deployment of parallel GAs in the cloud, in this paper we propose an approach to distribute GAs using the global parallelisation model, exploiting software containers and their cloud orchestration. We also devised a conceptual workflow covering each cloud GAs distribution phase, from resources allocation to actual deployment and execution, in a DevOps fashion.

研究の動機と目的

  • クラウド環境における効率的な並列実行を可能にすることで、従来の遺伝的アルゴリズムのスケーラビリティ制限を克服すること。
  • 分散ファイルシステムの代わりにメッセージキューを採用することで、Hadoopベースのアプローチに内在する通信オーバーヘッドを低減すること。
  • ソフトウェアコンテナ(Docker)を用いて、ポータブルで言語に依存しない実行環境を提供すること。
  • DevOpsの実践をGA開発ライフサイクルに統合し、クラウドにおけるデプロイとオ케ストレーションを簡素化すること。
  • メッセージベースのタスク配布により、GA実行中にスレーブノードを動的かつオンデマンドでスケーリング可能にする仕組みを実現すること。

提案手法

  • マスタースレーブモデルを採用し、マスターノードがGAの進化を管理し、フィットネス評価をスレーブノードに委譲する。
  • RabbitMQをAMQP準拠のメッセージブローカーとして使用し、マスターノードとスレーブノードを非同期的に分離することで、スケーラブルなタスク配布を実現する。
  • Dockerを用いてGAアプリケーションおよび関連サービス(例:RabbitMQ)をコンテナ化し、ポータビリティと隔離性を確保する。
  • CoreOSを用いてコンテナデプロイとクラスターマネージメントをオーケストレーションし、スケジューリングにはfleet、サービスディスcoveryにはetcdを活用する。
  • Go言語でシステムを実装することで、コンテナ内での軽量かつ効率的な実行を実現し、クラウドネイティブツールとのシームレスな統合を可能にする。
  • Gitフック、CIサービス、Dockerレジストリ統合を用いたDevOpsパイプラインを設計し、テスト、イメージビルド、デプロイの自動化を実現する。

実験結果

リサーチクエスチョン

  • RQ1クラウド環境における分散GAsの通信オーバーヘッドは、どのようにして最小限に抑えることができるか?
  • RQ2コンテナ化とメッセージキューは、並列GAsのスケーラビリティとフェイルセーフ性をどの程度向上できるか?
  • RQ3DevOpsベースのワークフローは、クラウドにおける並列GAsの開発、デプロイ、実行をどの程度簡素化できるか?
  • RQ4DockerやRabbitMQといったクラウドネイティブ技術を用いて、グローバル並列化モデルを効果的に実装できるか?
  • RQ5メッセージベースのタスク配布を用いて、GA実行中にスレーブノードを動的かつスケーラブルに拡張することは、実現可能か?

主な発見

  • 提案手法は、Hadoopの分散ファイルシステムに代えてメッセージキューを採用することで、フィットネス評価におけるI/Oバッファのボトル neck を低減し、通信オーバーヘッドを低く抑える。
  • Dockerコンテナの使用により、言語に依存しない実行が可能となり、開発者は移植制約なしに既存のGA実装や外部ツールを活用できる。
  • RabbitMQのメッセージルーティング機能を活用することで、実行時におけるスレーブノードの動的スケーリングが可能となり、エラスティックなリソース割り当てが実現される。
  • DevOpsパイプラインにより、自動テスト、イメージビルド、デプロイが可能となり、手動設定の削減とデプロイの信頼性向上が達成される。
  • コンテナの隔離性とメッセージブローカーのレジリエンスを活用することで、フェイルセーフと高可用性が実現される。
  • 本システムは、現代のクラウドネイティブ技術を活用した、商業クラウド環境における並列GAsのデプロイに実用的で、スケーラブルかつ保守可能なアプローチを示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。