Ученые-компьютерщики разрабатывают инструмент с открытым исходным кодом для значительного ускорения языка программирования Python

Команда ученых-компьютерщиков из Университета Массачусетса в Амхерсте под руководством Эмери Бергера недавно представила отмеченный наградами профилировщик Python с открытым исходным кодом под названием Scalene. Программы, написанные на Python, известны своей медлительностью — до 60 000 раз медленнее кода, написанного на других языках программирования. Scalene эффективно определяет, где именно Python отстает, позволяя программистам находить и оптимизировать свой код для повышения производительности.

Существует много разных языков программирования — C++, Fortran и Java — одни из наиболее известных, но в последние годы один язык стал практически повсеместным: Python.

«Python — это язык с встроенными библиотеками», — говорит Бергер, профессор информатики в Колледже информатики и компьютерных наук Мэннинга при Университете Массачусетса в Амхерсте. «И он стал очень популярным в эпоху науки о данных и машинного обучения, потому что он настолько дружелюбен к пользователю». Язык поставляется с библиотеками простых в использовании инструментов и имеет интуитивно понятный синтаксис, позволяя пользователям быстро начать писать код на Python.

«Но Python невероятно неэффективен», — говорит Бергер. «Он работает в 100-1000 раз медленнее других языков, а некоторые задачи могут занимать в 60 000 раз больше времени в Python».

Программисты давно знают об этом, и чтобы помочь бороться с неэффективностью Python, они могут использовать инструменты, называемые «профайлерами». Профайлеры запускают программы, а затем точно указывают, какие части медленные и почему.

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

Команда Бергера, в которую вошли аспиранты информатики Сэм Стерн и Хуан Альтмайер Пиццорно, разработала Scalene, чтобы сделать первый профайлер, который не только точно определяет неэффективность в коде Python, но и использует ИИ для предложения способов улучшения кода.

«Scalene сначала выявляет, где программа тратит время зря», — говорит Бергер. Он сосредотачивается на трех ключевых областях — использовании ЦП, графического процессора и памяти, которые отвечают за большую часть вялой скорости Python.

После того, как Scalene определил, где Pythonу трудно успевать, он использует ИИ — опираясь на ту же технологию, что и ChatGPT — чтобы предложить способы оптимизации отдельных строк или даже групп кода. “Это рабочая панель”, — говорит Бергер. “Это не просто спидометр, сообщающий, насколько быстро или медленно движется ваш автомобиль, он сообщает вам, если вы можете ехать быстрее, от чего ваша скорость зависит и что вы можете сделать, чтобы разогнаться до максимальной скорости”.

«Компьютеры больше не становятся быстрее», — говорит Бергер. «Будущие улучшения скорости будут поступать меньше от лучшего оборудования и больше от более быстрой, более эффективной разработки программ».

Scalene уже широко используется и был загружен более 750 000 раз с момента публичного размещения на GitHub. Доклад, описывающий эту работу, был представлен на конференции USENIX Conference on Operating System Design and Implementation в этом году и получил награду за лучшую работу.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *