Экологично ли ваше ПО? | Большие Идеи

・ Этика и репутация
Статья, опубликованная в журнале «Гарвард Бизнес Ревью Россия»

Экологично ли
ваше ПО?

Три этапа работы с софтом, которые помогут не навредить планете

Авторы: Адам Берден , Реджина Марука , Санджай Поддер , Шалабх Кумар Сингх

Экологично ли ваше ПО?
Иллюстрация: Ricardo Tomás

читайте также

Как я преобразовал GE и что понял в процессе

Как и зачем платить за твиты

Райан Холмс

Почему ваши данные не сходятся

Кевин Линдси

Корпоративное обучение не должно быть скучным

Дункан Уордл

Несомненно, программное обеспечение — становой хребет буквально любого умного решения, направленного на защиту окружающей среды. Оно критически важно, например, для мер по борьбе с исчезновением лесов и уменьшению вредных выбросов. Однако зачастую ПО неотделимо от процессов, приводящих к быстрому разрастанию углеродного следа. Более того, новые цифровые технологии, в изобилии появляющиеся в последнее время, начали усугублять многие экологические проблемы, на решение которых они направлены. Однако компании могут сделать ПО неотъемлемой частью своих программ по обеспечению экологической устойчивости — для этого нужно учитывать влияние углеродного следа на создание, разработку и использование программ, а также переосмыслить то, как работают центры хранения и обработки данных, предоставляющие облачные услуги.

Поясним. ПО само по себе не потребляет энергию и не выбрасывает вредных веществ. Проблема в способах разработки и использования ПО. Поскольку программы запускаются на цифровых устройствах, из-за своего разрастания они становятся все более зависимыми от возможностей машин, без которых не могут работать.

Например, блокчейн используется в рамках ряда самых продвинутых экологических начинаний, таких как микросети, позволяющие местнымжителям обмениваться экологически чистой энергией. В 2019 году исследователи из Кембриджского университета подсчитали, что для функционирования сети Bitcoin нужно больше энергии, чем для всей Швейцарии.

Все это относится и к самому сектору информационных и коммуникационных технологий. По некоторым прогнозам, к 2040 году его доля в мировых выбросах углекислого газа составит 14%, тогда как в 2007-м она не превышала 1,5%.

Сама разработка ПО может быть энергоемкой. Например, вот что мы узнали, когда обучали ИИ-модель различать сорта ирисов, представленных в небольшой общедоступной базе данных. Затратив всего 965 Дж энергии, наша модель научилась различать цветы разных сортов с точностью 96,17%. Увеличение точности на 1,74% потребовало 2,815 Дж. И наконец, постепенное улучшение по 0,08% за раз потребовало почти на 400% больше энергии, чем первый этап обучения.

Теперь рассмотрите тот же пример в контексте общей картины использования ИИ в мире. Обучение всего одной нейросетевой модели сегодня может привести к выбросу такого количества углекислого газа, которое пять автомобилей выбрасывают за весь свой жизненный цикл. И потребность крупных моделей по обучению ИИ в вычислительной мощности растет по экспоненте и удваивается за 3,4 месяца.

При этом нет особого смысла ограничивать использование ПО как средства для организации работы компаний, особенно в мире, преображенном COVID-19, в котором удаленная работа может стать нормой для многих. Отказ от инноваций, зависимых от ПО, тоже не был бы целесообразной реакцией.

Однако компании могут сделать ПО неотъемлемой частью своих экологических программ, если при оценке его производительности будут учитывать его энергетическую эффективность наравне с традиционными параметрами (например, функциональностью, безопасностью и доступностью), а также если включат экологичные практики и цели в список критериев для аттестации директоров по информационным технологиям.

В конце концов преимущества перевесили бы трудности. Ужесточение раннего контроля, необходимое для создания экологичного ПО, способствует повышению качества программных продуктов: они становятся более бережливыми, четкими и приспособленными для выполнения своих задач. Эти качества также компенсируют стоимость начальных капиталовложений. Экологичное ПО поможет крупным компаниям достичь целей в том, что касается окружающей среды, социальных вопросов, внутрикорпоративных отношений, а этот параметр оценки эффективности становится все более важным для акционеров. Наконец, наше исследование (которое вскоре будет опубликовано) показало, что при выборе работодателей новое поколение компьютерных инженеров все чаще принимает во внимание экологичность деятельности компаний. Приверженность зеленому ПО может быть очень привлекательным для молодых специалистов качеством.

Как компания может сделать свое ПО экологичным? Это трехэтапный процесс, который начинается с формулировки стратегии, устанавливающей ряд границ, затем затрагивает процесс разработки ПО и завершается повышением экологичности облачных служб. Ни одна из известных нам фирм не вовлечена в описанный нами процесс полностью и не пользуется всеми преимуществами зеленого ПО. Однако все больше организаций — в том числе Google, Volkswagen и Rainforest (компания, сама занимающаяся тестированием ПО) — используют некоторые из описанных ниже подходов и техник.

Сформулируйте стратегию, регламентирующую компромиссы и допускающую гибкость. Для этого ИТ-командам потребуется обдумывать, каким должен быть уровень толерантности к воздействию их ПО на окружающую среду. Почти всегда требуются компромиссы между коммерческими и экологическими целями, и разработчикам ПО нужно уметь определять, где проходит граница допустимого. Вспомните об ИИ-модели, которую мы обучали различать ирисы в базе данных. Решение о том, стоил ли последний шаг к повышению точности модели той энергии, которая для него потребовалась, требует четких указаний высшего руководства.

