粒度(粒度とも呼ばれる)とは、物質またはシステムが、比喩的に「顆粒」または「粒状」といった、区別可能な断片で構成されている度合いのことです。これは、大きな実体がどの程度細分化されているか、あるいは、区別できない小さな実体の集合が結合して、より大きく区別可能な実体となっている程度を指します。
粗粒度の材料またはシステムには、細粒度の材料またはシステム よりも少ない、より大きな個別のコンポーネントがあります。
粒度、粗さ、細かさという概念は相対的なものであり、システムやシステムの記述を比較する際に用いられます。粒度が細かくなる例としては、国連加盟国の一覧、それらの国に属するすべての州/省の一覧、それらの州に属するすべての都市の一覧などがあります。
システムの細粒度記述とは、システムの詳細な網羅的な低レベルモデルです。粗粒度記述とは、この細かい詳細の一部を平滑化または平均化したモデルです。細粒度記述を低解像度の粗粒度モデルに置き換えることを粗視化と呼びます。(例えば、熱力学第二法則を参照)
分子動力学における粗視化は、生物学的分子の原子レベルの記述を、細かい詳細を平均化または平滑化する低解像度の粗視化モデルに置き換えることです。
粗視化モデルは、脂質膜やタンパク質など、多くの生物学的プロセスにとって極めて重要な、より長い時間スケールおよび長さスケールのダイナミクスを調査するために開発されてきました。[1]これらの概念は、生物学的分子だけでなく、無機分子にも適用されます。
粗視化は、2原子間の振動モードなど、特定の自由度を除去したり、2原子を単一の粒子として表現したりすることがあります。システムを粗視化できる範囲は、再現したいダイナミクスと構造特性の精度によって制限されます。この現代的な研究分野はまだ初期段階にあり、生物学的モデリングでは一般的に用いられていますが、その背後にある解析理論は十分に理解されていません。
並列計算において、粒度とは通信量に対する計算量、つまり計算量と通信量の比率を意味します。 [2]
細粒度並列処理とは、個々のタスクがコードサイズと実行時間の点で比較的小さいことを意味します。データは1ワードまたは数ワードのメモリ単位でプロセッサ間で頻繁に転送されます。粗粒度並列処理はその逆で、データはより長い計算量の後に、まれにしか通信されません。
粒度が細かくなるほど、並列処理の可能性が高まり、速度が向上しますが、同期と通信のオーバーヘッドも大きくなります。[3]粒度分解器も存在し、正確な粒度レベルを決定するために理解することが重要です。[4]
最高の並列性能を達成するには、負荷と通信オーバーヘッドの最適なバランスを見つける必要があります。粒度が細かすぎると、通信オーバーヘッドの増加により性能が低下する可能性があります。一方、粒度が粗すぎると、負荷の不均衡により性能が低下する可能性があります。
再構成可能コンピューティングとスーパーコンピューティングにおいて、これらの用語はデータパス幅を指します。FPGAのコンフィギャラブル・ロジック・ブロック(CLB)のような約1ビット幅の処理要素の使用は、細粒度コンピューティングまたは細粒度再構成可能性と呼ばれます。一方、再構成可能データパス・アレイ( rDPA)のような、例えばマイクロプロセッサ CPUやデータストリーム駆動型データパス・ユニット(DPU)のような32ビット幅のリソースのような広いデータパスの使用は、粗粒度コンピューティングまたは粗粒度再構成可能性と呼ばれます。
データの粒度とは、データフィールドが細分化されるサイズを指します。例えば、郵便番号は、粗い粒度では単一のフィールドとして記録できます。
または、細かい粒度で複数のフィールドとして:
あるいはさらに細かい粒度で:
粒度を細かくすると、データの入力と保存にオーバーヘッドが生じます。これは、オブジェクト指向プログラミングパラダイムではオブジェクトとメソッドの数が増加し、手続き型プログラミングや並列コンピューティング環境ではサブルーチン呼び出しが増えるという形で現れます。しかし、必要に応じて各データフィールドを個別に処理することで、データ処理の柔軟性が向上するという利点もあります。粒度が高すぎることによって引き起こされるパフォーマンスの問題は、スケーラビリティが問題になる まで顕在化しない可能性があります。
データベース設計とデータウェアハウス設計において、データ粒度とは、テーブル内の行(レコードとも呼ばれる)を一意にする最小の列の組み合わせを指すこともあります。[5]