«performance» etiketlenmiş sorular

Algoritmaların, veri yapılarının, dillerin ve kütüphanelerin yürütme hızı ve bellek kullanımı hakkında sorular.

10
Kodumun seri performansını iyileştirmek için bazı iyi stratejiler nelerdir?
Hesaplamalı bilimde çalışıyorum ve sonuç olarak, zamanımın önemsiz bir miktarını birçok kodun bilimsel verimini arttırmanın yanı sıra bu kodların verimliliğini anlamak için harcıyorum. Üzerinde çalıştığım yazılımın okunabilirlik / yeniden kullanılabilirlik / bakım edilebilirlik değişimini karşılaştırdığımı ve performans için zamanın geldiğine karar verdiğimi varsayalım. Ayrıca benim sorunum için daha iyi bir …

7
Flop sayımı ile algoritmik analiz yapmak eski mi?
Sayısal analiz kurslarımda, problemin büyüklüğüne göre ihtiyaç duydukları kayan nokta işlemlerinin (floplar) sayısını sayarak algoritmaların verimini analiz etmeyi öğrendim. Örneğin, Trefethen & Bau'nun Sayısal Doğrusal Cebir'deki metninde flop sayımlarının 3B görünümlü resimleri bile var. Şimdi "floplar ücretsiz" demek modaya uygun, çünkü önbellekte olmayan herhangi bir şeyi almak için hafıza gecikmesi …

4
Fortran'ı hızlı yapan nedir?
Fortran'ın sayısal programlamada özel bir yeri vardır. Diğer dillerde kesinlikle iyi ve hızlı yazılımlar üretebilirsiniz, ancak Fortran yaşına rağmen çok iyi performans gösteriyor. Üstelik Fortran'da hızlı programlar yapmak daha kolay. C ++ 'da hızlı programlar yaptım, ancak işaretçi takma gibi şeyler konusunda daha dikkatli olmalısınız. Öyleyse, bunun bir nedeni olmalı …

