Hadoop / MapReduceパラダイムで実行するようにアルゴリズムを再設計しようとしています。ビッグデータプラットフォームのアルゴリズムの時間の複雑さを測定するための全体的なアプローチがあるかどうか疑問に思っていました。
簡単な例として、n(= 10億)の数の平均を取ることは、O(n)+ Cで実行できます(除算が一定時間演算であると仮定)。Map Reduceのこの大規模な並列化可能なアルゴリズムを壊すと、データをk個のノードに分割することで、時間の複雑さは単にO(n / k)+ C + C 'になります。ここで、C 'は、開始ジョブの計画時間のオーバーヘッドとして想定できます。関与するシャッフルはなく、レデューサーの仕事はほとんど取るに足らないことに注意してください。
データに対する反復ループを使用したアルゴリズムのより完全な分析に興味があり、重いシャッフルとリデューサー操作を含みます。可能であれば、I / O操作とデータのネットワーク転送を組み込みたいです。