Linux - статьи



              

Кластерные технологии и распределенные вычисления


С точки зрения ядра операционной системы поддержка кластеров и распределенных систем заключается в эффективной работе с сетью, что выражается во взаимодействии с сетевым процессором. Собственно, сейчас практически любой компьютер является многопроцессорным, кроме центрального процессора есть еще микропроцессоры видеоплат, дисков и сетевых плат. Каждый из процессоров работает со своей собственной операционной системой, которая должна корректно взаимодействовать с ядром Linux. Так, в первом драйвере для платы Gigabit Ethernet каждый полученный по сети пакет вызывал прерывание центрального процессора и, в результате, могла возникнуть ситуация, когда прерываний генерировалось так много, что процессор был полностью загружен их обработкой. В следующих версиях эта проблема была решена путем компоновки пакетов в большие блоки. Тем не менее, разработчикам программного обеспечения постоянно приходится помнить о «многопроцессорности» даже однопроцессорного компьютера.

Следует отметить, что сейчас пропускная способность специальных высокоскоростных компьютерных сетей сравнялась с производительностью внутренней шины. Объясняется это, видимо, тем, что системная шина должна работать синхронно, поэтому развивать их сложнее, чем последовательные технологии передачи, которые обычно работают асинхронно и поэтому развиваются быстрее. Если современные тенденции останутся без изменения, то может оказаться, что кластерные однопроцессорные решения будут даже эффективнее, чем многопроцессорный компьютер. Правда, SMP может возродиться на новом уровне - внутри одного кристалла. Такие решения уже начинают появляться; пример — архитектура HyperThreading, поддерживаемая в процессорах Xeon.

В ОС Linux имеется все необходимое для построения кластеров стандартными средствами — достаточно для нескольких компьютеров сделать единую файловую систему, например, с помощью NFS, и уже можно задействовать такие стандартные для Unix механизмы взаимодействия процессов, как сокеты и разделяемые файлы. Собственно для составления кластера нужно немного — балансировка нагрузки на узлы кластера с перемещением процессов с одного узла на другой. Именно этим и занимается свободно распространяемый пакет Beowulf, который пользуется большой популярностью у создателей кластеров.




Содержание  Назад  Вперед