The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

01.07.2012 18:51  Расширение интерпретатора Python для JIT-компиляции фрагментов кода с помощью LLVM

Разработчик Siu Kwan Lam представил в дискуссионном листе LLVMdev проект Pymothoa, в рамках которого разрабатывается расширение интерпретатора Python для JIT-компиляции отдельно взятых функций с помощью LLVM. Расширение не требует модификации интерпретатора и может быть легко установлено в любую систему.

Pymothoa добавляет в Python новый декоратор, позволяющий "пометить" функции, при исполнении которых должен быть задействован JIT-компилятор. При этом, в силу технических ограничений, функция должна быть написана на специальном диалекте Python, предусматривающем явное объявление переменных, статическую типизацию и отказ от объектов и исключений. Код функции преобразуется в дерево AST (Abstract Syntax Trees), затем в байткод LLVM и выполняется с помощью виртуальной машины.

Сам автор позиционирует свой проект как более удобную замену модулям, написанным на языке Си. Pymothoa позволяет быстро оптимизировать код, без необходимости его переписывания на Си и снимает с пользователя задачу по компиляции и установке модулей. Все, что необходимо сделать, это установить LLVM и Pymothoa.



  1. Главная ссылка к новости (http://lists.cs.uiuc.edu/piper...)
Автор новости: Evgeny Zobnin
Тип: Программы
Ключевые слова: python, jit, llvm
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Anonimoyss, 19:12, 01/07/2012 [ответить] [смотреть все]
  • +2 +/
    Круто!
    Жаль, benchmark-ов нет.
     
  • 1.2, Аноним, 19:15, 01/07/2012 [ответить] [смотреть все]
  • +1 +/
    Сначала придумали проблему, а потом героически её решают.
     
     
  • 2.3, h31, 19:30, 01/07/2012 [^] [ответить] [смотреть все] [показать ветку]
  • +6 +/
    Использование интерпретируемых ЯП как правило повышает надежность, портируемость и скорость написания программ. Да, они медленнее, но это не придуманная кем-то специально проблема.
     
     
  • 3.10, Аноним, 19:50, 01/07/2012 [^] [ответить] [смотреть все]
  • –6 +/
    Я заметил 90 багов убунты - в их питоновом булшите, который я по этому поводу ... весь текст скрыт [показать]
     
     
  • 4.11, MacMan, 20:00, 01/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Ну это вы обманываетесь обманываете 90 багов убунты это проблемы с видеодрайве... весь текст скрыт [показать]
     
     
  • 5.23, Аноним, 00:02, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Простите, вы убунту на картинке видели Или где там баги с пульсаудио Ну вот он... весь текст скрыт [показать]
     
     
  • 6.36, Аноним, 03:06, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    булщит не питон, а убунта. пользую дебиан, пишу на питоне - ничего не падает.
     
     
  • 7.37, Аноним, 03:20, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Булшит - это то что написано на питоне А свое - не пахнет, вы про это не забыва... весь текст скрыт [показать]
     
     
  • 8.130, Аноним, 12:59, 04/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Ложь Пахнет Можно Верное ... весь текст скрыт [показать]
     
  • 6.41, ragus, 04:02, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    ооо... вы просто скажите, какой ЯП с вашей точки зрения лучший.
     
     
  • 7.49, Аноним, 04:43, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Который осваивать сложно Например плюсы Так по крайней мере идиоты с ветром в ... весь текст скрыт [показать]
     
     
  • 8.50, ragus, 04:51, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    почему же так мало сайтов на С++ ?

     
     
  • 9.58, Аноним, 05:51, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Потому что он на вебню не особо то и заточен В честь чего там и отхапал все спе... весь текст скрыт [показать]
     
     
  • 10.82, Аноним, 12:23, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    А на питоне нормальных сайтов тоже хрен найдешь Ну да всякие там ютубы частью я... весь текст скрыт [показать]
     
     
  • 11.93, Аноним, 16:34, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Напоминает анекдоты про войну чукч и китайцев - А давайте воевать - Ну давайт... весь текст скрыт [показать]
     
     
  • 12.129, Аноним, 12:48, 04/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Не смешно как-то ... весь текст скрыт [показать]
     
  • 8.78, dxd, 10:47, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Предлагайте сразу Malbolge А то ваше дерьмо с пятью способами передачи объекта ... весь текст скрыт [показать]
     
  • 8.79, Anonymous100500, 11:56, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Т.е. по-твоему чем сложнее язык, тем он лучше? :)
     
     
  • 9.86, Аноним, 13:32, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Чем сложнее язык тем он илитнее.
     
     
  • 10.94, Аноним, 16:35, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Тем он лучше держит идиотов на расстоянии Что хорошо Хреново когда пироги пече... весь текст скрыт [показать]
     
  • 9.98, Аноним, 17:01, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Нет, по-моему, хреново когда всякие дятлы с ветром в голове лезут программить пр... весь текст скрыт [показать]
     
     
  • 10.101, Аноним, 17:08, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Как показал опыт c и PERL, если сложный язык и держит идиотов на расстоянии -... весь текст скрыт [показать]
     
  • 8.83, Аноним, 12:35, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Питон очень сложный для осваивания язык, где любой тип имеет кучу методов, где к... весь текст скрыт [показать]
     
     
  • 9.95, Аноним, 16:44, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Судя по тому кто на нем пишет - это современный вариант вьюжлвасика, не более Н... весь текст скрыт [показать]
     
     
  • 10.102, Аноним, 17:11, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Не суди и не судим будешь Как и на любом языке В Питон Вранье В общем, хва... весь текст скрыт [показать]
     
  • 10.121, ig0r, 16:16, 03/07/2012 [^] [ответить] [смотреть все]  
  • +/
    вы с php не путаете?
     
  • 9.111, arisu, 20:28, 02/07/2012 [^] [ответить] [смотреть все]  
  • –5 +/
    откуда в гвидобейсике функциональщина, если опоссум сказал, что TCO не нужно?
     
     
  • 10.113, Аноним, 15:08, 03/07/2012 [^] [ответить] [смотреть все]  
  • +/
    В гугле забанин Python язык мультипардигмный и ООП и функциональщина всё в одн... весь текст скрыт [показать]
     
     
  • 11.122, arisu, 16:19, 03/07/2012 [^] [ответить] [смотреть все]  
  • –2 +/
    что характерно 8212 питонофанбой ничего не понял, но кинулся защищать любимый... весь текст скрыт [показать]
     
  • 6.84, Аноним, 12:48, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Да tuxguitar запусти, или любой midi секвенсор и всё сам поймешь Наверное потом... весь текст скрыт [показать]
     
     
  • 7.97, Аноним, 16:57, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Боюсь что в миди-секвенсорах я разбираюсь как свинья в апельсинах Но ради интер... весь текст скрыт [показать]
     
     
  • 8.110, Аноним, 18:15, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    О, по поводу glibc Когда там у вас в сишечках виртуалбокс из тамблвида перестан... весь текст скрыт [показать]
     
  • 8.114, Аноним, 15:22, 03/07/2012 [^] [ответить] [смотреть все]  
  • +/
    А что там разбираться поставь и всё сам услышишь, параллельной обработки звука н... весь текст скрыт [показать]
     
     
  • 9.123, arisu, 16:20, 03/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    и что мне что-то подсказывает, что про него говорить сложно, а вот ты 8212 т... весь текст скрыт [показать]
     
  • 5.126, Michael Shigorin, 00:36, 04/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Это которые короткой кнопочкой или которые длинной ... весь текст скрыт [показать]
     
  • 5.136, Michael Shigorin, 17:46, 05/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Особенно генетических сегодня прислали code class B object arr ... весь текст скрыт [показать]
     
     
  • 6.137, arisu, 19:57, 05/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    а в чём проблема-то в принципе, нормальное поведение для прототипной модели, гд... весь текст скрыт [показать]
     
  • 4.12, Аноним, 20:13, 01/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Хм, а меня три 4 2 для одного старого проекта, 4 6 основной, и 4,7 на который я ... весь текст скрыт [показать]
     
     
  • 5.13, Anonimoyss, 20:39, 01/07/2012 [^] [ответить] [смотреть все]  
  • +3 +/
    Код сишный Не на плюсах Если да - хотелось бы посмотреть на пример такого чуд... весь текст скрыт [показать]
     
  • 5.24, Аноним, 00:03, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Что-то руки у вас не оттуда растут По крайней мере, если сорец писаный на си в... весь текст скрыт [показать]
     
  • 4.21, h31, 22:15, 01/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Сами же и ответили на свой вопрос Убунтоспецифичные утилиты тестируют только уб... весь текст скрыт [показать]
     
     
  • 5.25, Аноним, 00:06, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Ну да, yum тормозит и ловит OOM не менее стабильно Ну и так далее В общем если... весь текст скрыт [показать]
     
     
  • 6.29, Аноним, 00:18, 02/07/2012 [^] [ответить] [смотреть все]  
  • –2 +/
    сколько лет пользуюсь yum ом, ни разу не видел никаких с ним OOMов и тормозов ко... весь текст скрыт [показать]
     
     
  • 7.47, Аноним, 04:35, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    И сколько лет вы им пользуетесь А то на машине с 128Мб он спокойно ловит OOM Х... весь текст скрыт [показать]
     
  • 6.63, arisu, 06:54, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    справедливости ради 8212 wicd работает без нареканий разве что немного раздр... весь текст скрыт [показать]
     
     
  • 7.104, Аноним, 17:17, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Справедливости ради, мне и без него неплохо живется Честное пионерское ... весь текст скрыт [показать]
     
  • 5.140, Lain_13, 14:53, 10/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Парадоксально, но на моей системе 8212 факт Ни разу не имел проблем с ubuntu... весь текст скрыт [показать]
     
  • 4.35, Xasd, 02:49, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    правда чтоле нет -D может плохо искали а наберите ка sudo aptitude search g... весь текст скрыт [показать]
     
     
  • 5.46, Аноним, 04:34, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Извините, я про b установленные b версии У меня 1 сишный компилер И нес... весь текст скрыт [показать]
     
     
  • 6.76, Xasd, 09:53, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    и зачемже вы установили несколько версий Пайтона по умолчанию их тоже не ставит... весь текст скрыт [показать]
     
     
  • 7.106, Аноним, 17:19, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Так они по дефолту ставятся Хотя-бы по причине несовместимости 2 х и 3 х Ну д... весь текст скрыт [показать]
     
     
  • 8.117, Аноним, 15:45, 03/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Ложь В последней Ubuntu 2 7 по дефолту, 3 не установлен А какой компилятор сей... весь текст скрыт [показать]
     
  • 3.14, Андрей, 20:45, 01/07/2012 [^] [ответить] [смотреть все]  
  • +/
    А мне казалось, что чем меньше абстракции, тем надёжней Т е ASM - C - C ... весь текст скрыт [показать]
     
     
  • 4.20, h31, 22:07, 01/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Абстракции действительно не прибавляют надежности Сама по себе интерпретация в ... весь текст скрыт [показать]
     
     
  • 5.26, Аноним, 00:07, 02/07/2012 [^] [ответить] [смотреть все]  
  • –3 +/
    Да Питонистам даже впадлу успех файловых операций проверять как правило Так чт... весь текст скрыт [показать]
     
     
  • 6.28, Аноним, 00:14, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    фантазёр, хватит херню нести
     
  • 6.45, Xasd, 04:29, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    вот уж насмешил так правда насмешил -D покажи-ка свой исходный код на Python ,... весь текст скрыт [показать]
     
     
  • 7.51, Аноним, 04:53, 02/07/2012 [^] [ответить] [смотреть все]  
  • –2 +/
    У убунтуйцев их апгрейдер посмотрите Оно так умеет - пытается шпарить не найдя ... весь текст скрыт [показать]
     
     
  • 8.72, Аноним, 08:58, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    В этом виноват питон?
     
  • 8.119, Аноним, 15:52, 03/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Для начала название программы Покажите код который это делает ... весь текст скрыт [показать]
     
  • 5.92, Аноним, 16:16, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    В Си есть и интерпретатор, в Python есть и компилятор ... весь текст скрыт [показать]
     
  • 4.71, Аноним, 08:57, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Дооо, асемблер ы то надеждны Особенно учитывая количество багов в интеловских ... весь текст скрыт [показать]
     
     
  • 5.108, Аноним, 17:23, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Вам бы спеллчекер хотя-бы для начала взять А то похоже баги у вас совсем не в п... весь текст скрыт [показать]
     
  • 3.15, Crazy Alex, 21:05, 01/07/2012 [^] [ответить] [смотреть все]  
  • +2 +/
    Портируемость - ещё более-менее С остальным СОВРЕМЕННЫЕ компилируемые языки вр... весь текст скрыт [показать]
     
     
  • 4.27, Аноним, 00:09, 02/07/2012 [^] [ответить] [смотреть все]  
  • +2 +/
    Сказки Запустить питоновый скрипт 5-летней давности может просто не получиться ... весь текст скрыт [показать]
     
     
  • 5.42, ragus, 04:10, 02/07/2012 [^] [ответить] [смотреть все]  
  • +3 +/
    код в студию код в студию желательно что-то сложнее hello world и где есть сок... весь текст скрыт [показать]
     
     
  • 6.52, Аноним, 05:02, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Вот специально для вас буду по ископаемым какашкам рыться Мне хватило того что ... весь текст скрыт [показать]
     
     
  • 7.59, ragus, 06:05, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Зачем вы едите кактус вас кто-то заставляет использовать python почему вы не в... весь текст скрыт [показать]
     
  • 7.120, Аноним, 16:02, 03/07/2012 [^] [ответить] [смотреть все]  
  • +/
    А почему вы решили что скрипты слитые с посторонних сайтов у вас должны работа... весь текст скрыт [показать]
     
  • 6.127, Michael Shigorin, 00:41, 04/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Zope 2 10 подойдёт ... весь текст скрыт [показать]
     
     
  • 7.128, Аноним, 12:42, 04/07/2012 [^] [ответить] [смотреть все]  
  • +/
    >Zope 2.10 подойдёт?

    Нет. Это фреймворк а не скрипт со всеми вытекающими.

     
     
  • 8.139, Michael Shigorin, 01:51, 07/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Досада-то, фреймворк на скриптовом языке уже не скрипт Наверное, cray этого не... весь текст скрыт [показать]
     
  • 4.132, Аноним, 13:04, 04/07/2012 [^] [ответить] [смотреть все]  
  • +/
    А почему вы решили, что python это не компилируемый язык ... весь текст скрыт [показать]
     
  • 3.31, Аноним, 01:20, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Какое отношение имеет к питону особенно про надёжность ... весь текст скрыт [показать]
     
     
  • 4.54, Аноним, 05:07, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Ну как же, сам себя не похвалишь - никто не похвалит В смысле, это был очередно... весь текст скрыт [показать]
     
     
  • 5.70, Аноним, 08:55, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Да, подавляющую часть времени должны занимать собрания, тимбилдинг и корпоративы... весь текст скрыт [показать]
     
     
  • 6.91, Аноним, 16:15, 02/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Аналитика, выбор инструментария 20 времени проекта Кодинг 10 Тесты, тесты, и... весь текст скрыт [показать]
     
     
  • 7.105, Аноним, 17:17, 02/07/2012 [^] [ответить] [смотреть все]  
  • –2 +/
    Читаю и плачу Рецепт изготовления быдло-кода на 100 Слава богу это только фан... весь текст скрыт [показать]
     
     
  • 8.109, Аноним, 17:27, 02/07/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Это как раз рецепт изготовления того что будет работать и не обгадится в первые ... весь текст скрыт [показать]
     
  • 1.4, Аноним, 19:30, 01/07/2012 [ответить] [смотреть все]  
  • +/
    Чем оно лучше Cython?
     
     
  • 2.5, Аноним, 19:34, 01/07/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Тем, что JIT, а потому динамичнее.
     
     
  • 3.96, Анонимоус, 16:49, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    Иными словами: ещё быстрее сжирает память.
     
     
  • 4.134, Аноним, 13:14, 04/07/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Сжирает память экономит время камня ... весь текст скрыт [показать]
     
  • 1.16, добрый дядя, 21:08, 01/07/2012 [ответить] [смотреть все]  
  • +3 +/
    а как же PyPy? оно тоже JIT-нутое, вот лучше бы как раз PyPy на LLVM натаскивали

    и вообще, я верю в светлое будущее баткодовых платформ, когда они будут модульными и шустрыми

     
     
  • 2.138, Аноним, 07:12, 06/07/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    судя по опыту Unladden Swallow, такое натаскивание не принесет ничего кроме лишн... весь текст скрыт [показать] [показать ветку]
     
  • 1.19, Аноним, 21:42, 01/07/2012 [ответить] [смотреть все]  
  • +3 +/
    и отказ от объектов я не спец, но мне казалось что любая переменная или что-л... весь текст скрыт [показать]
     
  • 1.34, Xasd, 02:04, 02/07/2012 [ответить] [смотреть все]  
  • +/
    Exception нельзя из-за того что оно является дочернем Py-объектом? или в чём там проблема случилась?
     
     
     
     
    Часть нити удалена модератором

  • 4.57, б.б., 05:09, 02/07/2012 [^] [ответить] [смотреть все]  
  • +/
    >> ШТООО?
    > JIT там натурально есть :)

    Мы таки везде есть :)

     
  • 1.44, jOKer, 04:25, 02/07/2012 [ответить] [смотреть все]  
  • –2 +/
    Супер круто! Автору респект и уважуха.
    Ушел пробовать
     
  • 1.80, Аноним, 12:01, 02/07/2012 [ответить] [смотреть все]  
  • +1 +/
    Вот это конечно серьёзное ограничение Сильно снижает ценность решения ... весь текст скрыт [показать]
     
     
  • 2.112, Аноним, 22:13, 02/07/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    посмотри код решения, это же наколеночное поделие студента. Не удивительно.
     
  • 1.81, Аноним, 12:20, 02/07/2012 [ответить] [смотреть все]  
  • +/
    а почему наново писать а не Unladden Swallow воскресить?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor