Пакеты numpy и scipy предоставляют прекрасные возможности для быстрого решения различных вычислительных задач. Концепция универсальных функций (ufunc), работающих как со скалярными значениями, так и с массивами различных размерностей, позволяет получить высокую производительность при сохранении присущей языку Python простоты и элегантности. Универсальная функция обычно используются для выполнения одной операции над большим массивом данных, что идеально подходит для оптимизации с помощью SIMD-инструкций, однако мне не удалось найти готового решения, основанного на свободном программном обеспечении и позволяющего использовать SIMD для вычисления в numpy таких математических функций, как синус, косинус и экспонента. Реализовывать алгоритмы вычисления этих функций с нуля совсем не хотелось, но к счастью в интернете нашлось несколько свободных библиотек на языке «С». Преодолев лень сомнения, я решил написать собственный numpy-модуль, предлагающий универсальные функции для синуса, косинуса и экспоненты. За подробностями и результатами тестов добро пожаловать под кат.
Читать полностью »
Метка «scipy»
Пишем numpy-модуль для ускорения математических функций с помощью SIMD-инструкций
2013-10-25 в 8:21, admin, рубрики: python, scipy, simd, аппаратное ускорение, высокая производительность, Программирование, метки: scipy, simd, аппаратное ускорениеРазбор задач 1 тура школы программистов HeadHunter
2012-10-16 в 20:00, admin, рубрики: headhunter.ru, python, scipy, Алгоритмы, Программирование, Спортивное программирование, метки: headhunter.ru, python, scipy Прошел первый раунд отбора участников в школу программистов HeadHunter, анонс на хабре
Где после заполнения анкеты предлагалось решить 5 задачек
Читать полностью »
Python / Python, scipy.weave и openMP — разгоняем код
2012-01-30 в 20:04, admin, рубрики: Новости, метки: openmp, python, scipy Здравствуйте %username%, данная статья посвящена проблеме увеличения скорости математических вычислений на основе языка python с использованием scipy.weave и openMP.
Многие могут задаться вопросом: «Зачем вообще использовать python для математических вычислений?», но мы не будем отвечать на «вечные» вопросы, как и не будем рассматривать множество других решений данной проблемы, таких как, например, psyco.
Инструменты
Как описано выше, наш инструмент — это библиотека scipy.weave, а также библиотека openMP.scipy — набор библиотек для вычислений в прикладной математике и науке. openMP — открытый стандарт для распараллеливания программ наЧитать полностью »