Страница 1 из 3

Python vs .....

Добавлено: 07 фев 2018, 09:53
borei
Всем известно что питон на текущий момент является одним из доминирующих языков, возможно даже самым самым. Успех достигнут во многом благодаря гуглу. Но так ли хорош питон на самом деле. Мой основной вопрос на предмет производительности в числодробильных задачах, более предметно - линейная алгебра, операции над матрицами.
Сколько флопов можно выжать на питоне при перемножении матриц ?
Используем только питон. Результаты полученные на С-шных библиотеках, особенно чего-нибудь типа BLAS или LAPACK не рассматриваются, только чистый питон.

Re: Python vs .....

Добавлено: 07 фев 2018, 11:20
alpax
borei писал(а):Всем известно что питон на текущий момент является одним из доминирующих языков, возможно даже самым самым. Успех достигнут во многом благодаря гуглу.
По-моему не имеет смысла сравнивать скриптовый язык с компилируемыми языками низкого уровня.
Да, Python может быть популярным из-за простоты языка, распространения Web, и большого числа чайников, пытающихся начать программировать, но он в принципе не подходит для некоторых применений. Хотя для Web и около - да, наверно - так же как JavaScript, PHP и подобные, с которыми он в одном классе. Но сравнивать с C/C++ - это даже хуже, чем типичное сравнение яблока с апельсином, которые оба - сладкие, круглые, ярко окрашенные фрукты, но не одно и тоже.
borei писал(а):Но так ли хорош питон на самом деле. Мой основной вопрос на предмет производительности в числодробильных задачах, более предметно - линейная алгебра, операции над матрицами.
Сколько флопов можно выжать на питоне при перемножении матриц ?
Какие нафиг матрицы и числодробильные задачи в интерпретируемом скрипте?!? Только C/C++ и другие компилируемые языки!
Или это чисто теоретическое исследование, просто в рамках искусственно ограниченных условий?

Re: Python vs .....

Добавлено: 07 фев 2018, 11:31
borei
alpax писал(а):
borei писал(а):Всем известно что питон на текущий момент является одним из доминирующих языков, возможно даже самым самым. Успех достигнут во многом благодаря гуглу.
По-моему не имеет смысла сравнивать скриптовый язык с компилируемыми языками низкого уровня.
Да, Python может быть популярным из-за простоты языка, распространения Web, и большого числа чайников, пытающихся начать программировать, но он в принципе не подходит для некоторых применений. Хотя для Web и около - да, наверно - так же как JavaScript, PHP и подобные, с которыми он в одном классе. Но сравнивать с C/C++ - это даже хуже, чем типичное сравнение яблока с апельсином, которые оба - сладкие, круглые, ярко окрашенные фрукты, но не одно и тоже.
borei писал(а):Но так ли хорош питон на самом деле. Мой основной вопрос на предмет производительности в числодробильных задачах, более предметно - линейная алгебра, операции над матрицами.
Сколько флопов можно выжать на питоне при перемножении матриц ?
Какие нафиг матрицы и числодробильные задачи в интерпретируемом скрипте?!? Только C/C++ и другие компилируемые языки!
Или это чисто теоретическое исследование, просто в рамках искусственно ограниченных условий?
Я сейчас переношу свой проект с С/C++, где приличный обьем числодробильни на другой язык - lisp. Да в производительности потеряю, но скорее всего поимею в гибкости и скорости разработки. Хотелось бы посмотреть на производительность в сравнении с питоном.
По поводу компилируемый интерпретируемый - я не знаю как это относить к современным языкам. Питон делает байт-код (могу ошибиться) - это будет компиляция или что ? Lisp - компилирует на лету, но с другой стороны полностью предоставляет REPL и все плюшки взаимодействия со средой. С/C++ - только компиляция, со всеми вытекающими.
Да на текущий момент - теоретическое исследование с наложенными ограничениями.

Re: Python vs .....

Добавлено: 07 фев 2018, 11:47
alpax
borei писал(а):Я сейчас переношу свой проект с С/C++, где приличный обьем числодробильни на другой язык - lisp. Да в производительности потеряю, но скорее всего поимею в гибкости и скорости разработки.
Это однозначно конечно.
borei писал(а):По поводу компилируемый интерпретируемый - я не знаю как это относить к современным языкам. Питон делает байт-код (могу ошибиться) - это будет компиляция или что ? Lisp - компилирует на лету, но с другой стороны полностью предоставляет REPL и все плюшки взаимодействия со средой. С/C++ - только компиляция, со всеми вытекающими.
Байт-код - немного лучше, чем прямая интерпретация - быстрее "исходный текст" читается, и гораздо меньше надо проверять при выполнении программы - так, например, Java и C# работают. Но все равно это далеко не компиляция в native code, в отличие от которого при выполнении программы в байт-коде делается на порядок больше операций: на одну команду процессора, делающую реальную работу, выполняется еще от нескольких штук до нескольких десятков и даже сотен команд, расшифровывающих байт-код и приводящих к той самой реальной команде.
borei писал(а):Да на текущий момент - теоретическое исследование с наложенными ограничениями.
Ну, это имеет право на существование. :)

Re: Python vs .....

