Ich arbeite in der Computerwissenschaft und verbringe daher einen nicht unerheblichen Teil meiner Zeit damit, den wissenschaftlichen Durchsatz vieler Codes zu steigern und die Effizienz dieser Codes zu verstehen. Nehmen wir an, ich habe den Kompromiss zwischen Leistung und Lesbarkeit / Wiederverwendbarkeit / Wartbarkeit der Software, an der ich arbeite, …
In meinen Kursen zur numerischen Analyse habe ich gelernt, die Effizienz von Algorithmen zu analysieren, indem ich die Anzahl der erforderlichen Gleitkommaoperationen (Flops) im Verhältnis zur Größe des Problems gezählt habe. In Trefethen & Baus Text zur Numerischen Linearen Algebra finden sich beispielsweise sogar 3D-Bilder der Flop-Zählungen. Jetzt ist es …
Fortran hat einen besonderen Platz in der numerischen Programmierung. Sie können sicher gute und schnelle Software in anderen Sprachen erstellen, aber Fortran arbeitet trotz seines Alters sehr gut. Außerdem ist es in Fortran einfacher, schnelle Programme zu erstellen. Ich habe schnelle Programme in C ++ erstellt, aber bei Dingen wie …
Ich habe einige meiner Codes mit MATLAB-Codes "auf Lager" verglichen. Ich bin überrascht über das Ergebnis. Ich habe einen Beispielcode ausgeführt (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; Ergebnisse : For a\b Elapsed time …
ATLAS ist ein kostenloser BLAS / LAPACK-Ersatz, der sich beim Kompilieren automatisch an die Maschine anpasst. MKL ist die von Intel gelieferte kommerzielle Bibliothek. Sind diese beiden Bibliotheken in Bezug auf die Leistung vergleichbar oder hat MKL bei einigen Aufgaben die Oberhand? Wenn ja, welche?
Hintergrund: Ich denke, ich möchte vielleicht einen Code portieren, der Matrix-Exponentialvektor-Produkte mit einer Krylov-Subspace-Methode von MATLAB nach Python berechnet. (Insbesondere die expmvp- Funktion von Jitse Niesen , bei der ein in diesem Artikel beschriebener Algorithmus verwendet wird .) Ich weiß jedoch, dass ich nur Funktionen aus Modulen verwende, die aus …
Angenommen, ich arbeite an einem wissenschaftlichen Code in C ++. In einer kürzlich mit einem Kollegen geführten Diskussion wurde argumentiert, dass Ausdrucksvorlagen eine wirklich schlechte Sache sein könnten, die möglicherweise die Kompilierbarkeit von Software nur auf bestimmten gcc-Versionen ermöglicht. Angeblich hat dieses Problem einige wissenschaftliche Codes betroffen, wie in den …
Was ist der bevorzugte und effiziente Ansatz für die Interpolation mehrdimensionaler Daten? Dinge, über die ich mir Sorgen mache: Leistung und Speicher für Konstruktion, Einzel- / Chargenbewertung Handhabungsabmessungen von 1 bis 6 linear oder höherer Ordnung Fähigkeit, Gradienten zu erhalten (wenn nicht linear) regelmäßiges gegen zerstreutes Gitter Verwendung als Interpolationsfunktion, …
Ich werde mit meiner persönlichen Erfahrung in unserem Labor beginnen. In den letzten 9 und 10 Tagen waren wir ziemlich aggressiv bei den Optimierungen. Wir kompilierten mit -O3 und prozessorspezifischen Flags (-xW -xSSE4.2 zum Beispiel). Ab ifort 11 bemerkten wir jedoch: 1. einige Inkonsistenzen in den Ergebnissen (weil die Semantik …
Wie skalieren Python / Numpy-Arrays mit zunehmenden Array-Dimensionen? Dies basiert auf einem Verhalten, das ich beim Benchmarking von Python-Code für diese Frage festgestellt habe: Wie kann man diesen komplizierten Ausdruck mit numpy-Slices ausdrücken? Das Problem bestand hauptsächlich in der Indizierung zum Auffüllen eines Arrays. Ich fand heraus, dass die Vorteile …
Gibt es eine O(n3+n2k)O(n3+n2k)O(n^3+n^2 k) -Methode, um kkk lineare Systeme der Form zu lösen, (Di+A)xi=bi(Di+A)xi=bi(D_i + A) x_i = b_iwobei AAA eine feste SPD-Matrix ist und DiDiD_i positive Diagonalmatrizen sind? Wenn beispielsweise jedes DiDiD_i Skalar ist, genügt es , den SVD zu berechnen AAA . Dies bricht jedoch für General …
Die C ++ - Sprache bietet allgemeine Programmierung und Metaprogrammierung über Vorlagen. Diese Techniken haben ihren Weg in viele große wissenschaftliche Computerpakete (z. B. MPQC , LAMMPS , CGAL , Trilinos ) gefunden. Aber was haben sie tatsächlich dazu beigetragen, dass das wissenschaftliche Rechnen einen Wert hat, der über nicht …
Wenn in Umgebungen mit gemeinsam genutztem Speicher (z. B. Threading über OpenMP, Pthreads oder TBB) Berechnungen mit begrenzter Speicherbandbreite durchgeführt werden, besteht ein Dilemma dahingehend, wie sichergestellt werden kann, dass der Speicher korrekt auf den physischen Speicher verteilt wird, sodass jeder Thread hauptsächlich auf einen Speicher zugreift "lokaler" Speicherbus. Obwohl …
Ich bin auf der Suche nach einer Open-Source-Implementierung (Python, C, C ++ oder Fortran) für die rationale Annäherung an eine Funktion. Etwas im Artikel [1]. Ich gebe ihm eine Funktion und er gibt mir zwei Polynome zurück, deren Verhältnis die Annäherung an das gegebene Intervall ist und deren Fehler mit …
Ich vergleiche zwei iterative Methoden zum Invertieren von zufälligen Quadratmatrizen. Da die Matrizen zufällig sind, benötigt jeder Testfall sowohl unterschiedliche Mengen an Iterationen als auch unterschiedliche abgelaufene Zeiten. Meine Frage ist, neben der mittleren CPU-Zeit, der Mittelwert der Iterationen, die von beiden Methoden verwendet werden. Nützliche Informationen zum Vergleichen der …
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.