Облачные вычисления сейчас в моде. Компании всех размеров теперь запускают свое программное обеспечение в инфраструктурах (AWS, Azure, Google Cloud), которым они сдают в аренду вычислительные мощности. Все эти компании не имеют финансовой заинтересованности в экономии вашего компьютерного времени, потому что при этом они потеряют деньги. В этой статье я рассматриваю энергоэффективное программное обеспечение и объясните, почему экопрограммирование полезно и для вашего кошелька.

Свяжитесь с исследовательским агентством IntoTheMinds

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

Вот почему вам необходимо внимательно изучить языки программирования, которые вы используете, поскольку они влияют на скорость обработки ваших операций.

Язык программирования влияет на энергопотребление

Одно исследование устанавливает эталон энергоэффективности языков программирования. Его методология сравнивает использование памяти и скорость выполнения 10 языков программирования (Perl, Python, Ruby, PHP, C, C++, Lua, Tcl, JavaScript и Java). Этот подход имеет смысл, когда сравнение энергопотребления поскольку более быстрое выполнение и меньший объем памяти обычно приводят к снижению энергопотребления процессора.

энергоэффективность Срок выполнения
Сравнение разных языков программирования на основе исследований, приведенных в статье.

Чтобы дать вам представление о масштабах величин, я использовал исследование для расчета нескольких порядков величины.

Время исполнения

    • C в 100 раз быстрее Python
    • C++ в 6,7 раз быстрее Java
    • Perl в 10 раз быстрее Java

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

Использование памяти

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

    • C использует 1,5% памяти, потребляемой Python.
    • C++ потребляет 2% памяти, используемой Python.
    • Python и Perl используют 3% памяти, необходимой Java.

C — самый энергоэффективный язык

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


В некоторых случаях выполнение наиболее ресурсоемких операций в локальной инфраструктуре имеет больше смысла, чем в облаке.


Каковы практические последствия для бизнеса?

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

Экономия времени

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

энергоэффективность Финансовая выгода
Агентство маркетинговых исследований IntoTheMinds опросило 400 ИТ-менеджеров в 4 странах (Франция, Германия, Великобритания, США) об ожидаемых будущих улучшениях в решениях для обработки данных.

Если вы являетесь постоянным читателем этого блога, возможно, вы помните мои тесты ETL-решений. Одна из них, Анателла, отличилась выдающейся игрой. Мои тесты показали прирост производительности до х20. Анателла была запрограммирована с использованием языков низкого уровня. (C, C++ и Ассемблер). Ее конкуренты использовали, в частности, технологии, основанные на Java, и поэтому не могли идти в ногу со временем. Каждый ИТ-менеджер должен изучить языки, используемые для программирования приобретаемых ими коммерческих программных решений.

Пожалуйста, проконсультируйтесь с нами для исследования ИТ-рынка.

Финансовая выгода

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

энергоэффективность Финансовая выгода
IntoTheMinds опросил 400 ИТ-менеджеров о предпочтительной модели оплаты за решения для обработки данных.

В частности, что касается параллельных вычислений, закон Амдала показывает, что предельный выигрыш в скорости уменьшается с увеличением количества процессоров. Мобилизация все большего количества процессоров (и, следовательно, трата большего количества денег) в конечном итоге не станет финансово привлекательным решением для ваших самых тяжелых операций.

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



Опубликовано в разделе «Данные и ИТ», «Стратегия».