Re: Энергоэффективность алгоритмов
От: Sharov Россия  
Дата: 24.02.25 09:27
Оценка: 1 (1)
Здравствуйте, Философ, Вы писали:

Ф>А есть ли способ измерить потребление электричества какой-нибудь функцией?

Ф>Я тут сейчас гуглил новости про то, что датацентры города обогревают — вот, задумался: может уже пора делать профилировщики энергопотребления? Иногда нужно не быстрее: выбор среди алгоритмов может быть не по принципу кто быстрее и/или меньше памяти сожрёт, а по жоритости — скорость может быть во всех случаях приемлимой. Это особенно актуально для носимых гаджетов и ноутбуков.
Ф>Это также может быть актуально для датацентров. В конце-концов, это может быть актуально для дома, когда нужно обеспечить поток тёплого воздуха из корпуса (чтоб владелец компа замёрзшие пальцы отогрел). Кстати, я когда-то так делал — запускал furmak чтобы руки погреть.
Ф>Собственно сабж: для интеловского или амдешного железа есть способ замерить потреблённое электричество?

Кажется, сущ. расширения для всяческих ide на эту тему. Как минимум надо смотреть что-то вроде https://github.com/mlco2/codecarbon

  Ответ DeepSeek на эту тему:
If you're looking to analyze and improve the energy efficiency of your code, there are several tools and extensions available for Integrated Development Environments (IDEs) that can help you measure and optimize energy consumption. Here are some notable ones:

