message posté le 20 janv 2013 à 00h27
Petite infos. Un agent, on ne sait pas ce que c'est. On sait pas si c'est un bête objet avec quelques détails de rien du tout, ou un machin complexe qui dépend de centaine de param différents eux-même dépendants d'autres choses.
En gros pour un agent il peut y avoir 10 opérations a faire, ou 10'000. Et ça dépend a quelle fréquences ils sont updatés.
Disons 100'000 habitants. Chacun dépendant du comportement des autres.
100'000 agents * 100 facteur * au pire 100000 calculs a refaire en fonction de l'état actuel / (50 milliards d'op par second (50Gflops pour un certain core i7 de 2011). = 20 secondes de calculs.
C'est bidons (aussi partie des opérations par secondes), pas optimisés surtout, mais voilà, ça donne une idée de ce que peut demander un agents, qui n'est pas un truc tout con, mais qui demandent du temps selon de quoi ils dépendent.
On va devoir avoir une discussion sur la programmation... un bon programme ne fait jamais de calcul un à un... pour un objet si plusieurs données sont à mettre à jour... on rassemble l'ensemble et inversement, si plusieurs objets doivent être mis à jour par un même calcul on fait le calcul une fois et on distribue l'information aux objets.
Toi tu es dans une logique linéaire et binaire : une chose = un calcul = un mouvement.
C'était vrai jusqu'au milieu des années 90, mais aujourd'hui, la structure objet permet de s'affranchir de tel problématique depuis un petit moment, sans parler de la hiérarchie permettant d'envoyer à des milliers d'objets de nouvelles valeurs en un coup.
Donc non, je maintiens ce que je dis, un agent = un objet = même pas une dizaine de calcul pour chaqu'un.
Sinon c'est que le boulot est mal fait.
Pour ma part, travaillant pour un grand groupe, et sur une énorme application, je peux t'assurer que de simples serveurs (mais avec des bases de données sous stéroïdes il faut l'avouer), permet de gérer des milliers d'objets de types différents, contenant chacun des centaines d'informations diverses et variées... et cela pour des milliers d'utilisateurs travaillant en parallèles et faisant des trucs très différents (bien que regroupables).
Et bien malgré le facteur 10 000 utilisateurs sur 10 000 objets ayant chacun 150 données... bah on a pas besoin de beaucoup de force de calcul.
Jeux de gestion addict!