Добавлено: 07 фев 2018, 12:13
Pektusin
alpax писал(а):По-моему не имеет смысла сравнивать скриптовый язык с компилируемыми языками низкого уровня.
Python не совсем скриптовый язык, потому что соурс компилируется в байткод и исполняется виртуальной машиной (файлы .pyc)
Да, Python может быть популярным из-за простоты языка, распространения Web, и большого числа чайников, пытающихся начать программировать, но он в принципе не подходит для некоторых применений.
Не знаю, у нас в embedded Python используется в полный рост. У меня сын писал бридж между С и Python - можно комбинировать языки, если нужно исполнять критичные к производительности куски кода или просто реюзать С-код.

зы: про чайников ты погорячился :)

Re: Python vs .....

Добавлено: 07 фев 2018, 12:24
AndreyA
Мне нравится когда люди рассуждают на темы в которых совсем не понимают.
Python в данное время очень часто используется в научной среде для обработки математических моделей и статистического анализа ну и в data science. Еще ко всему прочему надо добавить что питон очень хорош тем что для него очень много модулей которые реализуют нейронные сети и математический аппарат.
В общем, миллионы мух не могут ошибаться :)

Re: Python vs .....

Добавлено: 07 фев 2018, 12:41
AndreyA
Ну и вот на тему скорости - https://www.ibm.com/developerworks/comm ... on?lang=en

Re: Python vs .....

Добавлено: 07 фев 2018, 12:55
LeoV
AndreyA писал(а): В общем, миллионы мух не могут ошибаться :)
... в поисках дерьма. :D

Re: Python vs .....

Добавлено: 07 фев 2018, 14:02
alpax
Pektusin писал(а):Python не совсем скриптовый язык, потому что соурс компилируется в байткод и исполняется виртуальной машиной (файлы .pyc)
Да сейчас многие скриптовые языки компилируются в байт-код. Тот же JavaScript, например - если не заранее, то на уровне JS-engine в браузере.
Pektusin писал(а):Не знаю, у нас в embedded Python используется в полный рост. У меня сын писал бридж между С и Python - можно комбинировать языки, если нужно исполнять критичные к производительности куски кода или просто реюзать С-код.
Что и требовалось доказать. :)
Pektusin писал(а):зы: про чайников ты погорячился :)
Я ж не говорю, что "только чайники". Просто, поскольку язык достаточно простой, при этом распространенный, его сейчас многие используют для обучения программированию.

Re: Python vs .....

Добавлено: 07 фев 2018, 14:21
alpax
AndreyA писал(а):Мне нравится когда люди рассуждают на темы в которых совсем не понимают.
Это ты про меня что ли?
Произошла революция в области байт-кодовых и скриптовых языков, про которую я не слышал?
AndreyA писал(а):Python в данное время очень часто используется в научной среде для обработки математических моделей и статистического анализа ну и в data science.
И чо? :)
Естественно - пользоваться им удобно, уровень вхождения в тему - низкий, как с большинством скриптовых языков. О чем я и говорил выше - про "чайников" в области программирования, которыми многие ученые по сути являются, потому что это не основное их направление деятельности.
AndreyA писал(а):Еще ко всему прочему надо добавить что питон очень хорош тем что для него очень много модулей которые реализуют нейронные сети и математический аппарат.
Именно по той же причине - их проще разрабатывать тем же ученым. А многие модули наверняка включают в себя библиотеки, написанные на том же C - для тех функций, где нужна высокая производительность.
AndreyA писал(а):В общем, миллионы мух не могут ошибаться :)
Вот с этим я полностью согласен. Только я не уверен, что ты имел в виду именно это. :)
AndreyA писал(а):Ну и вот на тему скорости - https://www.ibm.com/developerworks/comm ... on?lang=en
Замечательно! Если есть хороший компилятор, тогда естественно производительность увеличивается до уровня C - и снова лишь подтверждает, что я говорил выше: язык, компилируемый в native code надо сравнивать с компилируемым.

Re: Python vs .....

Добавлено: 09 фев 2018, 21:11
Stanislav
AndreyA писал(а): Python в данное время очень часто используется в научной среде для обработки математических моделей и статистического анализа ну и в data science.
Все это благобдабадаря [(с) Масяня] тому, что появились дешевые Фальконы Хэви в мире процессоров :roll:

Re: Python vs .....

Добавлено: 09 фев 2018, 21:19
Stanislav
alpax писал(а):при выполнении программы в байт-коде делается на порядок больше операций: на одну команду процессора, делающую реальную работу, выполняется еще от нескольких штук до нескольких десятков и даже сотен команд, расшифровывающих байт-код и приводящих к той самой реальной команде.
А я думал там ХотСпот рулит... :roll:

Re: Python vs .....

Добавлено: 10 фев 2018, 20:53
putanik
AndreyA писал(а):Ну и вот на тему скорости - https://www.ibm.com/developerworks/comm ... on?lang=en
очень любительский пример. человек просто не понимает что делает.

а вообше-то, по хорошему, математику обычно прописывают на ассемблере.

Re: Python vs .....

Добавлено: 10 фев 2018, 21:17
AndreyA
Вот этот человек не понимает - https://www.linkedin.com/in/jfpuget/ ?
Вы уверены что вы лучше этого человека понимаете? Я вот как то не очень в этом уверен.

Re: Python vs .....

Добавлено: 10 фев 2018, 21:29
LeoV
putanik писал(а):
AndreyA писал(а):Ну и вот на тему скорости - https://www.ibm.com/developerworks/comm ... on?lang=en
очень любительский пример. человек просто не понимает что делает.

а вообше-то, по хорошему, математику обычно прописывают на ассемблере.
одноразовую обработку результатов на ассемлере, и даже на С++ никто прописывать не будет