Сколько процессорных циклов использует алгоритм? Может ли он использовать меньше, и если да, то как это сократит общее энергопотребление и выбросы парниковых газов? Портал ComputerWeekly рассказывает о первых инициативах недавно созданного фонда Green Software Foundation.

В рамках новой отраслевой инициативы Green Software Foundation, направленной на развитие ПО, обеспечивающего устойчивое развитие, выпущена первоначальная спецификация под названием Software Carbon Intensity (SCI) для измерения углеродного следа ПО. Общая цель SCI — предложить метод оценки программной системы по уровню выбросов углекислого газа.

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

«Разработчики стали ленивыми», — говорит Крис Ллойд-Джонс, руководитель отдела открытых технологий в Avanade, сервисной компании, образованной как совместное предприятие Microsoft и Accenture.

По его словам, на высоком уровне спецификация SCI основана на наборе основных принципов, например что рабочая нагрузка на процессор примерно коррелирует с тем, сколько электроэнергии использует часть кода. Другим простым измерением является стоимость использования IaaS. Приложение обойдется дороже, если для его работы требуется больше облачных ресурсов, например, более высокая загрузка CPU или использование GPU.

Полученные Avanade данные показывают, что существует прямая зависимость между стоимостью выполнения одной и той же рабочей нагрузки на разных экземплярах Microsoft Azure и ее углеродным следом. Например, выполнение рабочей нагрузки в течение 24 часов на экземпляре NC6v2 Azure GPU будет стоить 91 евро, при этом за 24 часа используется 3,3 кВт•ч электроэнергии. Но при выполнении той же нагрузки в течение того же времени на Azure Function будет использовано всего 0,8 кВт•ч электроэнергии, а эксплуатационные расходы составят 0,51 евро.

«Идея SCI заключается в том, что вы измеряете не общий углеродный след ПО, а получаете оценку для его снижения», — поясняет Ллойд-Джонс. По его словам, это позволит разработчикам найти способы сделать свой код более энергоэффективным.

Другим аспектом спецификации является помощь организациям в принятии решений по использованию более эффективного оборудования и мер, таких как выполнение рабочих нагрузок в периоды, когда спрос на электроэнергию меньше или когда бóльшая часть электроэнергии вырабатывается из «зеленых» источников. Операторам дата-центров еще только предстоит обеспечить измерение экологичного производства энергии в режиме реального времени, но Ллойд-Джонс считает, что это станет возможно уже через несколько лет, а облачные провайдеры предложат некоторые инструменты, помогающие разработчикам отслеживать энергопотребление. В качестве примера он приводит калькулятор устойчивости Microsoft, который позволяет запрашивать текущее состояние Azure, чтобы понять, когда наступает подходящее время для развертывания кода.

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