Гранулярность (также называемая зернистостью ) — это степень, в которой материал или система состоит из различимых частей, «гранул» или «зерен» (метафорически). Она может относиться либо к степени, в которой более крупная сущность подразделена, либо к степени, в которой группы более мелких неразличимых сущностей объединились, чтобы стать более крупными различимыми сущностями.
Крупнозернистые материалы или системы имеют меньшее количество более крупных дискретных компонентов, чем мелкозернистые материалы или системы.
Концепции детализации , грубости и тонкости относительны и используются при сравнении систем или описании систем. Пример все более мелкой детализации: список стран в Организации Объединенных Наций , список всех штатов/провинций в этих странах, список всех городов в этих штатах и т. д.
Мелкозернистое описание системы — это подробная, исчерпывающая, низкоуровневая модель. Крупнозернистое описание — это модель, в которой некоторые из этих мелких деталей были сглажены или усреднены. Замена мелкозернистого описания крупнозернистой моделью с более низким разрешением называется крупнозернистой . (См. , например, второй закон термодинамики )
В молекулярной динамике грубая зернистость заключается в замене атомистического описания биологической молекулы крупнозернистой моделью с более низким разрешением, которая усредняет или сглаживает мелкие детали.
Крупнозернистые модели были разработаны для исследования динамики в более длительных временных и линейных масштабах, которые имеют решающее значение для многих биологических процессов, таких как липидные мембраны и белки. [1] Эти концепции применимы не только к биологическим молекулам, но и к неорганическим молекулам.
Крупнозернистость может удалить определенные степени свободы , такие как колебательные моды между двумя атомами, или представить два атома как одну частицу. Цели, к которым системы могут быть крупнозернистыми, просто ограничены точностью в динамике и структурных свойствах, которые требуется воспроизвести. Эта современная область исследований находится в зачаточном состоянии, и хотя она обычно используется в биологическом моделировании, аналитическая теория, лежащая в ее основе, плохо изучена.
В параллельных вычислениях гранулярность означает объем вычислений по отношению к коммуникации, т. е. отношение вычислений к объему коммуникации. [2]
Мелкозернистый параллелизм означает, что отдельные задачи относительно малы с точки зрения размера кода и времени выполнения. Данные часто передаются между процессорами в объеме одного или нескольких слов памяти. Крупнозернистый — наоборот: данные передаются нечасто, после больших объемов вычислений.
Чем мельче гранулярность, тем больше потенциал для параллелизма и, следовательно, ускорения, но тем больше накладные расходы на синхронизацию и связь. [3] Также существуют дезинтеграторы гранулярности, и их важно понимать, чтобы определить точный уровень гранулярности. [4]
Для достижения наилучшей параллельной производительности необходимо найти наилучший баланс между нагрузкой и коммуникационными издержками. Если гранулярность слишком мелкая, производительность может пострадать от возросших коммуникационных издержек. С другой стороны, если гранулярность слишком грубая, производительность может пострадать от дисбаланса нагрузки.
В реконфигурируемых вычислениях и суперкомпьютерах эти термины относятся к ширине пути данных. Использование элементов обработки шириной около одного бита, таких как конфигурируемые логические блоки (CLB) в FPGA , называется мелкозернистыми вычислениями или мелкозернистой реконфигурируемостью, тогда как использование широких путей данных, таких как, например, ресурсы шириной 32 бита, такие как микропроцессорные ЦП или управляемые потоком данных блоки пути данных ( DPU ), как в реконфигурируемом массиве путей данных ( rDPA ), называется крупнозернистыми вычислениями или крупнозернистой реконфигурируемостью.
Гранулярность данных относится к размеру , в котором поля данных подразделяются. Например, почтовый адрес может быть записан с грубой гранулярностью как одно поле:
или с мелкой детализацией , в виде нескольких полей:
или даже более мелкая детализация:
Более мелкая гранулярность имеет накладные расходы на ввод и хранение данных. Это проявляется в большем количестве объектов и методов в парадигме объектно-ориентированного программирования или в большем количестве вызовов подпрограмм для процедурного программирования и параллельных вычислительных сред. Однако она дает преимущества в гибкости обработки данных при обработке каждого поля данных в изоляции, если это необходимо. Проблема производительности, вызванная чрезмерной гранулярностью, может не проявиться, пока масштабируемость не станет проблемой.
В проектировании баз данных и хранилищ данных зернистость данных может также относиться к наименьшей комбинации столбцов в таблице, которая делает строки (также называемые записями) уникальными. [5]