4
MATLAB ters eğik çizgi operatörü kare matrisler için
Birkaç kodumu "stok" MATLAB kodları ile karşılaştırıyordum. Sonuçlara şaşırdım. Örnek bir kod koştum (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; Sonuçlar : For a\b Elapsed time is 0.052838 seconds. For LU Elapsed time is …


4
Python'da yazılmış kodu hızlandırmak için hangi araçlar veya yaklaşımlar mevcut?
Amaç: MATL üstel-vektör ürünlerini MATLAB'den Python'a bir Krylov alt uzay yöntemi kullanarak hesaplayan bazı kodları taşımak isteyebileceğimi düşünüyorum. (Özellikle, bu makalede açıklanan bir algoritmayı kullanan Jitse Niesen'in expmvp işlevi .) Ancak derlenmiş kitaplıklardan türetilmiş modüllerden çok fazla işlev almadığım sürece (yani, yalnızca ham Python kullanıyorum ve çok fazla değil. işlevlerde), …

4
Hesaplamalı bilimde C ++ ifade şablonlarını ne zaman kullanmalıyım ve ne zaman * kullanmamalıyım?
C ++ dilinde bilimsel bir kod üzerinde çalıştığımı varsayalım. Bir meslektaşı ile yakın zamanda yapılan bir tartışmada, ifade şablonlarının gerçekten kötü bir şey olabileceği, potansiyel olarak yazılımı yalnızca belirli gcc sürümlerinde derlenebilir hale getirdiği iddia edildi. Güya bu problem, Downfall'ın bu parodisinin altyazılarında olduğu gibi, birkaç bilimsel kodu etkiledi . …

1
Çok boyutlu verilerin enterpolasyonu için tercih edilen ve etkili yaklaşım nedir?
Çok boyutlu verilerin enterpolasyonu için tercih edilen ve etkili yaklaşım nedir? Endişelendiğim şeyler: yapı için performans ve hafıza, tek / parti değerlendirme 1'den 6'ya kadar olan taşıma ebatları doğrusal veya daha yüksek dereceli gradyan alma yeteneği (doğrusal değilse) normal vs dağınık ızgara Enterpolasyon Fonksiyonu olarak kullanılması, örneğin kökleri bulmak veya …

3
Intel Fortran Compiler: derlemede optimizasyonla ilgili ipuçları
Laboratuvarımızdaki kişisel tecrübemle başlayacağım. 9. ve 10. günlerde ifortta -O3 ve işlemciye özgü bayraklarla (örneğin -xW -xSSE4.2) derlenen optimizasyonlarda oldukça agresif davranırdık. Fakat ifort 11 ile başlayarak, şunu fark etmeye başladık: 1. sonuçlardaki bazı tutarsızlıklar (anlambilim korunmadığından) 2. -O2 ile karşılaştırıldığında daha küçük kazançlar. Şimdilik, genellikle -O2 ve -xhost ile …

1
Python / Numpy dizi işlemlerinin performansı artan dizi boyutlarıyla nasıl ölçeklenir?
Python / Numpy dizileri artan dizi boyutlarıyla nasıl ölçeklenir? Bu, bu soru için Python kodunu karşılaştırırken fark ettiğim bazı davranışlara dayanıyor: Bu karmaşık ifadenin en iyi dilimler kullanılarak nasıl ifade edileceği Sorun çoğunlukla bir diziyi doldurmak için dizin oluşturmayı içeriyordu. Python döngüsünde (çok iyi olmayan) Cython ve Numpy sürümlerini kullanmanın …

3
Çapraz artı sabit simetrik doğrusal sistemler ön hesaplamadan sonra ikinci dereceden bir sürede çözülebilir mi?
A'nın sabit bir SPD matrisi olduğu ve D i'nin pozitif diyagonal matrisler olduğu ( D i + A ) x i = b i formunun k doğrusal sistemlerini çözmek için bir O(n3+n2k)O(n3+n2k)O(n^3+n^2 k) yöntemi var mı?kkk(Di+A)xi=bi(Di+A)xi=bi(D_i + A) x_i = b_iAAADiDiD_i Örneğin, her bir DiDiD_i skaler ise, SVD'sini hesaplamak için …

4
Taşınabilir çok çekirdekli / NUMA bellek ayırma / başlatma en iyi uygulamaları
Bellek bant genişliği sınırlı hesaplamalar paylaşılan bellek ortamlarında (ör. OpenMP, Pthreads veya TBB aracılığıyla iş parçacığı) gerçekleştirildiğinde, belleğin fiziksel bellekte doğru bir şekilde dağıtılmasının nasıl sağlanacağına dair bir ikilem vardır; "yerel" bellek veri yolu. Arabirimler taşınabilir olmasa da, çoğu işletim sisteminin iş parçacığı benzeşimini ayarlama yolları vardır (örneğin pthread_setaffinity_np()birçok POSIX …

6
C ++ şablonlarını kullanan genel ve meta programlama ne kadar hesaplama bilimlerinde yararlıdır?
C ++ dili, şablonlar aracılığıyla genel programlama ve meta programlama sağlar . Bu teknikler birçok büyük ölçekli bilimsel bilgi işlem paketine (ör. MPQC , LAMMPS , CGAL , Trilinos ) doğru yol almıştır. Ancak, genel geliştirme süresi ve eşit veya yeterli verimlilik için kullanılabilirlik açısından C veya Fortran gibi genel …


3
Yineleme yöntemlerinin karşılaştırılması: yineleme sayısı ve işlemci zamanı
Rasgele kare matrisleri tersine çevirmek için iki yinelemeli yöntemi karşılaştırıyorum. Matrisler rasgele olduğundan, her test durumu hem farklı miktarlarda yineleme hem de farklı geçen süreleri alır. Benim sorum, ortalama CPU süresinin üstünde, her iki yöntem tarafından yöntemlerin karşılaştırılması için yararlı bilgiler tarafından alınan yinelemelerin ortalama değeridir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.