agrignard / ReChamp

Project for the Champs Elysées project
1 stars 3 forks source link

Drop in FPS after long run #71

Closed agrignard closed 4 years ago

agrignard commented 4 years ago

Mauvaise nouvelle, je viens de faire tourner le modèle toute la nuit, alors en termes de ram c'est bon ca ne monte pas trop en revanche en termes de fps après 8h de Sim la simu est presque à 50% du fps initial

Je comprends pas trop comment on peut avoir une mémoire stable mais une fps qui diminue.

@ptaillandier est ce que tu penses pouvoir refaire un tour de profiler avec toutes les dernieres nouvelels mofis?

Aussi est ce que en rendant en java2D on aurait le même problème je sais pas... (en revanche pas de keystone en java2D donc pas trop viable)

ptaillandier commented 4 years ago

je peux faire tourner le profiler, mais sans me faire d'illusion : la mémoire, c'est facile de voir le problème (il y avait des objets qui prennent trop de place - les graphes pour nous), le temps de calcul hors visu, c'est simple aussi, mais la visu, argh.....

Le mer. 29 janv. 2020 à 09:52, Arnaud Grignard notifications@github.com a écrit :

Mauvaise nouvelle, je viens de faire tourner le modèle toute la nuit, alors en termes de ram c'est bon ca ne monte pas trop en revanche en termes de fps après 8h de Sim la simu est presque à l'arrêt avec 1.5fps...

Je comprends pas trop comment on peut avoir une mémoire stable mais une fps qui diminue.

@ptaillandier https://github.com/ptaillandier est ce que tu penses pouvoir refaire un tour de profiler avec toutes les dernieres nouvelels mofis?

Aussi est ce que en rendant en java2D on aurait le même problème je sais pas... (en revanche pas de keystone en java2D donc pas trop viable)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHKRNQZR7PCVAF3IMQDRAE7UTA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IJO4A4A, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHNACEVFGMKXPIZCJNTRAE7UTANCNFSM4KNA2G3A .

AlexisDrogoul commented 4 years ago

Je suis d'accord avec @ptaillandier : le profiler ne servira à rien pour la partie graphique. Il faudrait faire tourner la bête avec différentes options graphiques et en désactivant certains des layers pour voir ce qui peut causer ce comportement. Vérifier aussi sur quelle machine ça le fait (quelle carte graphique ?). Et vérifier également si synchroniser/désynchroniser les displays aide...

agrignard commented 4 years ago

Oui pas evident a traquer, en termes de vizu on est sur du classique des carrées, des polygons et des lignes pour les trajectories rien de très exotique.

J'ai fait tourner ça sur mon mac AMD Radeon R9 M370X 2048 MB

To be continued... avec differents layers , synchronized etc... le gros soucis que c'est prend beaucoup de temps à decroitre donc chaque test est très long...

A voir quand meme ce que tu dis le profiler si ca peut aider

ptaillandier commented 4 years ago

Une première question : est-ce que cela vient de l'affichage ou du modèle ? Je vais tester de lancer une longue simulation sans affichage pour voir.

Le mer. 29 janv. 2020 à 10:25, Arnaud Grignard notifications@github.com a écrit :

Oui pas evident a traquer, en termes de vizu on est sur du classique des carrées, des polygons et des lignes pour les trajectories rien de très exotique.

J'ai fait tourner ça sur mon mac AMD Radeon R9 M370X 2048 MB

To be continued... avec differents layers , synchronized etc... le gros soucis que c'est prend beaucoup de temps à decroitre donc chaque test est très long...

A voir quand meme ce que tu dis le profiler si ca peut aider

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHNMHWMNPZ72ASZNI53RAFDPDA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKGQQWI#issuecomment-579668057, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHLNVH6K43SQFKCKEN3RAFDPDANCNFSM4KNA2G3A .

ptaillandier commented 4 years ago

