Я использую numpy для числовой линейной алгебры. Я подозреваю, что могу добиться гораздо большей производительности, если внес небольшие изменения в то, как я выполняю определенные вычисления, чтобы они, например, были более эффективными с точки зрения памяти.Инструментарий для числовой линейной алгебры в Python
Мне было интересно, существует ли какая-либо форма инструментария, доступная в python для обнаружения кеша и пропусков TLB. Существует очень хороший апи, PAPI, что я узнал о в недавнем классе, но это не имеет интерфейс Python:
http://icl.cs.utk.edu/papi/overview/index.html
Кроме того, есть хороший способ в целом к профилю NumPy или другой числовой код python? Модуль timeit трудно интегрировать в код. mpi4py имеет хороший способ профилирования с использованием библиотеки MPE. Отрывок из демо-кода (демо/MPE-каротаж/cpilog.py):
communication = MPE.newLogState("Comunicate", "red")
with communication:
comm.Bcast([n, MPI.INT], root=0)
файл журнала создается, который может отображаться в графическом виде. Но это немного MPI.
Спасибо.
В разделе «лучшая производительность» вашего вопроса что вы на самом деле делаете - какие функции numpy, какие размеры vec/array, размер кеша? – denis
Масштабируемая матрица умножается на размеры матриц от размера кеша до гораздо большего. – Paul