Не менее важно, чтобы эта стратегия призывала к гибкости, давала программистам возможность импровизировать и учиться методом проб и ошибок. Сектор экологичного ПО только формируется и пока, по большому счету, не вышел за пределы научных кругов. Руководств для программистов по этой дисциплине пока нет.

Наконец, эта широкая стратегия должна предлагать параметры, необходимые для измерения прогресса. Для новых версий уже существующего ПО их было бы нетрудно установить. Например, можно вычислять, насколько больше энергии потребляет новая версия, чем предыдущая. Но для нового ПО определить критерии гораздо труднее. На первых порах к ним можно отнести эффективность задействованной памяти, количество используемых данных, число (математических) операций с плавающей запятой в секунду.

Проведите ревизию и жизненного цикла разработки ПО. Начните с вопроса: «Каким может быть самое незначительное воздействие нашего приложения на окружающую среду?» Используйте предполагаемый ответ как ориентир на первых этапах цикла разработки. Возможно, это предположение изменится, когда вы лучше разберетесь в ситуации, но оно может существенно помочь вам в ходе оценки целесообразности или компромиссов между разными подходами. 

Затем выработайте рекомендации — например, какие алгоритмы, языки программирования, интерфейс программных приложений и библиотеки можно использовать, чтобы уменьшить выбросы углекислого газа. Потребуйте, чтобы разработчики постоянно искали альтернативы, которые могут оказаться более эффективными. Это позволит оценить совместимость программы с разнообразным энергосберегающим оборудованием вроде мобильных телефонов, автомобилей, систем управления домом.

На этапе внедрения ПО отслеживайте в реальном времени потребление энергии с помощью таких методов, как динамический анализ кода. Собранные вами данные будут критически важны для понимания разрыва между проектными решениями и фактическими энергетическими профилями.

Некоторые компании предлагают инструменты, помогающие построить энергоемкие системы повышенной эффективности. Например, Intel дает разработчикам инструменты и ресурсы для управления потреблением энергии. Созданный ею «Помощник разработчика ПО» позволяет программистам измерять энергетические показатели системы, когда приложение выполняет определенные задания, и определять ее эффективность.

Однако эти инструменты в дефиците. Оценивать компромиссы между выбросами углекислого газа и коммерческими целями, такими как гибкость, пока непросто.

Сделайте облако экологичным .Современные приложения почти всегда развертываются через облако. Но экспоненциальное разрастание облачных сервисов привело к быстрому расширению энергоемких центров обработки данных. Центры обработки данных потребляют порядка 2% мирового электричества, а к 2030 году они могут потреблять целых 8%.

Сегодня усилия по обеспечению экологичности центров по обработке данных направлены, главным образом, на оптимизацию оборудования (посредством борьбы с перегреванием серверов) и уменьшение выбросов углекислого газа (посредством более частого использования возобновляемых источников энергии). Эти методы способствуют решению проблемы, однако мероприятия по повышению экологичности ПО открывают новые возможности для экономии энергии.

Например, устранение дублирующих копий данных или сжатие данных способствует экономии энергии. Развертывание графических процессоров для управления рабочей нагрузкой на переднем крае (рядом с устройством или конечным пользователем) повысит эффективность за счет разделения крупных задач на мелкие и распределения их между несколькими процессорами. Это также позволит снизить расход энергии.

Кроме того, внедрение более экологичных серверных архитектур, вероятно, поможет уменьшить потребление энергии. Использование виртуальных серверов, например, позволило бы компаниям при необходимости увеличивать свои серверные мощности, сохраняя энергию в корпоративных центрах обработки данных. Виртуализация, в целом, способствует созданию множества имитационных сред (или выделенных ресурсов) на основе одной физической компьютерной системы. Другая возможность — контейнирование, позволяющее добиться еще более высоких результатов, по сравнению с виртуальными системами. Если внесерверная обработка данных разделяет приложения на уровне оборудования, контейнирование разделяет его на уровне операционных систем.

Новейшие архитектуры приложений — такие как внесерверная обработка данных и функция как услуга (FaaS) — позволяют еще жестче контролировать мощность систем и, опосредованно, энергопотребление. Внесерверная обработка данных, например, позволяет эффективно разделять инфраструктурные ресурсы, поскольку определенные функции системы выполняются только по запросу. А то, что плата за пользование такими системами взимается по времени, побуждает программистов повышать эффективность своего кода. Крупные поставщики услуг по внесерверной обработке данных вроде AWS Lambda и Microsoft Functions, например, создают условия для постоянного изменения масштабов деятельности, подразумевающее систему оплаты по мере пользования.

Потребность в зеленом программном обеспечении будет нарастать. Оно нужно в самых разных ситуациях, от экономии заряда мобильного телефона за счет более эффективного использования ресурсов и вычислительной мощности до оптимизации энергопотребления серверов центра облачной обработки данных. Если вы прямо сейчас включите ПО в зону охвата ваших экологических инициатив, ваша компания получит преимущество перед конкурентами в этой важной сфере.

Авторы благодарят Викранта Каулгуда (Vikrant Kaulgud) и Вибху Сауянья Шарма (Vibhu Saujanya Sharma) из Accenture Labs и Шрути Шалини (Shruti Shalini) и Дейва Лайта (Dave Light) из Accenture Research за вклад в эту статью.

Об авторах

Санджай Поддер (Sanjay Podder) — руководитель направления технологических инноваций на развивающихся рынках в Accenture.

Адам Берден (Adam Burden) — главный инженер по программному обеспечению в Accenture, руководитель практики Intelligent Software Engineering Services.

Шалабх Кумар Сингх (Shalabh Kumar Singh) — главный инженер в Accenture Research.

Реджина Марука (Regina Maruca) — старший редактор в Accenture Research.