Finalement, cela vient du modèle (données obtenues sans visualisation sur mon PC), donc, on peut regarder ce que se passe : cycle : 0 fps: 0.0 (2147483647ms per frame) cycle : 1000 fps: 7.2 (138ms per frame) cycle : 2000 fps: 5.7 (176ms per frame) cycle : 3000 fps: 5.4 (186ms per frame) cycle : 4000 fps: 5.1 (195ms per frame) cycle : 5000 fps: 5.2 (194ms per frame) cycle : 6000 fps: 3.4 (292ms per frame) cycle : 7000 fps: 4.4 (229ms per frame) cycle : 8000 fps: 4.0 (251ms per frame) cycle : 9000 fps: 3.8 (263ms per frame) cycle : 10000 fps: 5.0 (202ms per frame) cycle : 11000 fps: 5.4 (186ms per frame) cycle : 12000 fps: 5.2 (193ms per frame) cycle : 13000 fps: 5.0 (202ms per frame) cycle : 14000 fps: 4.4 (228ms per frame) cycle : 15000 fps: 4.4 (225ms per frame) cycle : 16000 fps: 4.5 (223ms per frame) cycle : 17000 fps: 4.4 (228ms per frame) cycle : 18000 fps: 4.5 (220ms per frame) cycle : 19000 fps: 4.1 (246ms per frame) cycle : 20000 fps: 4.6 (219ms per frame) cycle : 21000 fps: 4.3 (231ms per frame) cycle : 22000 fps: 4.4 (228ms per frame) cycle : 23000 fps: 4.2 (240ms per frame) cycle : 24000 fps: 3.8 (265ms per frame) cycle : 25000 fps: 4.0 (253ms per frame) cycle : 26000 fps: 4.0 (252ms per frame) cycle : 27000 fps: 2.9 (344ms per frame) cycle : 28000 fps: 3.5 (287ms per frame) cycle : 29000 fps: 3.5 (288ms per frame) cycle : 30000 fps: 3.6 (281ms per frame) cycle : 31000 fps: 3.6 (280ms per frame) cycle : 32000 fps: 3.4 (294ms per frame) cycle : 33000 fps: 3.3 (301ms per frame) cycle : 34000 fps: 3.4 (294ms per frame) cycle : 35000 fps: 3.2 (317ms per frame) cycle : 36000 fps: 3.2 (308ms per frame) cycle : 37000 fps: 3.0 (337ms per frame) cycle : 38000 fps: 1.8 (544ms per frame) cycle : 39000 fps: 3.2 (313ms per frame) cycle : 40000 fps: 2.1 (487ms per frame)

Le mer. 29 janv. 2020 à 13:09, Patrick Taillandier < patrick.taillandier@gmail.com> a écrit :

Une première question : est-ce que cela vient de l'affichage ou du modèle ? Je vais tester de lancer une longue simulation sans affichage pour voir.

Le mer. 29 janv. 2020 à 10:25, Arnaud Grignard notifications@github.com a écrit :

Oui pas evident a traquer, en termes de vizu on est sur du classique des carrées, des polygons et des lignes pour les trajectories rien de très exotique.

J'ai fait tourner ça sur mon mac AMD Radeon R9 M370X 2048 MB

To be continued... avec differents layers , synchronized etc... le gros soucis que c'est prend beaucoup de temps à decroitre donc chaque test est très long...

A voir quand meme ce que tu dis le profiler si ca peut aider

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHNMHWMNPZ72ASZNI53RAFDPDA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKGQQWI#issuecomment-579668057, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHLNVH6K43SQFKCKEN3RAFDPDANCNFSM4KNA2G3A .

tnguyenh commented 4 years ago

c'est plutôt une bonne nouvelle ça, ça veut dire qu'on va arriver à débugger.

ptaillandier commented 4 years ago

