2017-12-07 113 views
5

julia ve onun performansı hakkında birçok makale okudum. ama hayır, nerede julia takım matris işlemleri için sütun büyük kullanmak için karar verdi hakkında ipucu bulabilirsiniz. matris üzerinde çalışmanın bir yolu, sütun majörüne veya başka bir şeye uyar.Julia neden sütun majör kullanıyor? Bu hızlı

Teşekkürler.

+0

Neden DNA sarmalının bu şekilde ve diğer değildir? Karar çoğunlukla biraz anahtarlama maliyeti ile kırılan bazı tarihsel simetri nedeniyle –

+0

Gerçekten DNA hakkında bilmiyorum. ama performansta evet, C'ye daha çok veya daha az benzer çalıştı. Bu yüzden, daha sonra satırbaşı majör yerine ana sütun seçmelerinin bir nedeni olabileceğini hissettim. –

+1

Çoğu hesaplama, dönüştürülen tüm değişkenlerle yeniden yazılabilir. Bu, satırları sütunlara dönüştürür. Seçilen sıra, bir vektör tarafından diğer tarafa göre daha hızlı çarpım yapar ve seçimi yaptıktan sonra seçimi algoritmalarınızdaki tüm hesaplamalara yaymanız gerekir. Spesifik olarak, 'w * A' ile çarpmak A * v''den daha yavaştır. Yani cevap var: insanlar tercih ediyorlar A * v' –

cevap

0

"Julia boyutlu diziler sütun büyük sırayla depolanır Bu diziler her seferinde bir kolon dizilir demektir bu vec işlevi veya sözdizimi kullanılarak doğrulanabilir. [:] ..."

"Diziler sipariş etmek için bu sözleşme, Fortran, Matlab ve R gibi birçok dilde yaygındır (bir kaçını belirtmek için). Sütun-ana sıralamaya alternatif, sıralı bir sıralamadır, bu da C ve Python tarafından benimsenen kuraldır. Diğer diller arasında.

örnekler ve performans farklılıkları tartışmaya

https://docs.julialang.org/en/latest/manual/performance-tips/

+1

bağlantıdan: "Diziler, bellekte sürekli olarak saklanır, CPU vektörleştirmesine ve önbelleğe alınma nedeniyle daha az bellek erişimine izin verir. Bunlar, sütun ana düzenindeki dizilere erişilmesi için önerilen aynı nedenlerdir (yukarıya bakın). " –