Вопросы с тегом «performance»

Вопросы о скорости выполнения и использовании памяти алгоритмами, структурами данных, языками и библиотеками.

66
Каковы хорошие стратегии для улучшения производительности моего кода?

Я работаю в вычислительной науке, и в результате я трачу нетривиальное количество своего времени, пытаясь увеличить научную пропускную способность многих кодов, а также понять эффективность этих кодов. Давайте предположим, что я оценил соотношение производительности и читаемости / возможности...

43
Является ли алгоритмический анализ путем подсчета флопов устаревшим?

На моих курсах по численному анализу я научился анализировать эффективность алгоритмов, подсчитывая количество операций с плавающей запятой (флоп), которые им требуются, в зависимости от размера проблемы. Например, в тексте Trefethen & Bau о числовой линейной алгебре есть даже трехмерные...

41
Что делает Фортран быстрым?

Фортран занимает особое место в численном программировании. Конечно, вы можете создавать хорошие и быстрые программы на других языках, но Fortran продолжает работать очень хорошо, несмотря на свой возраст. Более того, в Фортране проще создавать быстрые программы. Я сделал быстрые программы на C ++,...

36
Как оператор обратной косой черты в MATLAB решает

Я сравнивал несколько своих кодов с «стандартными» кодами MATLAB. Я удивлен результатами. Я запустил пример кода (разреженная матрица) n = 5000; a = diag(rand(n,1)); b = rand(n,1); disp('For a\b'); tic;a\b;toc; disp('For LU'); tic;LULU;toc; disp('For Conj Grad'); tic;conjgrad(a,b,1e-8);toc;...

31
Различия в производительности между ATLAS и MKL?

ATLAS - это бесплатная замена BLAS / LAPACK, которая настраивается на машину при компиляции. MKL - коммерческая библиотека, поставляемая Intel. Сравнимы ли эти две библиотеки с точки зрения производительности или MKL имеет преимущество в некоторых задачах? Если да, то...

29
Какие инструменты или подходы доступны для ускорения кода, написанного на Python?

Предпосылки: я думаю, что я мог бы хотеть портировать некоторый код, который вычисляет матричные экспоненциально-векторные произведения, используя метод подпространства Крылова от MATLAB до Python. (В частности, функция expmvp Jitse Niesen , которая использует алгоритм, описанный в этой статье .)...

24
Когда я должен использовать шаблоны выражений C ++ в вычислительной науке, а когда я * не * должен их использовать?

Предположим, что я работаю над научным кодом на C ++. В недавнем обсуждении с коллегой было высказано мнение, что шаблоны выражений могут быть очень плохой вещью, потенциально делая программное обеспечение компилируемым только на определенных версиях gcc. Предположительно, эта проблема затронула...

22
Каков предпочтительный и эффективный подход для интерполяции многомерных данных?

Каков предпочтительный и эффективный подход для интерполяции многомерных данных? Вещи, о которых я беспокоюсь: производительность и память для построения, единичная / пакетная оценка размеры обработки от 1 до 6 линейный или более высокого порядка возможность получения градиентов (если не линейная)...

21
Могут ли быть решены диагональные плюс фиксированные симметричные линейные системы за квадратичное время после предварительного вычисления?

Существует ли метод O(n3+n2k)O(n3+n2k)O(n^3+n^2 k) для решения kkk линейных систем вида (Di+A)xi=bi(Di+A)xi=bi(D_i + A) x_i = b_i где AAA - фиксированная SPD-матрица, а DiDiD_i - положительные диагональные матрицы? Например, если каждый DiDiD_i скалярен, достаточно вычислить СВД из AAA . Однако,...

21
Как производительность операций с массивами Python / Numpy масштабируется с увеличением размеров массива?

Как масштабируются массивы Python / Numpy с увеличением размеров массива? Это основано на некотором поведении, которое я заметил при тестировании кода Python для этого вопроса: как выразить это сложное выражение с помощью кусочков Проблема в основном заключалась в индексации для заполнения массива....

21
Intel Fortran Compiler: советы по оптимизации при компиляции

Я начну с моего личного опыта в нашей лаборатории. В 9 и 10 днях раньше мы были довольно агрессивны с оптимизацией, компилируя с -O3 и специфичными для процессора флагами (например, -xW -xSSE4.2). Но начиная с ifort 11, мы начали замечать: 1. некоторые несоответствия в результатах (поскольку...

17
В какой степени универсальное и метапрограммирование с использованием шаблонов C ++ полезно в вычислительной науке?

Язык C ++ обеспечивает общее программирование и метапрограммирование с помощью шаблонов. Эти методы нашли свое применение во многих крупномасштабных научных вычислительных пакетах (например, MPQC , LAMMPS , CGAL , Trilinos ). Но что они на самом деле внесли в научное вычисление в значении, которое...

17
Рекомендации по распределению / инициализации портативной многоядерной / NUMA памяти

Когда вычисления с ограниченной пропускной способностью памяти выполняются в средах с общей памятью (например, с потоками через OpenMP, Pthreads или TBB), возникает дилемма, как обеспечить правильное распределение памяти по физической памяти, так что каждый поток в основном обращается к памяти в...

15
Реализация рационального приближения к функции с открытым исходным кодом

Я ищу некоторую реализацию с открытым исходным кодом (любой из Python, C, C ++, Fortran в порядке) рационального приближения к функции. Что-то в статье [1]. Я даю ему функцию, и она возвращает мне два полинома, отношение которых является приближением на данном интервале, и ошибка колеблется с той...

14
Как бороться со слишком большим количеством данных?

Наши моделирования динамики плазмы часто дают слишком много информации. Во время моделирования мы записываем различные физические свойства в сетке (x, y, z, t), которая равна (8192x1024x1024x1500), по крайней мере, для 10 свойств. Эта информация обрабатывается после завершения моделирования. С этим...

14
Сравнение итерационных методов: количество итераций и время процессора

Я сравниваю два итерационных метода для обращения случайных квадратных матриц. Поскольку матрицы являются случайными, каждый тестовый пример занимает как разное количество итераций, так и разное затраченное время. Мой вопрос, помимо среднего времени ЦП, является средним значением итераций, взятых...

13
Подсчет FLOP для библиотечных функций

При оценке числа FLOP в простой функции часто можно просто перейти к выражению, объединяющему основные арифметические операторы. Однако в случае математических утверждений, включающих четное деление, этого сделать нельзя, и можно ожидать, что он сможет сравнивать с подсчетами FLOP функций только с...

13
Есть ли какая-то польза от компиляции LAPACK из исходного кода по сравнению с установкой готового пакета из Ubuntu?

Я знаю, что ATLAS может оптимизировать себя для машины, на которой он компилируется, и, таким образом, максимальная выгода достигается компиляцией из исходного кода. Есть ли польза от компиляции LAPACK из исходного кода? Было бы намного проще просто установить готовый...

13
Расчет разреженной структуры для матриц конечных элементов

Вопрос: Какие методы доступны для точного и эффективного расчета разреженной структуры матрицы конечных элементов? Информация: я работаю над решателем уравнения давления Пуассона, использую метод Галеркина с квадратичной базой Лагранжа, написанный на C, и использую PETSc для хранения разреженных...

13
Использование памяти в фортране при использовании массива производного типа с указателем

В этом примере программы я делаю одно и то же (по крайней мере, мне так кажется) двумя разными способами. Я запускаю это на своем компьютере с Linux и наблюдаю за использованием памяти с помощью top. Используя gfortran, я обнаружил, что в первом случае (между «1» и «2») используемая память...