oui... même si cela vient peut être des deux : le modèle + la visu (moi j'ai testé que le modèle et c'est vrai que cela ralentit). En regardant avec le scheduler, j'ai rien vu de probant.... j'arrive pas trop à comprendre ce qui ralentit (par contre, j'ai vu quelques trucs qu'on pourrait optimiser dans GAMA - si Alexis lit ce message : on peut gagner sur la fonction isPoint() qui recalcule à chaque fois qu'elle est appelée le nombre de points en faisant une boucle sur ces derniers.... il doit y avoir moyen de garder des infos en cache).

Le mer. 29 janv. 2020 à 17:23, Tri Nguyen-Huu notifications@github.com a écrit :

c'est plutôt une bonne nouvelle ça, ça veut dire qu'on va arriver à débugger.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHORCATXC2CYBV7F7L3RAGURPA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKH2GZA#issuecomment-579838820, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHMJ7Y6HEGUWH7GO75TRAGURPANCNFSM4KNA2G3A .

agrignard commented 4 years ago

mmm bonne et mauvais et nouvelle à la fois, pour le moemtn ca me parait très dommage que l'on ne puisse pas esperr faire tourner la simu sans un drop de frame...

c'est quoi ce isPoint? Est ce qu'on est obligé de l'utiliser? on est clairement sur un bug ultra bloquant la pour une install qui est sensé tourné 3 mois...

Comment peut-on avancer la dessus?

ptaillandier commented 4 years ago

isPoint(), c'est une fonction utilisée dans pas mal d'endroits, mais c'est pas à cause de ça qu'il y a une chute des FPS (je disais juste ça pour qu'on l'améliore pour GAMA 2.0). Ce que je vais faire, c'est faire une analyse un peu plus poussée des évolutions des temps de calcul (directement dans le modèle) pour comprendre ce qu'on peut améliorer.

Le jeu. 30 janv. 2020 à 09:02, Arnaud Grignard notifications@github.com a écrit :

mmm bonne et mauvais et nouvelle à la fois, pour le moemtn ca me parait très dommage que l'on ne puisse pas esperr faire tourner la simu sans un drop de frame...

c'est quoi ce isPoint? Est ce qu'on est obligé de l'utiliser? on est clairement sur un bug ultra bloquant la pour une install qui est sensé tourné 3 mois...

Comment peut-on avancer la dessus?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHPUKX6XTU7IEU7TNXTRAKCSZA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKKBNHI#issuecomment-580130461, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHPHCA3ZSZSAJYPPCOLRAKCSZANCNFSM4KNA2G3A .

AlexisDrogoul commented 4 years ago

Je pense que la vraie question c'est pourquoi un modèle comme HoanKiemAir peut tourner un mois sans perte de frames... Quelle est la différence entre les deux ? Pas isPoint() ça c'est sûr ! (cacher ce type d'infos peut marginalement améliorer le temps de calcul, mais les caches sont toujours délicats à manier. Et ça ne change rien à la perte de frames).

Le jeu. 30 janv. 2020 à 15:02, Arnaud Grignard notifications@github.com a écrit :

mmm bonne et mauvais et nouvelle à la fois, pour le moemtn ca me parait très dommage que l'on ne puisse pas esperr faire tourner la simu sans un drop de frame...

c'est quoi ce isPoint? Est ce qu'on est obligé de l'utiliser? on est clairement sur un bug ultra bloquant la pour une install qui est sensé tourné 3 mois...

Comment peut-on avancer la dessus?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AAENNOGVFE3JSH7SFDA75Q3RAKCSZA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKKBNHI#issuecomment-580130461, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAENNOBDKTXPXYKGCEX6IULRAKCSZANCNFSM4KNA2G3A .

-- Representative of IRD in Vietnam and Philippines http://en.vietnam.ird.fr Senior Researcher, Deputy Director, UMI UMMISCO 209, IRD & UPMC, France. http://ummisco.fr Lead architect, GAMA Platform, http://gama-platform.org — alexis.drogoul@ird.fr | http://goo.gl/4ewFdJ [Vietnam]+84944455180 [France]+33608698845 [Address]Appt. 103, Bldg 2G, Van Phuc Diplomatic Compound, 298 Kim Ma, Ba Dinh, Hanoi

ptaillandier commented 4 years ago

Un petit detail, quand Arnaud parle de FPS, il parle en fait de temps pour un cycle, sachant que dans le modèle, Arnaud utilise synchronized = true, ce qui est pris en compte pour le calcul de ce temps. En plus j'ai l'impression qu'au bout d'un moment les "FPS" restent stables (genre vers les 3 FPS) : peut être qu'en début de simulation, il y a moins d'embouteillage et que donc moins de temps pris par les recalcules de chemin + driving skill - ou alors moins de gens dans les parcs, ou que sais-je). Là, je suis en train de préparer un benchmark sur le modèle pour voir exactement ce qui pose problème (commençons par un diagnostic clair avant d'essayer de faire des choses).

Le jeu. 30 janv. 2020 à 09:36, Alexis Drogoul notifications@github.com a écrit :

Je pense que la vraie question c'est pourquoi un modèle comme HoanKiemAir peut tourner un mois sans perte de frames... Quelle est la différence entre les deux ? Pas isPoint() ça c'est sûr ! (cacher ce type d'infos peut marginalement améliorer le temps de calcul, mais les caches sont toujours délicats à manier. Et ça ne change rien à la perte de frames).

Le jeu. 30 janv. 2020 à 15:02, Arnaud Grignard notifications@github.com a écrit :

mmm bonne et mauvais et nouvelle à la fois, pour le moemtn ca me parait très dommage que l'on ne puisse pas esperr faire tourner la simu sans un drop de frame...

c'est quoi ce isPoint? Est ce qu'on est obligé de l'utiliser? on est clairement sur un bug ultra bloquant la pour une install qui est sensé tourné 3 mois...

Comment peut-on avancer la dessus?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub < https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AAENNOGVFE3JSH7SFDA75Q3RAKCSZA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKKBNHI#issuecomment-580130461 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAENNOBDKTXPXYKGCEX6IULRAKCSZANCNFSM4KNA2G3A

.

-- Representative of IRD in Vietnam and Philippines http://en.vietnam.ird.fr Senior Researcher, Deputy Director, UMI UMMISCO 209, IRD & UPMC, France. http://ummisco.fr Lead architect, GAMA Platform, http://gama-platform.org — alexis.drogoul@ird.fr | http://goo.gl/4ewFdJ [Vietnam]+84944455180 [France]+33608698845 [Address]Appt. 103, Bldg 2G, Van Phuc Diplomatic Compound, 298 Kim Ma, Ba Dinh, Hanoi

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHPBU7KAZP3GQSO4DX3RAKGPFA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKKEF5Y#issuecomment-580141815, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHKXJ23IFLFMOQM6Z73RAKGPFANCNFSM4KNA2G3A .

ptaillandier commented 4 years ago

Pour info, j'ai testé cette nuit (pendant plus de 12h) le modèle sur 2 machines (windows/Linux) et j'ai rien remarqué en termes de chute de FPS. Vous avez toujours ce problème ?

Le jeu. 30 janv. 2020 à 09:51, Patrick Taillandier < patrick.taillandier@gmail.com> a écrit :

Un petit detail, quand Arnaud parle de FPS, il parle en fait de temps pour un cycle, sachant que dans le modèle, Arnaud utilise synchronized = true, ce qui est pris en compte pour le calcul de ce temps. En plus j'ai l'impression qu'au bout d'un moment les "FPS" restent stables (genre vers les 3 FPS) : peut être qu'en début de simulation, il y a moins d'embouteillage et que donc moins de temps pris par les recalcules de chemin + driving skill - ou alors moins de gens dans les parcs, ou que sais-je). Là, je suis en train de préparer un benchmark sur le modèle pour voir exactement ce qui pose problème (commençons par un diagnostic clair avant d'essayer de faire des choses).

Le jeu. 30 janv. 2020 à 09:36, Alexis Drogoul notifications@github.com a écrit :

Je pense que la vraie question c'est pourquoi un modèle comme HoanKiemAir peut tourner un mois sans perte de frames... Quelle est la différence entre les deux ? Pas isPoint() ça c'est sûr ! (cacher ce type d'infos peut marginalement améliorer le temps de calcul, mais les caches sont toujours délicats à manier. Et ça ne change rien à la perte de frames).

Le jeu. 30 janv. 2020 à 15:02, Arnaud Grignard notifications@github.com a écrit :

mmm bonne et mauvais et nouvelle à la fois, pour le moemtn ca me parait très dommage que l'on ne puisse pas esperr faire tourner la simu sans un drop de frame...

c'est quoi ce isPoint? Est ce qu'on est obligé de l'utiliser? on est clairement sur un bug ultra bloquant la pour une install qui est sensé tourné 3 mois...

Comment peut-on avancer la dessus?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub < https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AAENNOGVFE3JSH7SFDA75Q3RAKCSZA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKKBNHI#issuecomment-580130461 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAENNOBDKTXPXYKGCEX6IULRAKCSZANCNFSM4KNA2G3A

.

-- Representative of IRD in Vietnam and Philippines http://en.vietnam.ird.fr Senior Researcher, Deputy Director, UMI UMMISCO 209, IRD & UPMC, France. http://ummisco.fr Lead architect, GAMA Platform, http://gama-platform.org — alexis.drogoul@ird.fr | http://goo.gl/4ewFdJ [Vietnam]+84944455180 [France]+33608698845 [Address]Appt. 103, Bldg 2G, Van Phuc Diplomatic Compound, 298 Kim Ma, Ba Dinh, Hanoi

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHPBU7KAZP3GQSO4DX3RAKGPFA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKKEF5Y#issuecomment-580141815, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHKXJ23IFLFMOQM6Z73RAKGPFANCNFSM4KNA2G3A .

agrignard commented 4 years ago

Oui j ai pu tester aussi et le genocide est en effet assez efficace. Donc pratiquement plus de problème mais ça pourrait quand même être intéressant de comprendre pourquoi ça monte sans killer tout le monde toute les 2 heures. Mais pour le projet je pense qu on est good

ptaillandier commented 4 years ago

Ce qui rend difficile de tester, c'est que le modèle change tout le temps. Typiquement, mes premiers tests (ou j'ai vu les pertes de performance) ont été fait avec une version buggée du modèle (le bug que j'ai introduit.... désolé). Donc, si cela se trouve, cela ne monte pas tant que ça (je sais pas). De toute façon, le reset de simulation n'est pas forcément un mal, cela nous permet d'être sûr qu'il n'y a pas de trucs bizarres qui vont émerger sur le très long terme (et puis conceptuellement parlant, on peut dire que cela représente une journée).

Le ven. 31 janv. 2020 à 09:43, Arnaud Grignard notifications@github.com a écrit :

Oui j ai pu tester aussi et le genocide est en effet assez efficace. Donc pratiquement plus de problème mais ça pourrait quand même être intéressant de comprendre pourquoi ça monte sans killer tout le monde toute les 2 heures. Mais pour le projet je pense qu on est good

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/agrignard/ReChamp/issues/71?email_source=notifications&email_token=AALPWHLXJIBRQA4OZZJO2W3RAPQCVA5CNFSM4KNA2G3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKN537Q#issuecomment-580640254, or unsubscribe https://github.com/notifications/unsubscribe-auth/AALPWHMSQXOHY5QIFQJ27DLRAPQCVANCNFSM4KNA2G3A .

agrignard commented 4 years ago

Ok on va fermer sur cette issue, pour le moment. en esperant ne pas avoir à la réouvrir ;-)