Сколько из NumPy и SciPy находится в C?

Ctrl + K , Ctrl + C Комментарий блок

Ctrl + K , Ctrl + U Некомментарий блок

18
задан Alex Riley 6 June 2015 в 20:22
поделиться

4 ответа

  1. Я бы поставил под сомнение любой тест, который не показывает источник для каждой реализации (или я что-то пропустил)? Вполне возможно, что одно или оба этих решения плохо закодированы, что приведет к несправедливой оценке производительности одного или обоих языков. [Edit] Ой, теперь я вижу источник. Однако, как отмечали другие, он не использует библиотеки NumPy / SciPy, поэтому эти тесты не помогут вам принять решение.
  2. Я считаю, что подавляющее большинство NumPy и SciPy написано на C и для удобства обернуто на Python
  3. Вероятно, это зависит от того, что вы делаете на любом из этих языков, относительно того, сколько накладных расходов существует для конкретного приложения.

Я использую Python для обработки и анализа данных уже пару лет. так что я бы сказал это ' безусловно, соответствует цели.

Чего вы пытаетесь достичь в конце концов? Если вам нужен быстрый способ разработки читаемого кода, Python - отличный вариант и, безусловно, достаточно быстрый для первого удара по тому, что вы пытаетесь решить.

Почему бы не создать bash для каждого небольшого подмножества ваша проблема и сравните результаты с точки зрения времени разработки и времени выполнения? Тогда вы сможете принять объективное решение на основе некоторых релевантных данных ... или, по крайней мере, так я бы поступил: -)

Почему бы не провести по bash для каждого небольшого подмножества вашей проблемы и сравнить результаты с точки зрения времени разработки и времени выполнения? Тогда вы сможете принять объективное решение на основе некоторых релевантных данных ... или, по крайней мере, так я бы поступил: -)

Почему бы не провести по bash для каждого небольшого подмножества вашей проблемы и сравнить результаты с точки зрения времени разработки и времени выполнения? Тогда вы сможете принять объективное решение на основе некоторых релевантных данных ... или, по крайней мере, я бы так поступил: -)

17
ответ дан 30 November 2019 в 07:49
поделиться

Многие из них написаны на C или fortran. Вы можете переписать горячие циклы на C (или использовать один из бесчисленных способов ускорить работу Python, я предпочитаю boost / weave), но разве это имеет значение?

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

5
ответ дан 30 November 2019 в 07:49
поделиться

Здесь есть лучшее сравнение (не тест, но показывает способы ускорения Python). NumPy в основном написан на C. Основное преимущество Python состоит в том, что существует несколько способов очень простого расширения вашего кода с помощью C (ctypes, swig, f2py) / C ++ (boost.python, weave. inline, weave.blitz) / Fortran (f2py) - или даже просто добавив аннотации типов в Python, чтобы их можно было обработать в C (cython). Я не думаю, что есть много вещей, сравнительно простых для C # или Java - по крайней мере, это так безобразно обрабатывает передачу числовых массивов разных типов (хотя я думаю, что сторонники будут возражать, поскольку у них нет потери производительности Python, меньше необходимости к).

6
ответ дан 30 November 2019 в 07:49
поделиться

Большая часть Numpy находится в C, но большая часть Code Code - «BoaterPlate» для обработки всех Грязные детали интерфейса Python / C. Я думаю, что соотношение C vs. Python составляет около 50/50 атм для Numpy.

Я не слишком знаком с деталями низкого уровня на основе VM, но я считаю, что стоимость интерфейса будет выше из-за ограничений, поставленных на JVM и .Clr. Одна из причин, по которой Numpy часто быстрее, чем аналогичные среды, - это представление памяти и как массивы совместно используются / передаются между функциями. Принимая во внимание, что большинство окружающей среды (Matlab и R как также считают) используют копирование в записи, чтобы пройти массивы между функциями, Numpy Use. Но делать это в Э.Г. JVM будет сложно (из-за ограничений о том, как использовать указатель и т. Д. ...). Это сделано (ранний порт Numpy для Jython существует), но я не знаю, как они решают этот вопрос. Возможно, C ++ / CLI сделает это проще, но у меня нулевой опыт с этой средой.

5
ответ дан 30 November 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: