Турбированный Python: ИИ ускоряет скорость вычислений в тысячи раз
Автор: Массачусетский университет в Амхерсте, 30 августа 2023 г.
Исследователи из Массачусетского университета в Амхерсте представили Scalene, передовой профилировщик Python. В отличие от традиционных профилировщиков, Scalene использует ИИ для выявления и предложения исправлений неэффективности кода. Это развитие приобретает все большее значение, поскольку будущее склоняется к лучшему программированию для повышения скорости.
Их разработка Scalene, инструмент с открытым исходным кодом для значительного ускорения языка программирования Python, позволяет обойти аппаратные проблемы, ограничивающие скорость компьютерной обработки.
Группа ученых-компьютерщиков из Массачусетского университета в Амхерсте под руководством Эмери Бергера недавно представила отмеченный наградами профайлер Python под названием Scalene. Программы, написанные на Python, общеизвестно медленны — до 60 000 раз медленнее, чем код, написанный на других языках программирования, — и Scalene эффективно определяет, где именно Python отстает, позволяя программистам устранять неполадки и оптимизировать свой код для повышения производительности.
Существует много разных языков программирования — C++, Fortran и Java являются одними из наиболее известных, — но в последние годы один язык стал почти повсеместным: Python.
“Python is a ‘batteries-included’ language,” says Berger, who is a professor of computer science in the Manning College of Information and Computer Sciences at UMass Amherst, “and it has become very popular in the age of data science and machine learningMachine learning is a subset of artificial intelligence (AI) that deals with the development of algorithms and statistical models that enable computers to learn from data and make predictions or decisions without being explicitly programmed to do so. Machine learning is used to identify patterns in data, classify data into different categories, or make predictions about future events. It can be categorized into three main types of learning: supervised, unsupervised and reinforcement learning." data-gt-translate-attributes="[{"attribute":"data-cmtooltip", "format":"html"}]"> машинное обучение, потому что оно очень удобно для пользователя». Язык поставляется с библиотеками простых в использовании инструментов и имеет интуитивно понятный и читаемый синтаксис, что позволяет пользователям быстро начать писать код Python.
«Компьютеры больше не становятся быстрее. Будущие улучшения скорости будут происходить не за счет лучшего оборудования, а за счет более быстрого и эффективного программирования».
— Эмери Бергер, профессор информатики в Мэннинг-колледже информации и компьютерных наук Массачусетского университета в Амхерсте.
«Но Python безумно неэффективен», — говорит Бергер. «Он легко работает в 100–1000 раз медленнее, чем другие языки, а некоторые задачи в Python могут выполняться в 60 000 раз дольше».
Профессор компьютерных наук Массачусетского университета в Амхерсте Эмери Бергер. Фото: Массачусетский университет в Амхерсте.
Программисты давно это знают, и чтобы бороться с неэффективностью Python, они могут использовать инструменты, называемые «профилировщиками». Профилировщики запускают программы, а затем определяют, почему и какие части работают медленно.
К сожалению, существующие профилировщики на удивление мало помогают программистам Python. В лучшем случае они указывают на то, что какой-то участок кода работает медленно, и оставляют программисту самому выяснить, что можно сделать, если вообще что-то можно сделать.
Команда Бергера, в которую входили аспиранты Массачусетского университета в области информатики Сэм Стерн и Хуан Альтмайер Пиццорно, создала Scalene как первый профилировщик, который не только точно выявляет неэффективность кода Python, но и использует ИИ, чтобы предлагать, как код можно улучшить.
«Scalene сначала выявляет, на что ваша программа тратит время», — говорит Бергер. Он фокусируется на трех ключевых областях — процессоре, графическом процессоре и использовании памяти, — которые ответственны за большую часть низкой скорости Python.
Как только Scalene определяет, где у Python возникают проблемы, он использует ИИ — используя ту же технологию, которая лежит в основе ChatGPT, — чтобы предложить способы оптимизации отдельных строк или даже групп кода.
«Это действенная информационная панель», — говорит Бергер. «Это не просто спидометр, показывающий вам, насколько быстро или медленно движется ваша машина, он говорит вам, можете ли вы ехать быстрее, почему это влияет на вашу скорость и что вы можете сделать, чтобы разогнаться до максимальной скорости».