Уведомления

Группа в Telegram: @pythonsu

#1 Июль 29, 2013 21:03:45

eiler13
Зарегистрирован: 2013-02-25
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

расспараллелить расчет python/numpy

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

1. существуют ли параллельные версии функций решения систем линейных алгебраических уравнений, вычислений номр .. . из пакета numpy.linalg? Особо интересует параллельная версия numpy.linalg.solve.

2. существует ли что-то из области Python/numpy ( может похожие библиотеки/пакеты), чтобы параллелить матричные расчеты, не переходя к циклам.

P.S. гуглю, но плохо с английским …

Офлайн

#2 Июль 29, 2013 21:36:45

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

расспараллелить расчет python/numpy

Это будет неэффективно. Нужно или параллелить поток исполнения, или использовать экзотику вроде видеокарточек.

Офлайн

#3 Июль 29, 2013 21:56:27

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

расспараллелить расчет python/numpy

Shaman
Согласен. GIL никто не отменял. Даже на конференции было сказано, что написание модулей на Си и оборачивание их Boost ничего не меняет…
eiler13
Большая часть numpy уже реализована в Си (кстати, именно для повышения быстродействия), посему перепиливание тонн кода не даст сильного прироста (я так думаю). Да и сложно будет пилить без технического английского.

P.S. Вот ссылочка - гляньте если интересно Бизли Д. “Как устроен GIL в Python” (перевод).



Отредактировано 4kpt (Июль 29, 2013 21:59:04)

Офлайн

#4 Июль 31, 2013 13:56:11

eiler13
Зарегистрирован: 2013-02-25
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

расспараллелить расчет python/numpy

Спасибо, про GIL не знал, но и не пытался Питоновские потоки запускать

что касается статьи, то на практике ускорять получилось при написании модулей на С+OpenMP с weave или ctype - проверил ) Но, если идти по этому пути и переписывать весь код на Си, то уже использовать Питон не к чему. Выхода в виде параллельной версии numpy (параллелится на уровне модулей Си) я так понимаю не существует. Не понятно, кстати, почему - ведь, например, поэлементное умножение матрицы на матрицу и ряд других матричных операций является идеальным параллельным алгоритмом и при сборке С-ишного кода можно использовать OpenMP …

про видеокарту можно ссылочки

Офлайн

#5 Авг. 1, 2013 08:47:34

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

расспараллелить расчет python/numpy

Офлайн

#6 Авг. 1, 2013 17:21:38

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

расспараллелить расчет python/numpy

Еще есть numexpr

Офлайн

#7 Авг. 2, 2013 20:10:06

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

расспараллелить расчет python/numpy

eiler13
про видеокарту можно ссылочки
Конечно можно.
https://pypi.python.org/pypi?%3Aaction=search&term=cuda
https://pypi.python.org/pypi?%3Aaction=search&term=opencl

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version