Форум сайта python.su
Возникла необходимость делать расчеты побыстрее, на многоядерных системах с общей памятью. Работаю с библиотеками numpy, scipy. Разобрался как с OpenMP ускоряться, но приходится писать модуль на Си, и, желания переписывать матричные расчеты нет …
1. существуют ли параллельные версии функций решения систем линейных алгебраических уравнений, вычислений номр .. . из пакета numpy.linalg? Особо интересует параллельная версия numpy.linalg.solve.
2. существует ли что-то из области Python/numpy ( может похожие библиотеки/пакеты), чтобы параллелить матричные расчеты, не переходя к циклам.
P.S. гуглю, но плохо с английским …
Офлайн
Это будет неэффективно. Нужно или параллелить поток исполнения, или использовать экзотику вроде видеокарточек.
Офлайн
Shaman
Согласен. GIL никто не отменял. Даже на конференции было сказано, что написание модулей на Си и оборачивание их Boost ничего не меняет…
eiler13
Большая часть numpy уже реализована в Си (кстати, именно для повышения быстродействия), посему перепиливание тонн кода не даст сильного прироста (я так думаю). Да и сложно будет пилить без технического английского.
P.S. Вот ссылочка - гляньте если интересно Бизли Д. “Как устроен GIL в Python” (перевод).
Отредактировано 4kpt (Июль 29, 2013 21:59:04)
Офлайн
Спасибо, про GIL не знал, но и не пытался Питоновские потоки запускать
что касается статьи, то на практике ускорять получилось при написании модулей на С+OpenMP с weave или ctype - проверил ) Но, если идти по этому пути и переписывать весь код на Си, то уже использовать Питон не к чему. Выхода в виде параллельной версии numpy (параллелится на уровне модулей Си) я так понимаю не существует. Не понятно, кстати, почему - ведь, например, поэлементное умножение матрицы на матрицу и ряд других матричных операций является идеальным параллельным алгоритмом и при сборке С-ишного кода можно использовать OpenMP …
про видеокарту можно ссылочки
Офлайн
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/
Офлайн
Еще есть numexpr
Офлайн
eiler13Конечно можно.
про видеокарту можно ссылочки
Офлайн