КАК УТВЕРЖДАЮТ некоторые аналитики, обычно используются лишь 1-5% от ресурсов ПК. Большую часть времени они выключены, а даже если включены, то простаивают. Компании покупают все новые и новые серверы для решения своих задач, хотя имеющихся у них вычислительных мощностей, как правило, вполне достаточно — нужно их только правильно оптимизировать.
В некоторых случаях можно восполнять недостаток вычислительных ресурсов с помощью сети, объединяющей рабочие станции. Такая структура позволяет максимально полно задействовать пользовательские компьютеры для выполнения распределенных вычислений. Подобные технологии называются метакомпьютингом (GRID-системами).
Собственно говоря, технологии распределенных вычислений разрабатывались для Internet и продолжают традиции архитектуры клиент-сервер. Только в них сервер не выполняет основные вычисления, а раздает задания клиентским машинам и аккумулирует результаты. Основная масса вычислений выполняется на стороне клиента специальной программой, которая активизируется в периоды минимальной загрузки процессора. Таким образом, пользователь даже не замечает, что на его компьютере производятся дополнительные вычисления.
С помощью подобной сети парк простаивающих рабочих станций можно превратить в мощный суперкомпьютер. Он будет использоваться вместо мощных серверов, решая, например, в нерабочее время сложные вычислительные задачи.
Технология метакомпьютинга развивается уже несколько лет. Сегодня уже в рамках нескольких проектов сложные задачи решаются на подключенных к Internet персональных компьютерах. В качестве примера можно указать проект SETI@home, нацеленный на поиск внеземных цивилизаций: записи радиотелескопов анализируются в поиске последовательностей сигналов искусственного происхождения. Аналогичный проект Distributed.net подразумевает дешифровку сообщений, закодированных известными криптоалгоритмами.
Пользователи принимают участие в этих проектах сугубо добровольно. Скачав из Internet специальную клиентскую программу, они подключаются к общемировой вычислительной системе.
Другая группа проектов — создание полностью контролируемых метакомпьютеров. Например, в институте CERN строится мощный распределенный метакомпьютер, который будет обрабатывать данные с большого адронного коллайдера (ускорителя элементарных частиц). Ожидаемый объем таких данных составит несколько петабайт в год. Двухуровневый метакомпьютер будет включать в себя свыше 30 суперкомпьютерных центров в Европе, а ввести его в строй планируется в 2006—2007 году.
Впрочем, компании могут и сами строить корпоративные метакомпьютеры для внутренних нужд, используя вычислительные резервы рабочих станций. Существуют инструменты, которые упрощают создание новых распределенных приложений для метакомпьютеров. Это набор языков программирования для разработки программ, обеспечивающих параллельные вычисления и управление ресурсами метакомпьютера.
Наиболее популярным из таких инструментов является Globus Toolkit (www.globus.org), исходные коды которого распространяются бесплатно. С его помощью можно создать серверную и клиентскую части распределенного приложения для различных аппаратно-программных платформ. Действует проект стандартизации GRID-приложений на основе спецификации Web-сервисов.
Технологию метакомпьютинга поддержали крупные компании, такие как IBM и Oracle. Они планируют предоставлять сервисы и разрабатывать системы с использованием распределенных вычислений. При участии этих фирм должны появиться приложения, которые можно будет применять не только в глобальных, но и во внутрикорпоративных сетях.
Хотя технология распределенных вычислений развивается достаточно бурно, ряд проблем сдерживают ее развитие. Так, для создания метакомпьютера нужно иметь систему управления ресурсами множества разрозненных компьютеров. Причем заранее неизвестно, сколько таких устройств войдет в состав GRID-сети: в процессе работы к ней могут подключаться новые компьютеры или отключаться старые. Поэтому нужно предусмотреть механизмы, обеспечивающие, с одной стороны, сохранность данных, а с другой — их непрерывную эффективную обработку.
Еще одной проблемой метакомпьютинга является обеспечение безопасности. Для корпоративных приложений нужно предусмотреть серьезные меры защиты, предотвращающие несанкционированное использование ресурсов метакомпьютера и нарушение правил доступа к информации. Пока GRID-технологии развиваются преимущественно в направлении большей эффективности управления ресурсами, а об организации защиты разработчики только начинают задумываться.
Следует отметить, что далеко не все приложения допускают «расслоение» вычислений на несколько параллельных потоков. К счастью, наиболее ресурсоемкие вычисления обычно требуют примерно одинаковых операций над большими массивами данных. Кроме того, результаты вычислений с одним набором значений не сильно влияют на остальные вычисления.
Так, большинство задач типа data mining (выявление скрытых закономерностей) и других аналитических приложений вполне можно разделить на несколько операций, осуществляемых на основе ограниченной выборки данных. Типичным примером является определение попарных расстояний для решения задачи кластеризации. Аналогичные задачи присущи логистике, бухучету, финансовому анализу, телекоммуникационной и другим бизнес-областям.
Такие возможности, как распределенное начисление зарплаты сотрудникам и определение оптимального маршрута доставки грузов, не очень интересны небольшим фирмам. Зато анализ клиентской базы методами data mining и подготовка статистической отчетности будут полезны любой компании. Остается лишь надеяться, что со временем технология метакомпьютинга станет доступной для массового бизнес-пользователя.