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