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

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

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

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

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

4
Как оператор обратной косой черты в 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; disp('Inv(A)*B'); tic;inv(a)*b;toc; Полученные результаты : For a\b Elapsed time is 0.052838 seconds. For …

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

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

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

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

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

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

3
Могут ли быть решены диагональные плюс фиксированные симметричные линейные системы за квадратичное время после предварительного вычисления?
Существует ли метод 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 . Однако, это нарушается для общего DDD из-за недостаточной коммутативности. Обновление : …

4
Рекомендации по распределению / инициализации портативной многоядерной / NUMA памяти
Когда вычисления с ограниченной пропускной способностью памяти выполняются в средах с общей памятью (например, с потоками через OpenMP, Pthreads или TBB), возникает дилемма, как обеспечить правильное распределение памяти по физической памяти, так что каждый поток в основном обращается к памяти в «местная» шина памяти. Хотя интерфейсы не являются переносимыми, большинство …

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.