Ученые Национального исследовательского ядерного университета «МИФИ» разработали алгоритм, который позволяет объединять обычные смартфоны в единую вычислительную систему. Такой подход может стать основой для создания недорогих вычислительных кластеров, способных выполнять сложные научные расчеты без дорогостоящих серверов. В эпоху искусственного интеллекта и больших данных потребность в вычислительных мощностях постоянно растет.
Для обработки больших объемов информации обычно требуются мощные серверы и суперкомпьютеры, однако их покупка и обслуживание обходятся дорого. Исследователи «МИФИ» предложили использовать ресурс, который уже есть практически у каждого человека, а именно вычислительные возможности мобильных устройств.
Идея объединения смартфонов в единую систему появилась не сегодня. Однако на практике такие решения сталкиваются с серьезной проблемой: устройства сильно отличаются друг от друга по производительности. Современный флагманский смартфон может быть в 10 или 12 раз мощнее бюджетной модели. Кроме того, при длительной работе мощные устройства нагреваются и автоматически снижают частоту работы процессора. Этот процесс называется троттлингом. Он защищает телефон от перегрева, но одновременно может снизить его производительность на 60 процентов. Из-за этого невозможно просто разделить большую задачу на одинаковые части и отправить их разным смартфонам. Более быстрые устройства будут вынуждены ждать более медленные, а общая производительность системы окажется значительно ниже потенциальной.
Исследователи «МИФИ» разработали алгоритм, который решает эту проблему за счет постоянного контроля состояния каждого устройства. Перед началом работы система оценивает вычислительную мощность смартфонов по количеству ядер процессора и их рабочей частоте. Затем во время расчетов устройства передают управляющему узлу информацию о своей температуре, текущей частоте процессора и загрузке. На основе этих данных система в реальном времени перераспределяет задачи. Если смартфон начинает перегреваться, ему автоматически передается меньше вычислений. После охлаждения нагрузка снова увеличивается. Такой принцип позволяет эффективнее использовать возможности всех устройств и не допускать длительного перегрева.
Еще одна особенность разработки заключается в защите от отключений. В беспроводной сети отдельные смартфоны могут в любой момент выйти из системы, потерять связь или разрядиться. В этом случае незавершенные части задачи возвращаются в общую очередь и автоматически распределяются между оставшимися устройствами. Эффективность алгоритма ученые проверили на задаче численного интегрирования. Это математический метод, который позволяет вычислять значения сложных функций и широко применяется в научных расчетах. Тестовая задача требовала около миллиарда вычислительных операций.
Разработанный метод GRID показал, что при длительных расчетах время выполнения задачи удалось сократить в 2,5 раза по сравнению с традиционным способом распределения нагрузки. При этом нагрузка между устройствами распределялась более равномерно, что помогало избежать ситуации, когда одни смартфоны простаивают, а другие перегреваются. Пока разработка существует в виде прототипа, однако ученые видят несколько возможных направлений ее применения. В перспективе подобные системы могут использоваться научными коллективами и образовательными организациями, которым нужны дополнительные вычислительные ресурсы, но нет возможности приобретать дорогостоящее серверное оборудование.
Технология может оказаться полезной и в условиях, когда отсутствует стабильный доступ к интернету и централизованным вычислительным системам. Например, распределенные мобильные кластеры потенциально можно применять в полевых условиях и при работе экстренных служб. Следующим этапом исследований станет повышение энергоэффективности системы и адаптация алгоритма к реальным сценариям использования. Если технологию удастся масштабировать, вычислительный кластер можно будет собрать не из дорогих серверов, а из доступных мобильных устройств, превратив множество обычных смартфонов в единую распределенную вычислительную систему.