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

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

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

“Python – это язык, работающий от батареек”, – говорит Бергер, профессор компьютерных наук в Колледже информации и компьютерных наук Мэннинга в UMass Amherst, – “и он стал очень популярным в эпоху науки о данных и машинного обучения, потому что он очень удобен в использовании”. Язык поставляется с библиотеками простых в использовании инструментов и имеет интуитивно понятный и читаемый синтаксис, позволяющий пользователям быстро приступить к написанию кода на Python.

“Но Python безумно неэффективен”, – говорит Бергер. “Он легко выполняется в 100-1000 раз медленнее, чем другие языки, а некоторые задачи в Python могут занимать в 60 000 раз больше времени”.

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

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

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

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

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

“Компьютеры больше не становятся быстрее”, – говорит Бергер. “Будущие улучшения в скорости будут происходить не столько за счет более совершенного оборудования, сколько за счет более быстрого и эффективного программирования”.

Scalene уже широко используется и был скачан более 750 000 раз с момента его публичного представления на GitHub. Статья, описывающая эту работу, появилась в этом году на конференции USENIX по проектированию и внедрению операционных систем, где она получила награду за лучшую статью.

Translate »
 
Чат Telergram

Привет, готов ответить на Ваши вопросы

Открыть чат
1
Отсканируйте код
Здравствуйте!
Возможно я могу Вам чем-то помочь?