Ця публікація досліджує, як Amazon Code Whisperer може допомогти з оптимізацією коду для сталого розвитку за рахунок підвищення ефективності використання ресурсів. Ефективне кодування з використанням обчислювальних ресурсів — це один з методів, який спрямований на зменшення кількості енергії, необхідної для обробки рядка коду, і, як наслідок, допомагає компаніям споживати менше енергії в цілому. У цю еру хмарних обчислень розробники зараз використовують доступні їм бібліотеки з відкритим вихідним кодом і вдосконалену обчислювальну потужність для створення великомасштабних мікросервісів, які повинні бути операційно ефективними, продуктивними та стійкими. Однак сучасні програми часто складаються з великий код, що вимагає значних обчислювальних ресурсів. Хоча прямий вплив на навколишнє середовище може бути неочевидним, субоптимізований код збільшує вуглецевий слід сучасних програм через такі фактори, як підвищене енергоспоживання, тривале використання апаратного забезпечення та застарілі алгоритми. У цій публікації ми дізнаємося, як Amazon CodeWhisperer допомагає вирішити ці проблеми та зменшити вплив вашого коду на навколишнє середовище.
Amazon CodeWhisperer — це генеративний компаньйон кодування ШІ, який прискорює розробку програмного забезпечення, надаючи пропозиції на основі наявного коду та коментарів природної мови, зменшуючи загальні зусилля щодо розробки та звільняючи час для мозкового штурму, вирішення складних проблем і створення диференційованого коду. Amazon CodeWhisperer може допомогти розробникам оптимізувати їхні робочі процеси, покращити якість коду, створювати надійніші позиції безпеки, створювати надійні набори тестів і писати дружній до обчислювальних ресурсів код, який може допомогти вам оптимізувати для екологічної стійкості. Він доступний як частина Набір інструментів для Visual Studio Code, AWS Cloud9, JupyterLab, Студія Amazon SageMaker, AWS Lambda, Клей AWSі JetBrains IntelliJ IDEA. Зараз Amazon CodeWhisperer підтримує Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, сценарії Shell, SQL і Scala.
Вплив неоптимізованого коду на хмарні обчислення та вуглецевий слід програм
Інфраструктура AWS у 3.6 рази енергоефективніша, ніж середній показник опитаних корпоративних центрів обробки даних США, і до 5 разів енергоефективніша, ніж середній європейський корпоративний центр обробки даних.. Таким чином, AWS може допомогти знизити вуглецевий слід робочого навантаження до 96%. Тепер ви можете використовувати Amazon CodeWhisperer для написання якісного коду зі зниженим використанням ресурсів і енергоспоживання, а також досягати цілей масштабованості, одночасно користуючись енергоефективною інфраструктурою AWS.
Збільшене використання ресурсів
Неоптимізований код може призвести до неефективного використання ресурсів хмарних обчислень. Як наслідок, може знадобитися більше віртуальних машин (VM) або контейнерів, що збільшить розподіл ресурсів, споживання енергії та відповідний вуглецевий слід робочого навантаження. Ви можете зіткнутися зі збільшенням таких показників:
- Утилізація процесора – Неоптимізований код часто містить неефективні алгоритми або методи кодування, які потребують надмірних циклів ЦП для роботи.
- Споживання пам'яті – Неефективне керування пам’яттю в неоптимізованому коді може призвести до непотрібного виділення пам’яті, звільнення або дублювання даних.
- Операції введення-виведення диска – Неефективний код може виконувати надмірну кількість операцій введення/виведення (I/O). Наприклад, якщо дані зчитуються з диска або записуються на нього частіше, ніж необхідно, це може збільшити використання дискового вводу-виводу та затримку.
- Використання мережі – Через неефективні методи передачі даних або дублювання зв’язку погано оптимізований код може спричинити надмірний обсяг мережевого трафіку. Це може призвести до збільшення затримки та збільшення використання пропускної здатності мережі. Збільшене використання мережі може призвести до збільшення витрат і потреби в ресурсах у ситуаціях, коли мережеві ресурси оподатковуються залежно від використання, наприклад у хмарних обчисленнях.
Більше споживання енергії
Програми для підтримки інфраструктури з неефективним кодом використовують більше процесорної потужності. Надмірне використання обчислювальних ресурсів через неефективний, роздутий код може призвести до більшого споживання енергії та виробництва тепла, що згодом потребує більше енергії для охолодження. Разом із серверами енергію споживають системи охолодження, інфраструктура розподілу електроенергії та інші допоміжні елементи.
Проблеми масштабованості
У розробці додатків проблеми з масштабованістю можуть бути спричинені неоптимізованим кодом. Такий код може не ефективно масштабуватися, оскільки завдання зростає, що потребує більше ресурсів і витрачає більше енергії. Це збільшує енергію, споживану цими фрагментами коду. Як згадувалося раніше, неефективний або марнотратний код має ефект компаундування в масштабі.
Загальна економія енергії від оптимізації коду, який клієнти запускають у певних центрах обробки даних, ще більше ускладнюється, якщо взяти до уваги, що хмарні постачальники, такі як AWS, мають десятки центрів обробки даних по всьому світу.
Amazon CodeWhisperer використовує машинне навчання (ML) і великі мовні моделі, щоб надавати рекомендації щодо коду в реальному часі на основі оригінального коду та коментарів природною мовою, а також надає рекомендації щодо коду, які можуть бути ефективнішими. Ефективність використання інфраструктури програми можна підвищити шляхом оптимізації коду за допомогою стратегій, включаючи вдосконалення алгоритмів, ефективне керування пам’яттю та зменшення безглуздих операцій введення-виведення.
Генерація коду, доповнення та пропозиції
Давайте розглянемо кілька ситуацій, у яких Amazon CodeWhisperer може бути корисним.
Автоматизуючи розробку повторюваного або складного коду, інструменти генерації коду зводять до мінімуму ймовірність людської помилки, зосереджуючись на оптимізації для конкретної платформи. Використовуючи встановлені моделі або шаблони, ці програми можуть створювати код, який більш узгоджено дотримується найкращих практик сталого розвитку. Розробники можуть створювати код, який відповідає певним стандартам кодування, допомагаючи надавати більш послідовний і надійний код у всьому проекті. Отриманий код може бути більш ефективним, тому що він усуває варіації кодування, створюваного людиною, і може бути більш розбірливим, покращуючи швидкість розробки. Він може автоматично реалізувати способи зменшення розміру та довжини прикладної програми, такі як видалення зайвого коду, покращення зберігання змінних або використання методів стиснення. Ці оптимізації можуть допомогти оптимізувати використання пам’яті та підвищити загальну ефективність системи за рахунок зменшення розміру пакета.
Генеративний ШІ має потенціал зробити програмування більш стійким шляхом оптимізації розподілу ресурсів. Важливо комплексно розглядати вуглецевий слід програми. Такі інструменти, як Amazon CodeGuru Profiler може збирати дані про продуктивність для оптимізації затримки між компонентами. Служба профілювання перевіряє виконання коду та визначає потенційні покращення. Потім розробники можуть вручну вдосконалити автоматично згенерований код на основі цих висновків для подальшого підвищення енергоефективності. Поєднання генеративного штучного інтелекту, профілювання та людського контролю створює цикл зворотного зв’язку, який може постійно підвищувати ефективність коду та зменшувати вплив на навколишнє середовище.
На наступному знімку екрана показані результати, згенеровані CodeGuru Profiler у режимі затримки, який включає мережевий і дисковий ввід-вивід. У цьому випадку програма як і раніше проводить більшу частину свого часу ImageProcessor.extractTasks
(другий нижній ряд), і майже весь час всередині це працює, тобто нічого не чекало. Ви можете переглянути ці стани потоків, перейшовши в режим затримки з режиму ЦП. Це може допомогти вам отримати гарне уявлення про те, що впливає на час настінного годинника програми. Для отримання додаткової інформації див Зниження викидів вуглекислого газу вашої організації за допомогою Amazon CodeGuru Profiler.
Генерація тестових випадків
Amazon Code Whisperer може допомогти запропонувати тестові випадки та перевірити функціональність коду, враховуючи граничні значення, крайові випадки та інші потенційні проблеми, які, можливо, потребують перевірки. Крім того, Amazon CodeWhisperer може спростити створення повторюваного коду для модульного тестування. Наприклад, якщо вам потрібно створити зразки даних за допомогою операторів INSERT, Amazon CodeWhisperer може створити необхідні вставки на основі шаблону. Загальні вимоги до ресурсів для тестування програмного забезпечення також можна зменшити шляхом виявлення та оптимізації ресурсомістких тестів або видалення зайвих. Покращені набори тестів можуть зробити програму більш екологічною за рахунок підвищення енергоефективності, зменшення споживання ресурсів, мінімізації відходів і зменшення вуглецевого сліду робочого навантаження.
Щоб дізнатися більше про практичний досвід роботи з Amazon CodeWhisperer, див Оптимізуйте розробку програмного забезпечення за допомогою Amazon CodeWhisperer. Публікація демонструє рекомендації щодо коду від Amazon CodeWhisperer у Студія Amazon SageMaker. Він також демонструє запропонований код на основі коментарів для завантаження та аналізу набору даних.
Висновок
У цій публікації ми дізналися, як Amazon CodeWhisperer може допомогти розробникам написати оптимізований, більш стійкий код. Використовуючи вдосконалені моделі ML, Amazon CodeWhisperer аналізує ваш код і надає персоналізовані рекомендації щодо підвищення ефективності, що може зменшити витрати та зменшити викиди вуглецю.
Пропонуючи незначні коригування та альтернативні підходи, Amazon CodeWhisperer дозволяє розробникам значно скоротити використання ресурсів і викиди без шкоди для функціональності. Незалежно від того, чи хочете ви оптимізувати існуючу кодову базу чи забезпечити ефективне використання ресурсів нових проектів, Amazon CodeWhisperer може стати неоціненною допомогою. Щоб дізнатися більше про ресурси Amazon CodeWhisperer і AWS Sustainability для оптимізації коду, розгляньте наступні кроки:
Про авторів
Іша Дуа є старшим архітектором рішень у районі затоки Сан-Франциско. Вона допомагає корпоративним клієнтам AWS розвиватися, розуміючи їхні цілі та виклики, а також надає їм рекомендації щодо створення архітектури своїх додатків у хмарній манері, забезпечуючи стійкість і масштабованість. Вона захоплюється технологіями машинного навчання та екологічною стійкістю.
Аджай Говіндарам є старшим архітектором рішень в AWS. Він працює зі стратегічними клієнтами, які використовують AI/ML для вирішення складних бізнес-завдань. Його досвід полягає в наданні технічного керівництва, а також у допомозі в розробці скромних і великомасштабних розгортань програм AI/ML. Його знання варіюються від архітектури додатків до великих даних, аналітики та машинного навчання. Йому подобається слухати музику під час відпочинку, гуляти на природі та проводити час зі своїми близькими.
Ерік Ірігоєн є архітектором рішень у Amazon Web Services, який зосереджується на клієнтах у галузі напівпровідників та електроніки. Він тісно співпрацює з клієнтами, щоб зрозуміти їхні бізнес-проблеми та визначити, як можна використовувати AWS для досягнення їхніх стратегічних цілей. Його робота в основному зосереджена на проектах, пов’язаних зі штучним інтелектом і машинним навчанням (AI/ML). До того, як приєднатися до AWS, він був старшим консультантом у відділі розширеної аналітики Deloitte, де керував робочими потоками в кількох проектах у Сполучених Штатах, зосереджуючись на аналітиці та AI/ML. Ерік має ступінь бакалавра бізнесу в Університеті Сан-Франциско та ступінь магістра з аналітики в Університеті штату Північна Кароліна.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/optimize-for-sustainability-with-amazon-codewhisperer/
- : має
- :є
- : ні
- :де
- $UP
- 100
- 7
- a
- МЕНЮ
- Achieve
- через
- адреса
- коректування
- просунутий
- досягнення
- AI
- AI / ML
- Aid
- Цілі
- алгоритмічний
- алгоритми
- ВСІ
- розподіл
- майже
- по
- Також
- альтернатива
- хоча
- Amazon
- Amazon Code Whisperer
- Amazon Web Services
- кількість
- посилюється
- an
- аналітика
- аналізи
- Аналізуючи
- та
- все
- додаток
- Розробка додатка
- застосування
- підходи
- архітектура
- ЕСТЬ
- ПЛОЩА
- навколо
- штучний
- штучний інтелект
- Штучний інтелект і машинне навчання
- AS
- Допомога
- At
- авторство
- автоматичний
- автоматично
- автоматизація
- доступний
- середній
- AWS
- ширина смуги
- база
- заснований
- затока
- BE
- оскільки
- ставати
- вигода
- КРАЩЕ
- передового досвіду
- між
- Великий
- Великий даних
- підсилює
- дно
- межа
- будувати
- бізнес
- by
- C + +
- CAN
- вуглець
- випадок
- випадків
- Викликати
- викликаний
- Центри
- певний
- проблеми
- заміна
- клієнтів
- годинник
- тісно
- хмара
- хмарних обчислень
- код
- кодова база
- Кодування
- збирати
- поєднання
- коментарі
- Комунікація
- Компанії
- супутник
- завершення
- комплекс
- Компоненти
- обчислення
- Турбота
- Вважати
- розгляду
- беручи до уваги
- послідовний
- послідовно
- консультант
- споживати
- спожитий
- споживання
- Контейнери
- містить
- постійно
- витрати
- може
- створювати
- створює
- створення
- В даний час
- Клієнти
- Вирізати
- циклів
- дані
- центрів обробки даних
- зменшити
- знизився
- доставляти
- вимогливий
- демонструє
- надійний
- розгортання
- дизайн
- розробників
- розробка
- диференційований
- прямий
- напрям
- відкрити
- розподіл
- безліч
- два
- край
- ефект
- Ефективний
- фактично
- ефективність
- ефективний
- зусилля
- електроніка
- елементи
- викиди
- дозволяє
- енергія
- Енергоспоживання
- використання енергії
- зобов'язань
- підвищувати
- забезпечувати
- забезпечення
- підприємство
- навколишній
- Екологічна стійкість
- екологічно
- безпечний для довкілля
- Епоха
- помилка
- встановлений
- Європейська
- Навіть
- досліджувати
- Обстежує
- приклад
- існуючий
- витрати
- досвід
- зазнають
- досліджує
- фактори
- зворотний зв'язок
- результати
- увагу
- фокусування
- після
- Слід
- для
- Франциско
- звільнення
- часто
- дружній
- від
- функціональність
- далі
- породжувати
- генерується
- покоління
- генеративний
- Генеративний ШІ
- отримати
- GIF
- Go
- Цілі
- добре
- Рости
- Зростає
- Гід
- практичний
- апаратні засоби
- Запрягання
- Мати
- he
- посилений
- допомога
- допомогу
- допомагає
- вище
- його
- тримає
- Як
- Однак
- HTML
- HTTPS
- людина
- ідея
- ідентифікує
- ідентифікувати
- ідентифікує
- if
- зображення
- Impact
- впливає
- здійснювати
- важливо
- удосконалювати
- поліпшений
- поліпшення
- поліпшення
- in
- includes
- У тому числі
- Augmenter
- збільшений
- Збільшує
- зростаючий
- промисловість
- неефективний
- інформація
- Інфраструктура
- Вставки
- всередині
- Інтелект
- в
- безцінний
- питання
- IT
- ЙОГО
- Java
- JavaScript
- приєднання
- JPG
- знання
- мова
- великий
- масштабний
- Затримка
- вести
- УЧИТЬСЯ
- вчений
- вивчення
- Led
- довжина
- менше
- левередж
- libraries
- лежить
- як
- Лінія
- Прослуховування
- погрузка
- шукати
- улюблене
- знизити
- машина
- навчання за допомогою машини
- Машинки для перманенту
- зробити
- Робить
- управління
- манера
- вручну
- Може..
- засоби
- Зустрічатися
- пам'ять
- згаданий
- методика
- мікросервіс
- може бути
- мінімізація
- незначний
- незначні корективи
- ML
- режим
- Моделі
- сучасний
- скромний
- більше
- більш ефективний
- найбільш
- музика
- Природний
- необхідно
- вимагає
- необхідно
- Необхідність
- потреби
- мережу
- мережевий трафік
- Нові
- наступний
- На північ
- Північна Кароліна
- зараз
- цілей
- Очевидний
- of
- часто
- on
- ONE
- ті,
- відкрити
- з відкритим вихідним кодом
- операції
- оптимізація
- Оптимізувати
- оптимізований
- оптимізуючий
- or
- оригінал
- Інше
- з
- на відкритому повітрі
- загальний
- Нагляд
- пакет
- частина
- приватність
- пристрасний
- Викрійки
- моделі
- Виконувати
- продуктивність
- Персоналізовані
- PHP
- plato
- Інформація про дані Платона
- PlatoData
- можливість
- пошта
- потенціал
- влада
- практика
- практики
- раніше
- в першу чергу
- попередній
- проблеми
- процес
- обробка
- Обробна потужність
- виробляти
- Production
- профілювання
- програма
- Програмування
- програми
- проект
- проектів
- забезпечувати
- провайдери
- забезпечує
- забезпечення
- Python
- якість
- Читати
- реальний
- реального часу
- рекомендації
- зменшити
- Знижений
- зниження
- скорочення
- послатися
- удосконалювати
- пов'язаний
- видалення
- повторювані
- вимагати
- вимагається
- Вимога
- пружність
- пружний
- ресурс
- ресурсомісткий
- ресурси
- відпочиваючи
- результат
- в результаті
- результати
- міцний
- ROW
- прогін
- пробіжки
- Іржа
- s
- жертвуючи
- мудрець
- Сан -
- Сан Франциско
- Економія
- масштабованість
- шкала
- другий
- безпеку
- Напівпровідникові прилади
- Напівпровідники та електроніка
- старший
- Сервери
- обслуговування
- Послуги
- кілька
- вона
- Склад
- Шоу
- значний
- істотно
- спростити
- ситуацій
- Розмір
- Софтвер
- розробка програмного забезпечення
- Рішення
- ВИРІШИТИ
- Розв’язування
- Source
- швидкість
- швидкість
- Витрати
- стандартів
- стан
- заяви
- Штати
- заходи
- Як і раніше
- зберігання
- Стратегічний
- стратегії
- раціоналізувати
- більш сильний
- студія
- Згодом
- такі
- пропонувати
- Опори
- опитаних
- Sustainability
- сталого
- система
- Systems
- Приймати
- Завдання
- технічний
- техніка
- методи
- Технології
- Шаблони
- тест
- перевірений
- Тестування
- ніж
- Що
- Команда
- світ
- їх
- Їх
- потім
- отже
- Ці
- вони
- це
- через
- по всьому
- час
- times
- до
- інструменти
- трафік
- Машинопис
- розуміти
- розуміння
- блок
- United
- Сполучені Штати
- університет
- непотрібний
- us
- Використання
- використання
- використовує
- використання
- Цінності
- змінна
- перевірити
- вид
- Віртуальний
- Очікування
- Стіна
- було
- Відходи
- способи
- we
- Web
- веб-сервіси
- ДОБРЕ
- Що
- Що таке
- коли
- Чи
- який
- в той час як
- ВООЗ
- з
- без
- Work
- Робочі процеси
- працює
- світ
- запис
- письмовий
- Ти
- вашу
- зефірнет