2010-03-01 21 views
6

Katı cisimlerin büyük simülasyonlarına izin veren herhangi bir genel amaçlı fizik motoru var mı? Nvidia'dan PhysX kullanıyorum ama bu motorun odak noktası oyun geliştirme, yumuşak bedenler. PS3 hücre işlemcilerinin veya CUDA çekirdeklerinin üzerinde çalışan fizik motorunun muazzam bilimsel fizik simülasyonlarına izin verip vermediğini bilmek istiyorum.Genel amaçlı fizik motoru

cevap

2

"Evrensel" fizik kitaplığı yok. Örneğin. Göreceli etkileri hesaba katacak yararlı bir cerrahi yumuşak doku simülasyonunu hayal edebiliyor musunuz? Onlarca örnek daha düşünebilirsin.

Hem bilimsel hem de katı vücut simülasyonu hakkında konuşuyorsunuz, bu yüzden ne kadar gerçekçi olmak istediğiniz açık değil. Katı cisim bir yaklaşımdır: hiçbir şey kesinlikle katı değildir. Fakat simülasyonunuzda hiçbir şey deforme olmazsa ve sürtüşmeye ve hızlı harekete (gerçekte tüm video oyunlarında ortak olan) gerçek dışı yaklaşımlar ile iyi bir performans sergiliyorsanız ve kutudan çıkmış bir çözüm istiyorsanız, Havok'u çalıştırarak şüpheleniyorum. Modern CPU size en iyi performansı verecektir.

PS/3 şu anda son olan gen. Günümüzde çok fazla fizik yazmaktan hoşlanırken, 6 çekirdekli modern bir i7'nin size hem teorik hem de pratik olarak bir Hücre'den daha fazla performans verdiğini itiraf etmeliyim.

CUDA şu anda fizik için kanıtlanmamış bir teknolojidir. Ondan hiçbir şey yazmadım, ama okuyucuyu çok merak ediyorum :) CUDA tabanlı fiziğin yazılması ile ilgili zorluklar, modern bir CPU'nun IPC'sine (döngü oranı başına) yaklaşmak istiyorsanız oldukça önemsiz ve ben Bunu başarılı bir şekilde gerçekleştiren birini tanımıyorum. Eğer CPU tabanlı fiziğin IPC'sine yaklaşmazsanız, daha fazla çaba harcadığı için CUDA fiziğinin bir anlamı yoktur.

Sadece matematik yapın: $ 500 Kepler GPU'nun 1536 çekirdeği 1 GHz = 1.5 petaflop'tur. 590 $ 'lık bir Sandy Bridge CPU'sunda 6 çekirdek/12 hiper-özelliği vardır. AVX (8-wide) @ 3.8GHz = 0.36 petaflop. Şimdi, eğer 5'e 1 parite elde edebilecek olursanız (1 CPU döngüsü için ortalama 5 GPU döngüsü kullanın), teorik CUDA fiziğiniz CPU fiziği ile aynı hızda çalışacaktır. Şimdi, 12 hyperthreads ve AVX (8-genişlikli SIMD) verimli kullanmak gerçekten kolay değil. Ancak, çok tutarlı ve hafızayı çok daha kontrollü bir şekilde kullanması gereken 1536 (!) CUDA dişindeki fizik görevlerini paralel hale getirmek de küçük bir başarı değil. Ben imkansız olduğunu söylemiyorum (ve bunu denemek isterdim, ama bir günlük işim ve diğer evcil hayvan projeleri var :)) ama fizik topluluğunun binlerce iş parçacığı arasında ölçeklenebilir bir şey bulması biraz zaman alacak.

Ve sonunda hız gelişimi yazarsanız kendinizi sim ve CUDA sonra, genel bir rijit gövde simülasyon istemiyoruz, neyse :) ...

sadece 5 kat ya da böyledir arkadaşın olabilir. Örneğin. Samanyolu'daki tüm yıldızların hareketini, rölativizmle, ama süpernova ve diğer ayrık etkileriyle simüle etmek istiyorsanız ... 1536 (ve daha fazla) dişte bu yayının nasıl yayılacağı oldukça açık. Ancak, sert gövdelerin bir dağına sahip olmak istiyorsanız, oyunların şu şekilde simülasyonunu yapıyorsunuz, şansınız yok,

0

Simbody çoklu-dinamiği kütüphanesi, binlerce molekülü (katı cisimler) içeren moleküler simülasyonlar için kullanılır. . Simbody'nin GitHub deposundaki GIF'e bakın: http://github.com/simbody/simbody. Kütüphane, insan hareketini simüle etmek için biyomekanik topluluğu tarafından da yoğun olarak kullanılmaktadır. Böyle bir durumda, insanlar katı cisimler sistemi olarak modellenir.

Bilim için bir kütüphane arıyorsanız, o zaman Simbody'i kontrol etmelisiniz. Bununla birlikte, PS3 hücre işlemcileri veya CUDA çekirdeklerinde kullanılmamıştır.

İlgili konular