Найти - Пользователи
Полная версия: расспараллелить расчет python/numpy
Начало » Python для экспертов » расспараллелить расчет python/numpy
1
eiler13
Возникла необходимость делать расчеты побыстрее, на многоядерных системах с общей памятью. Работаю с библиотеками numpy, scipy. Разобрался как с OpenMP ускоряться, но приходится писать модуль на Си, и, желания переписывать матричные расчеты нет …

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

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

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

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

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

про видеокарту можно ссылочки
Alen
Theano и SymPy в помощь. Задействует OpenMP и GPU.

http://deeplearning.net/software/theano/
http://matthewrocklin.com/blog/work/2013/03/19/SymPy-Theano-part-1/
http://habrahabr.ru/post/173819/
reclosedev
Еще есть numexpr
Shaman
eiler13
про видеокарту можно ссылочки
Конечно можно.
https://pypi.python.org/pypi?%3Aaction=search&term=cuda
https://pypi.python.org/pypi?%3Aaction=search&term=opencl
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB