Lavoro nella scienza computazionale e, di conseguenza, passo una quantità non banale del mio tempo cercando di aumentare il rendimento scientifico di molti codici, oltre a comprendere l'efficienza di questi codici. Supponiamo di aver valutato il rapporto tra prestazioni / leggibilità / riusabilità / manutenibilità del software su cui sto …
Nei miei corsi di analisi numerica, ho imparato ad analizzare l'efficienza degli algoritmi contando il numero di operazioni in virgola mobile (flop) di cui hanno bisogno, in relazione alla dimensione del problema. Ad esempio, nel testo di Trefethen & Bau sull'algebra lineare numerica, ci sono persino immagini 3D dei conteggi …
Fortran occupa un posto speciale nella programmazione numerica. Puoi sicuramente creare software buono e veloce in altre lingue, ma Fortran continua a funzionare molto bene nonostante la sua età. Inoltre, è più facile creare programmi veloci in Fortran. Ho realizzato programmi veloci in C ++, ma devi stare più attento …
Stavo confrontando alcuni dei miei codici con codici MATLAB "stock". Sono sorpreso dai risultati. Ho eseguito un codice di esempio (Sparse Matrix) 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; Risultati: For a\b Elapsed time is 0.052838 …
ATLAS è un sostituto BLAS / LAPACK gratuito che si sintonizza sulla macchina durante la compilazione. MKL è la libreria commerciale fornita da Intel. Queste due librerie sono comparabili quando si tratta di prestazioni o MKL ha il sopravvento per alcune attività? Se sì, quali?
Background: penso che potrei voler portare un po 'di codice che calcola i prodotti a vettore esponenziale della matrice usando un metodo subspaziale Krylov da MATLAB a Python. (In particolare, la funzione expmvp di Jitse Niesen , che utilizza un algoritmo descritto in questo documento .) Tuttavia, so che a …
Supponiamo che sto lavorando su un codice scientifico in C ++. In una recente discussione con un collega, è stato affermato che i modelli di espressione potrebbero essere davvero una brutta cosa, rendendo potenzialmente il software compilabile solo su alcune versioni di gcc. Presumibilmente, questo problema ha interessato alcuni codici …
Qual è l'approccio preferito ed efficiente per l'interpolazione di dati multidimensionali? Cose di cui sono preoccupato: prestazioni e memoria per costruzione, valutazione singolo / batch dimensioni di movimentazione da 1 a 6 lineare o di ordine superiore capacità di ottenere gradienti (se non lineari) griglia regolare vs sparsa usando come …
Inizierò con la mia esperienza personale nel nostro laboratorio. Negli ifort 9 e 10 giorni, eravamo piuttosto aggressivi con le ottimizzazioni, compilando con -O3 e flag specifici del processore (-xW -xSSE4.2 per esempio). Ma a partire da ifort 11, abbiamo iniziato a notare: 1. alcune incongruenze nei risultati (perché la …
Come si adattano le matrici Python / Numpy all'aumentare delle dimensioni dell'array? Questo si basa su alcuni comportamenti che ho notato durante il benchmarking del codice Python per questa domanda: Come esprimere questa espressione complicata usando le sezioni intorpidite Il problema riguardava principalmente l'indicizzazione per popolare un array. Ho scoperto …
Esiste un metodo per risolvere sistemi lineari della forma dove è una matrice SPD fissa e sono matrici diagonali positive?k ( D i + A ) x i = b i A D iO(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_iAAADiDiD_i Ad esempio, se ogni è scalare, è sufficiente calcolare la …
Quando vengono eseguiti calcoli limitati della larghezza di banda della memoria in ambienti di memoria condivisa (ad esempio threading tramite OpenMP, Pthreads o TBB), esiste un dilemma su come garantire che la memoria sia distribuita correttamente nella memoria fisica , in modo tale che ciascun thread acceda principalmente alla memoria …
Il linguaggio C ++ fornisce una programmazione e una metaprogrammazione generiche attraverso modelli. Queste tecniche hanno trovato la loro strada in molti pacchetti di calcolo scientifico su larga scala (ad esempio, MPQC , LAMMPS , CGAL , Trilinos ). Ma cosa hanno effettivamente contribuito al calcolo scientifico in un valore …
Sto cercando un'implementazione open source (qualsiasi di Python, C, C ++, Fortran va bene) di approssimazione razionale a una funzione. Qualcosa lungo l'articolo [1]. Gli do una funzione e mi restituisce due polinomi, il cui rapporto è l'approssimazione sull'intervallo dato e l'errore oscilla con la stessa ampiezza ed è un'approssimazione …
Sto confrontando due metodi iterativi per invertire matrici quadrate casuali. Poiché le matrici sono casuali, ogni caso di test richiede sia quantità diverse di iterazioni sia tempi diversi. La mia domanda è, oltre al tempo medio della CPU, il valore medio delle iterazioni prese da entrambi i metodi informazioni utili …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.