LINUX.ORG.RU
ФорумTalks

будет ли C быстрее питона?


0

2

выполняю рассчеты с помощью numpy и scipy. В принципе ничего сложного, перемножение матриц и свертку. получу ли я прирост хотя бы в десять раз, переписав код на С, используя LAPACK?

★★☆☆☆

Последнее исправление: dikiy (всего исправлений: 1)

Будет, а во сколько раз - сам тестируй.

Lavos ★★★★★
()

Цитата из педивикии: Internally, both MATLAB and NumPy rely on BLAS and LAPACK for efficient linear algebra computations.

ptarh ★★★★★
()
Ответ на: комментарий от stevejobs

а есть какие-нибудь данные с профайлера, что именно тормозит, итп?

ну, очевидно, что вычисления тормозят :)

dikiy ★★☆☆☆
() автор топика

В 10 раз считать быстрее не будет, а вот времени на переписывание раз в 10 больше точно уйдёт. Ну это если следовать закону Мёрфи.

luke ★★★★★
()
Ответ на: комментарий от luke

всем спс. Я, в принципе так и думал.

dikiy ★★☆☆☆
() автор топика

Будет ли Пикачу быстрее Слоупока?

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от Reset

В 10 - не будет.

Будет в 100, если подложить реализацию blas от вендора железяки.

В 100 - не будет. И вопрос звучал как «что будет, если переписать программу?», а не как «что будет, если переписать BLAS?».

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

В 100 - не будет.

В целом не будет, местами будет именно в 100 раз, проверял лично.

что будет, если переписать BLAS?

Вопрос некорректен, так как blas это только api, а реализаций тьма.

Reset ★★★★★
()
Ответ на: комментарий от Reset

местами будет именно в 100 раз

Местами, при определенных условиях и редко выполняемых ограничениях... тоже не будет.

что будет, если переписать BLAS?

Вопрос некорректен

Сформулируй корректно, если не лень - мне-то пофиг, потому что ТС не спрашивал о замене BLAS и я не о замене отвечал.

tailgunner ★★★★★
()

В прошлом году тесно общался с одним упоротым на рутноне рутнонщиком. Говорил, что numpy на С и так написан. Так что, думаю, 10 раз? - и не мечтай.

nanoolinux ★★★★
()

Си на числодробилках может быть и медленнее numpy. Чтобы получить ускорение нужно писать на фортране.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Фортране77. У него компилятор код быстрее делает за счёт отсутствия оверхеда на поддержки переключения глобальной таблицы страниц памяти.

nanoolinux ★★★★
()
Ответ на: комментарий от dikiy

ну, очевидно, что вычисления тормозят :)

Не факт, что это в принципе исправимо. Может быть, они просто сложные?

Axon ★★★★★
()

перепиши с нуля; что такое ЛАПАК - понятия не имею, пошел гуглить.

reprimand ★★★★★
()
Ответ на: комментарий от Axon

ну, очевидно, что вычисления тормозят :)

Не факт, что это в принципе исправимо. Может быть, они просто сложные?

не столько сложные, сколько тупорылые :) матрицы 500x500. И они численно дифференцируются и итерируются.

По-хорошему надо применить другой мат. метод, но уже нет времени думать об этом и лопатить теорию.

dikiy ★★☆☆☆
() автор топика

У меня тут знакомый решил ускорить решение на С# с помощью Си и GSL. Прироста не получил, поскольку сделал все это ужасным быдлокодом, как привык на своем быдло-язычке. На Си у него получилось, естественно, в один поток, с циклами и кучей оберток в стиле ООП. Так что прежде переписывания, убедитесь, что руки у вас растут из нужного места. Иначе даже не пытайтесь.

iVS ★★★★★
()
Ответ на: комментарий от dikiy

не столько сложные, сколько тупорылые :) матрицы 500x500. И они численно дифференцируются и итерируются.

Я имел в виду алгоритмическую сложность. :-)

Axon ★★★★★
()

ААааАААА БЛАЯЯЯЯААЯя. ЙАНАШОЛПРОБЛЕМУ!!!

работать быстрее не стало, но теперь, сцуко, работает как надо!

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от DNA_Seq

Си на числодробилках может быть и медленнее numpy. Чтобы получить ускорение нужно писать на фортране.

Кто голый Си использует, ты что? Со специальными либами для Си, фортран его не уделает. Ты еще скажи, что он циклы лучше оптимизирует, лол)))

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.