В этом посте рассказывается, как Amazon Code Whisperer может помочь с оптимизацией кода для обеспечения устойчивости за счет повышения эффективности использования ресурсов. Программирование с эффективным использованием вычислительных ресурсов — это один из методов, целью которого является сокращение количества энергии, необходимой для обработки строки кода, и, как следствие, помощь компаниям в общем потреблении меньше энергии. В эпоху облачных вычислений разработчики теперь используют библиотеки с открытым исходным кодом и доступные им передовые вычислительные мощности для создания крупномасштабных микросервисов, которые должны быть операционно эффективными, производительными и отказоустойчивыми. Однако современные приложения часто состоят из обширный код, требующий значительных вычислительных ресурсов. Хотя прямое воздействие на окружающую среду может быть неочевидным, недостаточно оптимизированный код увеличивает выбросы углекислого газа современными приложениями за счет таких факторов, как повышенное энергопотребление, длительное использование оборудования и устаревшие алгоритмы. В этой статье мы узнаем, как Amazon CodeWhisperer помогает решить эти проблемы и уменьшить воздействие вашего кода на окружающую среду.
Amazon CodeWhisperer — это помощник в области генеративного ИИ-кодирования, который ускоряет разработку программного обеспечения, внося предложения на основе существующего кода и комментариев на естественном языке, сокращая общие усилия по разработке и высвобождая время для мозгового штурма, решения сложных проблем и создания дифференцированного кода. Amazon CodeWhisperer может помочь разработчикам оптимизировать рабочие процессы, повысить качество кода, создать более строгие меры безопасности, создавать надежные наборы тестов и писать код, экономящий вычислительные ресурсы, что может помочь вам оптимизировать экологическую устойчивость. Он доступен как часть Набор инструментов для кода Visual Studio, Облако AWS9, ЮпитерЛаб, Студия 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.
Увеличение использования ресурсов
Неоптимизированный код может привести к неэффективному использованию ресурсов облачных вычислений. В результате может потребоваться больше виртуальных машин (ВМ) или контейнеров, что приведет к увеличению распределения ресурсов, энергопотребления и соответствующего углеродного следа рабочей нагрузки. Вы можете столкнуться с увеличением следующих показателей:
- Использование ЦП – Неоптимизированный код часто содержит неэффективные алгоритмы или методы кодирования, для выполнения которых требуется чрезмерное количество циклов ЦП.
- Потребление памяти – Неэффективное управление памятью в неоптимизированном коде может привести к ненужному выделению, освобождению памяти или дублированию данных.
- Операции дискового ввода-вывода – Неэффективный код может выполнять чрезмерные операции ввода/вывода (I/O). Например, если данные считываются или записываются на диск чаще, чем необходимо, это может увеличить загрузку дискового ввода-вывода и задержку.
- Использование сети – Из-за неэффективных методов передачи данных или дублирования связи плохо оптимизированный код может вызвать чрезмерный объем сетевого трафика. Это может привести к увеличению задержки и увеличению использования полосы пропускания сети. Увеличение использования сети может привести к увеличению расходов и потребности в ресурсах в ситуациях, когда сетевые ресурсы облагаются налогом в зависимости от использования, например, в облачных вычислениях.
Более высокое потребление энергии
Приложения, поддерживающие инфраструктуру, с неэффективным кодом используют больше вычислительной мощности. Чрезмерное использование вычислительных ресурсов из-за неэффективного и раздутого кода может привести к более высокому потреблению энергии и выделению тепла, что впоследствии потребует больше энергии для охлаждения. Наряду с серверами энергию потребляют также системы охлаждения, инфраструктура распределения электроэнергии и другие вспомогательные элементы.
Проблемы масштабируемости
При разработке приложений проблемы с масштабируемостью могут быть вызваны неоптимизированным кодом. Такой код может неэффективно масштабироваться по мере роста задачи, что потребует больше ресурсов и энергии. Это увеличивает энергию, потребляемую этими фрагментами кода. Как упоминалось ранее, неэффективный или расточительный код имеет усугубляющийся эффект при масштабировании.
Совокупная экономия энергии за счет оптимизации кода, который клиенты запускают в определенных центрах обработки данных, еще больше усугубляется, если принять во внимание, что такие поставщики облачных услуг, как AWS, имеют десятки центров обработки данных по всему миру.
Amazon CodeWhisperer использует машинное обучение (ML) и большие языковые модели для предоставления рекомендаций по коду в режиме реального времени на основе исходного кода и комментариев на естественном языке, а также предоставляет рекомендации по коду, которые могут быть более эффективными. Эффективность использования инфраструктуры программы можно повысить за счет оптимизации кода с использованием стратегий, включая усовершенствования алгоритмов, эффективное управление памятью и сокращение бессмысленных операций ввода-вывода.
Генерация кода, завершение и предложения
Давайте рассмотрим несколько ситуаций, в которых Amazon CodeWhisperer может быть полезен.
Автоматизируя разработку повторяющегося или сложного кода, инструменты генерации кода сводят к минимуму вероятность человеческой ошибки, уделяя при этом особое внимание оптимизации для конкретной платформы. Используя устоявшиеся шаблоны или шаблоны, эти программы могут создавать код, который более последовательно соответствует передовым практикам устойчивого развития. Разработчики могут создавать код, соответствующий определенным стандартам кодирования, что помогает создавать более согласованный и надежный код на протяжении всего проекта. Результирующий код может быть более эффективным, поскольку он устраняет варианты кода, созданные человеком, и может быть более разборчивым, что повышает скорость разработки. Он может автоматически реализовывать способы уменьшения размера и длины прикладной программы, такие как удаление лишнего кода, улучшение хранилища переменных или использование методов сжатия. Эти оптимизации могут помочь оптимизировать потребление памяти и повысить общую эффективность системы за счет уменьшения размера пакета.
Генеративный ИИ имеет потенциал сделать программирование более устойчивым за счет оптимизации распределения ресурсов. Важно комплексно оценить выбросы углекислого газа приложения. Такие инструменты, как Профайлер Amazon CodeGuru может собирать данные о производительности для оптимизации задержки между компонентами. Служба профилирования проверяет выполнение кода и выявляет потенциальные улучшения. Затем разработчики могут вручную усовершенствовать автоматически сгенерированный код на основе этих результатов для дальнейшего повышения энергоэффективности. Сочетание генеративного искусственного интеллекта, профилирования и человеческого контроля создает петлю обратной связи, которая может постоянно повышать эффективность кода и снижать воздействие на окружающую среду.
На следующем снимке экрана показаны результаты, полученные с помощью 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 может помочь разработчикам писать оптимизированный и более устойчивый код. Используя передовые модели машинного обучения, Amazon CodeWhisperer анализирует ваш код и предоставляет персональные рекомендации по повышению эффективности, что может снизить затраты и помочь уменьшить выбросы углекислого газа.
Предлагая незначительные корректировки и альтернативные подходы, Amazon CodeWhisperer позволяет разработчикам значительно сократить использование ресурсов и выбросы без ущерба для функциональности. Если вы хотите оптимизировать существующую кодовую базу или обеспечить эффективное использование ресурсов в новых проектах, Amazon CodeWhisperer может оказаться неоценимым подспорьем. Чтобы узнать больше о ресурсах Amazon CodeWhisperer и AWS Sustainability для оптимизации кода, рассмотрите следующие шаги:
Об авторах
Иша Дуа работает старшим архитектором решений в районе залива Сан-Франциско. Она помогает корпоративным клиентам AWS расти, понимая их цели и проблемы, и помогает им спроектировать свои приложения в облачной манере, обеспечив отказоустойчивость и масштабируемость. Она увлечена технологиями машинного обучения и экологической устойчивостью.
Аджай Говиндарам является старшим архитектором решений в AWS. Он работает со стратегическими клиентами, которые используют AI/ML для решения сложных бизнес-задач. Его опыт заключается в обеспечении технического руководства, а также помощи в проектировании развертывания приложений AI/ML от скромных до крупномасштабных. Его знания варьируются от архитектуры приложений до больших данных, аналитики и машинного обучения. Ему нравится слушать музыку во время отдыха, отдыхать на свежем воздухе и проводить время со своими близкими.
Эрик Иригойен — архитектор решений в Amazon Web Services, специализирующийся на клиентах из отрасли полупроводников и электроники. Он тесно сотрудничает с клиентами, чтобы понять их бизнес-задачи и определить, как можно использовать AWS для достижения их стратегических целей. Его работа в основном сосредоточена на проектах, связанных с искусственным интеллектом и машинным обучением (ИИ/МО). До прихода в AWS он был старшим консультантом в отделе расширенной аналитики Deloitte, где руководил рабочими направлениями в нескольких проектах в США, уделяя особое внимание аналитике и искусственному интеллекту и машинному обучению. Эрик получил степень бакалавра бизнеса в Университете Сан-Франциско и степень магистра аналитики в Университете штата Северная Каролина.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/optimize-for-sustainability-with-amazon-codewhisperer/
- :имеет
- :является
- :нет
- :куда
- $UP
- 100
- 7
- a
- О нас
- Достигать
- через
- адрес
- корректировки
- продвинутый
- достижения
- AI
- AI / ML
- помощь
- Цель
- алгоритмический
- алгоритмы
- Все
- распределение
- почти
- вдоль
- причислены
- альтернатива
- Несмотря на то, что
- Amazon
- Amazon Code Whisperer
- Amazon Web Services
- количество
- усиливается
- an
- аналитика
- анализы
- анализ
- и
- все
- Применение
- Разработка приложения
- Приложения
- подходы
- архитектура
- МЫ
- ПЛОЩАДЬ
- около
- искусственный
- искусственный интеллект
- Искусственный интеллект и машинное обучение
- AS
- Помощь
- At
- авторинга
- автоматический
- автоматически
- Автоматизация
- доступен
- в среднем
- AWS
- Пропускная способность
- Использование темпера с изогнутым основанием
- основанный
- залив
- BE
- , так как:
- становиться
- пользу
- ЛУЧШЕЕ
- лучшие практики
- между
- большой
- Big Data
- форсирует
- Дно
- граница
- строить
- бизнес
- by
- C + +
- CAN
- углерод
- случаев
- случаев
- Вызывать
- вызванный
- Центры
- определенный
- проблемы
- изменения
- клиентов
- Часы
- тесно
- облако
- облачных вычислений
- код
- кодовая база
- Кодирование
- собирать
- сочетание
- Комментарии
- Связь
- Компании
- спутник
- завершение
- комплекс
- компоненты
- вычисление
- Обеспокоенность
- Рассматривать
- рассмотрение
- принимая во внимание
- последовательный
- последовательно
- консультант
- потреблять
- потребленный
- потребление
- Контейнеры
- содержит
- непрерывно
- Расходы
- может
- Создайте
- создает
- Создающий
- В настоящее время
- Клиенты
- Порез
- циклы
- данным
- центров обработки данных
- снижение
- снизилась
- доставить
- требующий
- демонстрирует
- надежный
- развертывания
- Проект
- застройщиков
- Развитие
- дифференцированный
- направлять
- направление
- обнаружить
- распределение
- множество
- два
- Edge
- эффект
- Эффективный
- фактически
- затрат
- эффективный
- усилие
- Electronics
- элементы
- Выбросы
- позволяет
- энергетика
- Энергопотребление
- использование энергии
- обязательств
- повышать
- обеспечивать
- обеспечение
- Предприятие
- окружающий
- Экологическая устойчивость
- экологически
- экологически чистые
- Эпоха
- ошибка
- установленный
- Европейская кухня
- Даже
- исследовать
- Исследует
- пример
- существующий
- расходы
- опыт
- испытывающих
- исследует
- факторы
- Обратная связь
- результаты
- внимание
- фокусировка
- после
- след
- Что касается
- Франциско
- Высвобождение
- часто
- дружественный
- от
- функциональность
- далее
- порождать
- генерируется
- поколение
- генеративный
- Генеративный ИИ
- получить
- GIF
- Go
- Цели
- хорошо
- Расти
- Растет
- Гиды
- практический
- Аппаратные средства
- Освоение
- Есть
- he
- повышенный
- помощь
- помощь
- помогает
- высший
- его
- имеет
- Как
- Однако
- HTML
- HTTPS
- человек
- идея
- идентифицирует
- определения
- идентифицирующий
- if
- изображение
- Влияние
- воздействуя
- осуществлять
- важную
- улучшать
- улучшенный
- улучшение
- улучшение
- in
- включает в себя
- В том числе
- Увеличение
- расширились
- Увеличивает
- повышение
- промышленность
- неэффективное
- информация
- Инфраструктура
- Вставки
- внутри
- Интеллекта
- в
- неоценимый
- вопросы
- IT
- ЕГО
- Java
- JavaScript
- присоединение
- JPG
- знания
- язык
- большой
- крупномасштабный
- Задержка
- вести
- УЧИТЬСЯ
- узнали
- изучение
- привело
- Длина
- Меньше
- заемные средства
- библиотеки
- лежит
- такое как
- линия
- Listening
- погрузка
- искать
- любимый
- ниже
- машина
- обучение с помощью машины
- Продукция
- сделать
- Создание
- управление
- способ
- вручную
- Май..
- означает
- Встречайте
- Память
- упомянутый
- методы
- microservices
- может быть
- минимизация
- небольшая
- незначительные корректировки
- ML
- режим
- Модели
- Модерн
- скромный
- БОЛЕЕ
- более эффективным
- самых
- Музыка
- натуральный
- необходимо
- требует
- необходимость
- Необходимость
- потребности
- сеть
- сетевой трафик
- Новые
- следующий
- север
- Северная Каролина
- сейчас
- целей
- Очевидный
- of
- .
- on
- ONE
- те,
- открытый
- с открытым исходным кодом
- Операционный отдел
- оптимизация
- Оптимизировать
- оптимизированный
- оптимизирующий
- or
- оригинал
- Другое
- внешний
- на открытом воздухе
- общий
- надзор
- пакет
- часть
- особый
- страстный
- шаблон
- паттеранами
- Выполнять
- производительность
- Персонализированные
- PHP
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- возможность
- После
- потенциал
- мощностью
- практика
- практиками
- предварительно
- в первую очередь
- Предварительный
- проблемам
- процесс
- обработка
- Вычислительная мощность
- производит
- Производство
- профилирование
- FitPartner™
- Программирование
- Программы
- Проект
- проектов
- обеспечивать
- поставщики
- приводит
- обеспечение
- Питон
- Читать
- реальные
- реального времени
- рекомендаций
- уменьшить
- Цена снижена
- снижение
- снижение
- относиться
- совершенствовать
- Связанный
- удаление
- повторяющийся
- требовать
- обязательный
- Требования
- упругость
- упругий
- ресурс
- ресурсоемкий
- Полезные ресурсы
- отдыха
- результат
- в результате
- Итоги
- надежный
- РЯД
- Run
- работает
- Ржавчина
- s
- пожертвовав
- sagemaker
- Сан -
- Сан-Франциско
- экономия
- Масштабируемость
- Шкала
- Во-вторых
- безопасность
- Полупроводниковые приборы
- Полупроводники и электроника
- старший
- Серверы
- обслуживание
- Услуги
- несколько
- она
- Оболочка
- Шоу
- значительный
- существенно
- упростить
- обстоятельства
- Размер
- Software
- разработка программного обеспечения
- Решения
- РЕШАТЬ
- Решение
- Источник
- скорость
- скорость
- Расходы
- стандартов
- Область
- отчетность
- Области
- Шаги
- По-прежнему
- диск
- Стратегический
- стратегий
- упорядочить
- сильнее
- студия
- впоследствии
- такие
- предлагать
- Поддержка
- опрошенных
- Стабильность
- комфортного
- система
- системы
- взять
- Сложность задачи
- Технический
- техника
- снижения вреда
- технологии
- шаблоны
- тестXNUMX
- проверенный
- Тестирование
- чем
- который
- Ассоциация
- мир
- их
- Их
- тогда
- следовательно
- Эти
- они
- этой
- Через
- по всему
- время
- раз
- в
- инструменты
- трафик
- Машинопись
- понимать
- понимание
- Ед. изм
- Объединенный
- США
- Университет
- ненужный
- us
- Применение
- использование
- использования
- через
- Наши ценности
- переменная
- проверить
- Вид
- Виртуальный
- Ожидание
- стена
- законопроект
- Снизить отходы
- способы
- we
- Web
- веб-сервисы
- ЧТО Ж
- Что
- Что такое
- когда
- будь то
- который
- в то время как
- КТО
- без
- Работа
- Рабочие процессы
- работает
- Мир
- записывать
- письменный
- Ты
- ВАШЕ
- зефирнет