### 1. **EcoCode (IntelliJ IDEA, Android Studio)**
— **Description**: EcoCode is a plugin for IntelliJ IDEA and Android Studio that helps developers write more energy-efficient code. It provides real-time feedback and suggestions to reduce energy consumption.
— **Features**:
— Detects energy-inefficient code patterns.
— Offers suggestions for optimization.
— Integrates with the IDE for seamless usage.
— **Website**: [EcoCode GitHub](https://github.com/green-code-initiative/ecoCode)

### 2. **GreenMiner (Eclipse)**
— **Description**: GreenMiner is a tool that measures the energy consumption of Android applications. It can be integrated with Eclipse to provide insights into how different parts of your code affect energy usage.
— **Features**:
— Measures energy consumption of Android apps.
— Provides detailed reports on energy usage.
— Helps identify energy-hungry code segments.
— **Website**: [GreenMiner GitHub](https://github.com/GreenMiner/GreenMiner)

### 3. **JouleMeter (Visual Studio)**
— **Description**: JouleMeter is a tool developed by Microsoft Research that measures the energy consumption of applications. While it's not a direct IDE plugin, it can be used alongside Visual Studio to profile energy usage.
— **Features**:
— Measures energy consumption of running applications.
— Provides detailed energy usage reports.
— Can be used to profile energy usage during development.
— **Website**: [JouleMeter](https://github.com/microsoft/joulemeter)

### 4. **Energy Profiler (Android Studio)**
— **Description**: The Energy Profiler in Android Studio helps you understand the energy impact of your app on a device's battery. It provides detailed insights into how your app uses system resources.
— **Features**:
— Tracks energy usage in real-time.
— Identifies energy-intensive operations.
— Integrates with Android Studio for easy access.
— **Website**: [Android Studio Energy Profiler](https://developer.android.com/studio/profile/energy-profiler)

### 5. **PowerAPI (Eclipse, IntelliJ IDEA)**
— **Description**: PowerAPI is a library that can be integrated into your development environment to monitor the energy consumption of your applications. It supports multiple programming languages and platforms.
— **Features**:
— Monitors energy consumption in real-time.
— Provides detailed energy usage data.
— Can be integrated with various IDEs.
— **Website**: [PowerAPI GitHub](https://github.com/powerapi-ng/powerapi)

### 6. **CodeCarbon (Jupyter Notebook, VS Code)**
— **Description**: CodeCarbon is a tool that estimates the carbon emissions of your code. It can be integrated with Jupyter Notebooks and VS Code to provide insights into the environmental impact of your code.
— **Features**:
— Estimates carbon emissions based on energy consumption.
— Provides actionable insights to reduce carbon footprint.
— Integrates with popular development environments.
— **Website**: [CodeCarbon GitHub](https://github.com/mlco2/codecarbon)

### 7. **EcoAndroid (Android Studio)**
— **Description**: EcoAndroid is a plugin for Android Studio that helps developers optimize their Android applications for energy efficiency. It provides real-time feedback and suggestions for improving energy usage.
— **Features**:
— Detects energy-inefficient code patterns.
— Offers optimization suggestions.
— Integrates with Android Studio.
— **Website**: [EcoAndroid GitHub](https://github.com/green-code-initiative/ecoCode-android)

### 8. **Greenify (Eclipse)**
— **Description**: Greenify is a plugin for Eclipse that helps developers identify and optimize energy-hungry code segments. It provides detailed reports and suggestions for improving energy efficiency.
— **Features**:
— Identifies energy-intensive code segments.
— Provides optimization suggestions.
— Integrates with Eclipse.
— **Website**: [Greenify GitHub](https://github.com/greenify/greenify)

These tools and extensions can help you gain insights into the energy consumption of your code and provide actionable suggestions to improve its energy efficiency. Integrating these tools into your development workflow can lead to more sustainable and efficient software development practices.
Кодом людям нужно помогать!
Re[4]: Энергоэффективность алгоритмов
От: alpha21264 СССР  
Дата: 24.02.25 11:02
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

Ф>>2) Операции с памятью могут сильно напрягать кэш, который сам по себе неплохой обогреватель. Может быть энергетически выгоднее каждый раз рассчитывать какое-либо значение, чем регулярно перезагружать/инвалидировать кэш-линейки для его поиска в памяти.


SVZ>Хочешь убрать кеш? Боюсь время отклика софта будет таким, что пользователи взвоют.


Не обязательно убирать кэш. Можно его просто более рационально использовать.
Вот например я пишу свой собственный видео-редактор. А там есть видео-эффекты.
Так вот, если по кадру пройти два раза, то программа работает медленно, потому что ядра друг у друга кэш отбирают.
А если по кадру пройти один раз, то...
Скорость возрастает в шесть раз (оооООО!!!), а вентилятор крутится значительно тише.
Это при том, что программа бежит быстрее в шесть раз.

Это просто пример, на который я самолично наткнулся.

Течёт вода Кубань-реки куда велят большевики.
Re[5]: Энергоэффективность алгоритмов
От: Stanislav V. Zudin Россия  
Дата: 24.02.25 11:15
Оценка:
Здравствуйте, alpha21264, Вы писали:

Ф>>>2) Операции с памятью могут сильно напрягать кэш, который сам по себе неплохой обогреватель. Может быть энергетически выгоднее каждый раз рассчитывать какое-либо значение, чем регулярно перезагружать/инвалидировать кэш-линейки для его поиска в памяти.


SVZ>>Хочешь убрать кеш? Боюсь время отклика софта будет таким, что пользователи взвоют.


A>Не обязательно убирать кэш. Можно его просто более рационально использовать.

A>Вот например я пишу свой собственный видео-редактор. А там есть видео-эффекты.
A>Так вот, если по кадру пройти два раза, то программа работает медленно, потому что ядра друг у друга кэш отбирают.
A>А если по кадру пройти один раз, то...
A>Скорость возрастает в шесть раз (оооООО!!!), а вентилятор крутится значительно тише.
A>Это при том, что программа бежит быстрее в шесть раз.

А если на одни и те же данные натравить ещё больше потоков, то они друг друга повесят на блокировке.
Многопоточность — она такая, её надо уметь готовить.
_____________________
С уважением,
Stanislav V. Zudin
Re: Энергоэффективность алгоритмов
От: mike_rs Россия  
Дата: 24.02.25 12:18
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Собственно сабж: для интеловского или амдешного железа есть способ замерить потреблённое электричество?


есть, серверные платформы предоставляют такую статистику
Re[5]: Энергоэффективность алгоритмов
От: rudzuk  
Дата: 24.02.25 12:53
Оценка: +1
Здравствуйте, alpha21264, Вы писали:

a> Вот например я пишу свой собственный видео-редактор. А там есть видео-эффекты.

a> Так вот, если по кадру пройти два раза, то программа работает медленно, потому что ядра друг у друга кэш отбирают.
a> А если по кадру пройти один раз, то...
a> Скорость возрастает в шесть раз (оооООО!!!), а вентилятор крутится значительно тише.
a> Это при том, что программа бежит быстрее в шесть раз.

a> Это просто пример, на который я самолично наткнулся.


Очень похоже на ситуацию, когда одновременно (разными потоками) читаются и модифицируются данные расположенные рядом (в размере кеш-линии). В этом случае процессор будет обеспечивть когерентность кеша и постоянно данные перечитывать.
avalon/3.0.2
Re[5]: Энергоэффективность алгоритмов
От: Stanislav V. Zudin Россия  
Дата: 24.02.25 14:08
Оценка:
Здравствуйте, Pzz, Вы писали:

SVZ>>Сэкономить энергию можно за счет перехода с JS на Си Вот тут да, количество операций процессора на вычисление будет значительно меньше

SVZ>>Но боюсь, программистское сообщество не оценит

Pzz>Есть мнение, что выигрыш будет раза в два. Не в 10.


Если говорить про производительность, то код на Вебасме (после Emscripten) и Шарпе проседает примерно вдвое+ по-сравнению с оригинальным С++.
А вот по энергопотреблению пёс его знает.

Про JS у меня сведений нет, так что поверю тебе
_____________________
С уважением,
Stanislav V. Zudin
Re[2]: Энергоэффективность алгоритмов
От: Философ Ад http://vk.com/id10256428
Дата: 24.02.25 15:01
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Ответ DeepSeek на эту тему:

S>

S>If you're looking to analyze and improve the energy efficiency of your code, there are several tools and extensions available for Integrated Development Environments (IDEs) that can help you measure and optimize energy consumption. Here are some notable ones:


Прикольно! А я вот что-то не догадался у болванчиков спросить.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[6]: Энергоэффективность алгоритмов
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.02.25 15:42
Оценка: +1 :)
Здравствуйте, Stanislav V. Zudin, Вы писали:

Pzz>>Есть мнение, что выигрыш будет раза в два. Не в 10.


SVZ>Если говорить про производительность, то код на Вебасме (после Emscripten) и Шарпе проседает примерно вдвое+ по-сравнению с оригинальным С++.

SVZ>А вот по энергопотреблению пёс его знает.

Вот эта вот константа "примерно вдвое" вылазит и из вебасма, и из шарпа, и из быстрого JS (который с JIT-ом), и из Явы и даже из Go. Везде получается примерно вдвое. Наверное, это фундаментальная физическая константа, типа постоянной Планка.
Re[2]: Энергоэффективность алгоритмов
От: Pzz Россия https://github.com/alexpevzner
Дата: 24.02.25 15:46
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

Ф>>Собственно сабж: для интеловского или амдешного железа есть способ замерить потреблённое электричество?

V>Да. Ставишь своему коду с этой функцией реалтаймовый приоритет (останавливаешь всё остальное) и подключаешь ваттметр к компу и получаешь результат.

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

Это тот самый случай, когда чистка кулера или замена термопасты могут повысить производительность в разы.
Re[3]: Энергоэффективность алгоритмов
От: wl. Россия  
Дата: 24.02.25 16:56
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>И не забываешь перемерить при другой погоде. Потому, что алкогоритм управления тактовой частотой процессора зависит и от его фактической температуры тоже.


какое слово красивое
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.