Запитання з тегом «performance»

Питання щодо швидкості виконання та використання пам'яті алгоритмів, структур даних, мов та бібліотек.

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

7
Чи застарілий алгоритмічний аналіз за допомогою флоп-підліку?
На своїх курсах чисельного аналізу я навчився аналізувати ефективність алгоритмів, підраховуючи кількість потрібних їм операцій з плаваючою комою (флопи), залежно від розміру задачі. Наприклад, у тексті Трефетена та Бау про числовій лінійній алгебрі є навіть тривимірні зображення підрахунків флопу. Зараз модно говорити, що "флопи безкоштовні", тому що затримка пам'яті для …

4
Що робить Фортран швидким?
Фортран займає особливе місце в чисельному програмуванні. Ви, звичайно, можете робити гарне та швидке програмне забезпечення іншими мовами, але Fortran дуже добре працює, незважаючи на свій вік. Крім того, у 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 LU Elapsed …

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: поради щодо оптимізації при компіляції
Почну з особистого досвіду в нашій лабораторії. Повертаючись до ifort 9 та 10 днів, ми були досить агресивними щодо оптимізацій, компілюючи з -O3 та специфічними для процесора прапорцями (наприклад, -xW -xSSE4.2). Але, починаючи з ifort 11, ми почали помічати: 1. деякі невідповідності результатів (оскільки семантика не збереглася) 2. менші вигоди …

1
Як масштабується ефективність операцій масиву Python / Numpy зі збільшенням розмірів масиву?
Як масштабувати масиви Python / Numpy зі збільшенням розмірів масиву? Це ґрунтується на деякій поведінці, яку я помітив під час тестування коду Python для цього питання: Як висловити цей складний вираз за допомогою nummy-фрагментів Проблема в основному полягала в індексації для заповнення масиву. Я виявив, що переваги використання (не дуже …

3
Чи можна вирішити діагоналі плюс нерухомі симетричні лінійні системи в квадратичний час після попереднього обчислення?
Чи існує метод О ( н.)3+ н2к )O(n3+n2k)O(n^3+n^2 k) для розв’язування кkk лінійних систем вигляду ( Di+ А ) хi= bi(Di+A)xi=bi(D_i + A) x_i = b_i де є фіксованою матрицею SPD, а - матрицями з позитивною діагоналлю?Д яАAADiDiD_i Наприклад, якщо кожен є скаляром, досить обчислити СВД з . Однак це …

6
Наскільки загальне та метапрограмування з використанням шаблонів C ++ корисно в обчислювальній науці?
Мова C ++ забезпечує загальне програмування та метапрограмування через шаблони. Ці методи знайшли свій шлях у багато великих наукових обчислювальних пакети (наприклад, MPQC , LAMMPS , CGAL , Trilinos ). Але що вони насправді сприяли науково-обчислювальним значенням, що виходить за рамки загальних, неметальних мов, таких як C або Fortran, з …

4
Передовий досвід розподілу / ініціалізації переносу багатоядерної / NUMA пам'яті
Коли обчислення з обмеженою пропускною здатністю пам’яті виконуються в середовищах спільної пам’яті (наприклад, з потоком через OpenMP, Pthreads або TBB), існує дилема, як забезпечити правильну розподіл пам’яті по фізичній пам’яті, таким чином, щоб кожен потік в основному отримував доступ до пам’яті "локальна" шина пам'яті. Хоча інтерфейси не є портативними, у …

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

3
Порівняння методів ітерації: кількість ітерацій проти процесора
Я порівнюю два ітераційні методи інвертування випадкових квадратних матриць. Оскільки матриці є випадковими, кожен тестовий випадок приймає як різну кількість ітерацій, так і різний минулий час. Моє питання, крім середнього часу процесора, - це середнє значення ітерацій, прийнятих обома методами, корисна інформація для порівняння методів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.