Existe-t-il un moteur physique généraliste permettant des simulations de corps rigides? J'utilise PhysX de Nvidia, mais l'objectif de ce moteur est le développement de jeux, les corps mous. Je veux savoir s'il existe un moteur de physique qui fonctionne sur des processeurs de cellules PS3 ou des cœurs CUDA permettant des simulations de physique scientifique massive.Moteur physique à usage général
Répondre
Il n'y a pas de bibliothèque physique « universelle ». Par exemple. pouvez-vous imaginer une simulation de tissus mous de chirurgie utile qui tiendrait compte des effets relativistes? Vous pouvez imaginer des dizaines d'autres exemples.
Vous parlez à la fois la simulation du corps scientifique et rigide, il ne sait pas comment vous voulez être réaliste. Le corps rigide est une approximation: rien n'est absolument rigide. Mais si rien ne se déforme beaucoup dans votre simulation, et que vous vous contentez d'un tas d'approximations irréalistes de la friction et du mouvement rapide (communes à tous les jeux vidéo), et que vous voulez une solution prête à l'emploi, CPU moderne vous donnera les meilleures performances.
PS/3 est actuellement la dernière génération. Bien que j'aie beaucoup aimé écrire de la physique dans ma journée, je dois admettre qu'un i7 moderne avec 6 cœurs vous donne plus de performance - à la fois théoriquement et en pratique - qu'une seule cellule.
CUDA est actuellement la technologie non éprouvée pour la physique. Je n'ai rien écrit dessus, mais je suis très intéressé lecteur :) Les défis de l'écriture de la physique basée sur CUDA ne sont pas triviaux si vous voulez approcher IPC (instruction par rapport au cycle) d'un CPU moderne, et je Je ne connais personne qui ait réussi à l'accompagner. Et si vous ne vous approchez pas de l'IPC de la physique basée sur CPU, il n'y a aucun intérêt dans la physique CUDA, car cela demande plus d'efforts. Il suffit de faire le calcul: un GPU Kepler à 500 $ a 1536 cœurs à 1 GHz = 1,5 pétaflops. Un CPU Sandy Bridge de 590 $ a 6 cœurs/12 hyperthreads AVX (8-wide) @ 3.8GHz = 0.36 petaflop. Maintenant, si vous parvenez à atteindre une parité de 5 à 1 (utilisez 5 cycles de GPU en moyenne pour 1 cycle de CPU), votre physique théorique CUDA fonctionnera à la même vitesse que la physique du CPU. Maintenant, l'utilisation efficace de 12 hyperthreads et AVX (8-wide SIMD) n'est pas vraiment facile. Mais paralléliser les tâches physiques sur 1536 (!) Threads CUDA, qui doivent être très cohérents et utiliser la mémoire de manière beaucoup plus contrôlée n'est pas non plus un petit exploit. Je ne dis pas que c'est impossible (et j'adorerais l'essayer, mais j'ai un travail de jour et d'autres projets pour animaux de compagnie :)) mais il faudra un certain temps avant que la communauté physique ne propose quelque chose d'évolutif sur des milliers de threads.
Et à la fin de l'amélioration de la vitesse est à seulement 5 fois ou alors ... :)
Quoi qu'il en soit, si vous écrivez vous-même sim, et vous ne voulez pas une simulation de corps rigide général, puis CUDA peut être ton ami. Par exemple. Si vous voulez simuler le mouvement de toutes les étoiles de la Voie Lactée, avec le relativisme, mais sans supernova et autres effets discrets ... Il est assez clair comment répartir cela sur 1536 (et plus) threads. Mais si vous voulez avoir une montagne de corps rigides, simulés de la même façon que les jeux le font actuellement, vous n'avez pas de chance
La bibliothèque Simbody multibody dynamics est utilisée pour des simulations moléculaires contenant des milliers de molécules (corps rigides) . Voir le fichier GIF au dépôt GitHub de Simbody: http://github.com/simbody/simbody.
La bibliothèque est également utilisé fortement par la communauté biomécaniques pour simuler le mouvement humain. Dans un tel cas, les humains sont modélisés comme un système de corps rigides.
Si vous êtes à la recherche d'une bibliothèque pour la science, alors vous devriez vérifier Simbody. Cependant, il n'a pas été utilisé sur les processeurs de cellules PS3 ou les cœurs CUDA.
- 1. protocoles binaires à usage général
- 2. Registres à usage général - Commande
- 3. Bonne routine try/catch à usage général
- 4. Moteur de physique mobile
- 5. Moteur physique pour WPF?
- 6. Implémentations de code d'algorithme d'arbre de décision à usage général
- 7. Base de données taxonomie open source à usage général
- 8. Implémentation d'une structure d'objets à usage général (sac de propriétés)
- 9. Besoin d'une bibliothèque à usage général, pure C
- 10. Quels logiciels populaires tirent parti des GPU à usage général?
- 11. Composant de prévisualisation de fichier à usage général
- 12. Barre de progression à usage général dans Django
- 13. Moteur de physique 3D XNA
- 14. moteur de la physique android
- 15. A propos du moteur physique
- 16. Moteur physique pour sandy 3d
- 17. Moteur physique Bullet, comment geler un objet?
- 18. mise à l'échelle dans le moteur physique tamia
- 19. Y a-t-il une base d'applet de peinture Java à usage général?
- 20. Algorithme à usage général pour la triangulation d'un graphe non orienté?
- 21. XNA moteur physique 2D avec des objets déformables
- 22. L'intégration de Verlet fait exploser mon moteur physique
- 23. Moteur de physique actionscript qui supporte les particules qui s'attirent
- 24. Quel moteur physique serait bon pour un moteur de piscine Silverlight?
- 25. Redirections d'URL; pour un usage général, ce qui est mieux: côté serveur ou côté client?
- 26. Volume à disque physique
- 27. Emulator à physique
- 28. Où puis-je commencer à écrire/utiliser un moteur de simulation physique 3D?
- 29. Qu'est-ce que Chipmunk? (En dehors d'être un moteur de physique)
- 30. Préparer un site web à usage international