2012-04-23 12 views
1

並列プログラムと明確に定義されたハードウェアが与えられた場合、そのコンピューティングと通信の比率(CCR)を決定する方法。これは、プログラムの細かさとその後の分析を決定するためです。文学はこの用語を説明し、それをプログラムの細分性に関連付けるのに使用しますが、CCRが高いか低いかを見極めるために何かを見つけました。コンピューティングと通信の比率を決定する方法

答えて

1

計算と通信を比較するには、両方を共通の単位で測定する必要があります。一般的に私は時間の尺度を使用します。次に、プログラムが80:20の比率を持つことがわかります(計算:通信)

50:50の比率は通信の価値が高いと主張するかもしれませんが、これらの数字は実際には他の並列プログラムに匹敵する数字です。したがって、プログラムAとプログラムBが同じ問題を解決するが、Aの比率が80:20でBが70:30の場合、クロックの各ティックでAがBより多く計算するというステートメントを作成できます。彼らが同じ問題を解決していない場合、あなたはリンゴとオレンジを比較しているかもしれません。

一般的に計算は通信よりも優先されますが、やはりこれらの要素は相対的です。プログラムAとBが与えられれば、Bは(もっと)より多くの通信を行うことができるが、BはAより全体的に時間がかからない可能性がある - おそらくBはプロセス間でより大きいメッセージを送るのに費やし、Aはより大きいメッセージ。好きな場所で好きな番組を選んでください。

これらの問題について十分な経験がある場合は、通常、プログラムの構造を調べることで、比率についての知識を習得できますが、最終的には賢明な結論を導くために測定する必要があります。

+0

私は、この比率を得るために、どのパラメータを時間測定する必要があるか考えていました。あるいは、これにヒントを与えるカーネル機能はありますか? – marc

+0

これは、ツールが非常に便利な領域です。 Intel VTuneを使用しているMPIプログラムの場合、これまではAllinea OPTを使用していましたが、そこにはいくつかのオープンソースツールがあります。 MPIを使用している場合は、プログラムのタイミング部分に役立つMPEの装いの下に一連のルーチンがあるかもしれません。このようなツールを使用しないと、関心のある場所のコードにタイミングステートメントを挿入することで、自分のものを合理的に見積もることができます。 –

関連する問題