Brevet FR3080477A1 — publié le 20191025

Description Titre de l'invention : PROCÉDÉS ET SYSTÈMES DE DÉTER- MINATION ET D'OPTIMISATION DES PERFORMANCES D'UN SIMULATEUR DE RÉSERVOIR DANS UN ENVI- RONNEMENT INFORMATIQUE EN NUAGE Domaine technique [0001] La technologie actuelle concerne l'optimisation de l'allocation des ressources pour des simulations exécutées dans un environnement informatique en nuage. Contexte [0002] Dans l'industrie pétrolière et gazière, la simulation de réservoir est souvent exécutée avec un budget limité, dans un délai très court, ou les deux. L'informatique en nuage offre un déploiement de ressources évolutif pour l'exécution de simulations de réservoir, mais les décisions de configuration doivent être prises à l'avance et souvent sans aucune compréhension du temps et du coût nécessaires à la réalisation d'une simulation de réservoir. De plus, une formation et des connaissances spécialisées sont souvent nécessaires pour configurer et déployer les ressources de manière à réduire au maximum les coûts ou le temps de calcul. Lorsque les ressources n'exécutent pas une simulation de réservoir aussi bien que prévu lors de la configuration et du déploiement, le modèle doit souvent être suspendu ou redémarré pendant le déploiement manuel de nouvelles ressources. [0003] Des aspects de la présente invention ont été concernés et développés en tenant compte, entre autres, de ces observations. Brève description des figures [0004] Les modes de réalisation de la présente invention peuvent être mieux compris par la référence à la description suivante en liaison avec les dessins joints en annexe, dans lesquels les mêmes références numériques désignent des éléments analogues, identiques ou similaires du point de vue de la fonctionnalité. Compte tenu du fait que ces dessins ne représentent que des exemples de modes de réalisation de l'invention et ne doivent donc pas être considérés comme limitant sa portée, les principes qui suivent sont décrits et expliqués avec une spécificité et des détails supplémentaires au moyen de l'utilisation des dessins joints en annexe dans lesquels : [0005] [fig.1] La figure 1 est un schéma de système illustrant un système informatique, conformément à divers modes de réalisation de la technologie en question ; [0006] [fig.21 La figure 2 représente un diagramme de dispersion régressant l'exécution totale par rapport à la durée d'un pas de temps unique pour une simulation de réservoir, 2 conformément à divers modes de réalisation de la technologie en question ; [0007] [fig.31 La figure 3 représente un graphique de l'augmentation de la vitesse d'une si- mulation de réservoir régressée par rapport au nombre de coeurs utilisés pour exécuter la simulation de réservoir, conformément à divers modes de réalisation de la technologie en question ; [0008] [fig.41 La figure 4 est un schéma de système illustrant une analyse d'exécution de si- mulation, conformément à divers modes de réalisation de la technologie en question ; [0009] [fig.51 La figure 5 représente un organigramme d'un procédé de détermination des es- timations d'exécution, selon divers modes de réalisation de la technologie en question ; [0010] [fig.61 La figure 6 représente un organigramme d'un procédé d'optimisation dynamique d'une exécution de simulation de réservoir, selon divers modes de réalisation de la technologie en question ; et [0011] [fig.71 La figure 7 illustre une architecture d'informatique, conformément à divers modes de réalisation de la technologie en question. Description détaillée [0012] Divers modes de réalisation de l'invention sont discutés en détail ci-dessous. Bien que des mises en oeuvre spécifiques soient discutées, il faut bien comprendre que cela n'est fait qu'à titre d'illustration. L'homme du métier reconnaîtra que d'autres composants et configurations peuvent être utilisés sans sortir de l'esprit et de la portée de l'invention. Des caractéristiques et avantages supplémentaires de l'invention seront exposés dans la description ci-après, et seront en partie évidents à partir de la description, ou pourront être appris par la pratique des principes décrits dans la présente. Les caractéristiques et les avantages de l'invention peuvent être réalisés et obtenus au moyen des instruments et des combinaisons indiqués en particulier dans les revendications jointes en annexe. Ces caractéristiques, ainsi que d'autres caractéristiques de l'invention, deviendront plus clairement apparentes à partir de la description suivante et des revendications jointes en annexe, ou pourront être apprises par la pratique des principes énoncés dans la présente. [0013] La présente invention fournit des techniques d'allocation de ressources pour l'exécution d'une simulation. Généralement, une simulation peut fournir une représentation d'un état dynamique le long d'une séquence temporelle, la séquence étant souvent divisée en « pas de temps », chaque pas de temps représentant un état de nouveau calcul des paramètres de la simulation. La simulation peut fournir un instantané de l'état à un quelconque moment donné, ainsi qu'un état final prédit à la fin de la simulation sur la base des paramètres de simulation initiaux associés aux variations entre les paramètres en raison des interactions à des instants de la séquence temporelle de simulation. Par exemple, dans l'industrie pétrolière et gazière, il est 3 possible de simuler un réservoir de pétrole ou de gaz au fil du temps afin de comprendre les effets de l'exploitation du réservoir. Les paramètres de simulation peuvent inclure, par exemple et sans limitation, des secteurs de champ (par exemple, des zones situées au-dessus d'un réservoir où un site de forage peut être installé), la taille du secteur, l'état du flux entre les secteurs, la pression du réservoir, la profondeur du réservoir, les contacts de fluide, les fluides en place, les stratégies de forage/ d'achèvement, les taux d'extraction, etc. De plus, les simulations de réservoir (et les simulations en général) peuvent inclure des paramètres externes au contenu examiné. Par exemple, une simulation de réservoir peut inclure d'autres paramètres tels que l'offre globale, la demande globale, l'offre locale, la tarification, les flux de trésorerie, les prix des équipements, les coûts de fonctionnement des équipements, les informations sur la main-d'oeuvre, etc. [0014] Les simulations sont souvent exécutées afin de prendre des décisions d'affaires informées sur la base de divers paramètres fournis en conséquence à la simulation. Par exemple, des simulations de réservoir peuvent être exécutées pour déterminer un bon de commande d'équipement ou dans le cadre d'une vérification diligente préalable à la conclusion d'un contrat foncier. Dans certains cas, une fenêtre de temps très limitée peut être disponible pour la réalisation complète de la simulation en raison, par exemple, d'une vente au rabais ou d'une vente concurrentielle similaire sur un bref intervalle de temps. [0015] Les simulations peuvent être exécutées sur des ressources en nuage, physiques et vir- tualisées, fournies par des fournisseurs tiers afin de réduire au maximum, voire de supprimer totalement, le coût de gestion et de maintenance des ressources de calcul, qui peut être important. L'utilisation des ressources en nuage offre également une flexibilité dans la construction de la simulation, car les ressources peuvent être allouées selon les besoins. Toutefois, les fournisseurs calculent généralement le prix des ressources sur la base de l'exécution. De plus, la simple initialisation d'une ressource peut imputer un coût initial supplémentaire. [0016] Lorsque les horizons temporels sont courts ou que les budgets sont limités, il peut être nécessaire d'équilibrer la vitesse et les coûts. Dans certains cas, les simulations peuvent prendre des semaines, voire des mois. En règle générale, plus le nombre de ressources allouées à une simulation est élevé, plus la simulation peut être achevée rapidement. Cependant, plus de ressources peuvent très rapidement gonfler le coût d'exécution d'une simulation et, si la simulation est optimisée pour les ressources particulières ou la combinaison de ressources particulières (par exemple, l'absence de certaines optimisations multi-fils ou multi-processeurs, etc.), de nombreuses ressources peuvent être sous-utilisées ou non utilisées et, dans certains cas, avoir un impact négatif sur les performances de la simulation, que ce soit en termes de rapidité ou de 4 précision. [0017] Comme décrit dans la présente, les simulations peuvent être optimisées par l'allocation améliorée de ressources. Les exécutions pour diverses configurations de simulation et divers schémas d'allocation de ressources peuvent être modélisées afin de prédire l'exécution totale d'une simulation sur la base d'un échantillon relativement petit de pas de temps. À mesure que davantage de simulations sont exécutées, les modèles d'exécution associés aux paramètres de simulation particuliers et/ou aux schémas d'allocation de ressources peuvent devenir plus précis (par exemple, les modèles peuvent apprendre ou être formés). Les modèles formés peuvent ensuite être utilisés pour prévoir les allocations de ressources optimales sur la base de paramètres de simulation et d'autres critères associés au modèle (budget de simulation et coûts des ressources, dates de fin de la simulation ou des phases de la simulation, etc.). En outre, les ressources peuvent être réallouées lors de l'exécution de la simulation afin d'optimiser au maximum la simulation, car les paramètres varient tout au long de l'exécution de la simulation. Par exemple, des secteurs d'un champ pétrolier peuvent être retirés des paramètres de simulation en cours de simulation en raison de la conclusion anticipée d'une location pour le terrain respectif. En conséquence, moins de mémoire vive peut être nécessaire pour les cycles de lecture-écriture rapides en raison d'une réduction des variables dans la simulation ; par conséquent, l'allocation de mémoire vive peut être réduite afin de réduire au maximum les coûts en ressources et de réduire également le nombre d'adresses de mémoire utilisées pour les cycles (fournissant une accélération des temps de lecture-écriture). [0018] La figure 1 est un diagramme schématique d'un système informatique 100 qui peut mettre en oeuvre divers systèmes et procédés discutés dans la présente. Le système informatique 100 inclut un ou plusieurs composants informatiques en communication par l'intermédiaire d'un bus 102. Dans un mode de réalisation, le système informatique 100 peut inclure un ou plusieurs processus 104. Le processeur 104 peut inclure un ou plusieurs niveaux internes de mémoire cache 118 et un dispositif de commande de bus ou une unité d'interface de bus pour diriger une interaction avec le bus 102. Le processeur 104 peut spécifiquement mettre en oeuvre les divers procédés discutés dans la présente. La mémoire 110 peut inclure une ou plusieurs cartes mémoire et un circuit de commande, ou d'autres formes de mémoire amovible, et peut stocker diverses applications logicielles, y compris des instructions exécutables par ordinateur, qui, lorsqu'elles sont exécutées sur le processeur 104, mettent en oeuvre les procédés et les systèmes décrits ici. D'autres formes de mémoire, telles qu'un dispositif de stockage 112 et un dispositif de stockage de masse 114, peuvent également être incluses et accessibles au processeur (ou aux processeurs) 104 par l'intermédiaire du bus 102. Le dispositif de stockage 112 et le dispositif de stockage de masse 114 peuvent chacun contenir la totalité ou une partie des procédés et des systèmes, en entier ou en partie, discutés dans la présente. Dans certains exemples, le dispositif de stockage 112 ou le dispositif de stockage de masse 114 peut fournir une base de données ou un référentiel afin de stocker des données comme décrit ci-dessous. [0019] Le système informatique 100 peut en outre inclure une interface de communications 106 au moyen de laquelle le système informatique 100 peut se connecter à des réseaux et recevoir des données utiles pour réaliser les procédés et systèmes décrits ici, ainsi que pour transmettre des informations à d'autres dispositifs. Le système informatique 100 peut également inclure un dispositif d'entrée 108 par lequel des informations sont entrées. Le dispositif d'entrée 108 peut être un scanner, un clavier et/ou d'autres dispositifs d'entrée, comme le comprendra l'homme du métier. Le système présenté à la figure 1 n'est qu'un exemple possible d'un système informatique qui peut être utilisé ou configuré conformément à des aspects de la présente invention. On comprendra que d'autres supports de stockage lisibles par ordinateur, tangibles et non transitoires, stockant des instructions exécutables par ordinateur pour mettre en oeuvre la technologie décrite actuellement sur un système informatique peuvent être utilisés. [0020] Après avoir décrit un système informatique typique qui peut être utilisé par divers systèmes et procédés conformément à ceux discutés dans la présente, l'invention passera maintenant aux systèmes et aux procédés de détermination et d'optimisation des performances d'une simulation. La figure 2 représente un graphique 200 de l'exécution totale d'une simulation par rapport au temps nécessaire pour la réalisation d'un pas de temps unique de la simulation. Comme on peut le constater, un pas de temps unique peut être utilisé pour prédire l'exécution totale d'une simulation avec une précision prédictive (R2 = 0,9735). Cependant, parmi les clusters 202A et 202B, une variance considérable peut encore être observée. [0021] La figure 3 représente un graphique 300 d'une courbe d'accélération par rapport à un nombre de coeurs de traitement par noeud utilisé dans l'exécution d'une simulation. Comme on peut le constater, la vitesse d'accélération par coeur supplémentaire n'est pas une courbe linéaire globale et varie également en fonction de l'architecture du noeud. Par exemple, la courbe 302 d'une architecture à quatre noeuds présente une augmentation de vitesse largement linéaire jusqu'à 16 coeurs mais a ensuite un effet de plus en plus négatif pour les coeurs supplémentaires ajoutés par la suite. En comparaison, la courbe 304 d'une architecture à un seul noeud présente une courbe qui ressemble à une courbe logarithmique. [0022] Dans certains modes de réalisation, les courbes de la figure 2 et de la figure 3 peuvent ne refléter qu'une seule attribution de ressources et/ou un seul ensemble de paramètres d'un modèle. En d'autres termes, d'autres combinaisons de paramètres de simulation et d'allocation de ressources peuvent présenter des graphiques différents. La 6 détermination manuelle d'un modèle pour chaque combinaison de paramètres de simulation et d'allocation de ressources peut devenir très rapidement peu pratique, même pour des simulations limitées sur des ressources limitées. Pour les grandes simulations, telles que celles trouvées dans l'industrie du pétrole et du gaz ou, en particulier, les simulations de réservoirs, et de nombreux schémas d'allocation de ressources potentiels, tels que fournis par l'informatique en nuage, par exemple, des processus entièrement ou partiellement automatisés peuvent augmenter la précision et la robustesse des modèles (par exemple, des courbes d'accélération) pour diverses simulations ayant divers paramètres et réalisées selon divers schémas d'allocation de ressources. [0023] La figure 4 est un diagramme schématique d'un système de mise à jour de modèle d'exécution 400 qui peut augmenter la précision prédictive des modèles d'exécution et accélérer la génération de modèles d'exécution. Plusieurs facteurs peuvent finalement avoir une incidence sur l'exécution d'une simulation. Les allocations de ressources ainsi que les paramètres de simulation, ainsi que des combinaisons particulières des deux, peuvent avoir un impact inattendu sur l'exécution totale d'une simulation. [0024] Une exécution de simulation 402 peut être fournie à un service d'apprentissage d'exécution 410 afin de mettre à jour les modèles d'exécution utilisés pour prédire les exécutions totales de simulations incluant diverses variables et réalisées sur diverses ressources. Par exemple, la corrélation décrite par le graphique 200 peut être générée par un modèle d'exécution produit par le système 400. [0025] L'exécution de simulation 402 inclut des références de ressources 404 qui peuvent avoir des mappages d'un quelconque nombre et d'une quelconque variété de ressources. Chaque ressource 414A-C peut être fournie sous la forme d'une adresse mappée ou par l'intermédiaire d'un document de manifeste ou un élément similaire. Les ressources peuvent inclure des composants dans un système informatique distribué, tels que, sans limitation, des processeurs, des dispositifs de stockage, des interfaces de communication, etc. Dans certains modes de réalisation, les ressources 414A-C peuvent inclure des ressources matérielles, des ressources logicielles, des ressources virtualisées (par exemple, des machines virtuelles et des éléments similaires) ou des combinaisons de celles-ci. [0026] L'exécution de simulation 402 peut également inclure des enregistrements de pa- ramètres 406 représentant m variables traitées et suivies par l'exécution de simulation 402 pendant l'exécution. Chaque paramètre 416A-C peut faire référence à des variables particulières prises en compte, par exemple, dans une simulation de réservoir. Les paramètres 416A-C peuvent inclure, sans limitation, les débits, le nombre de partitions sur le terrain, la taille de la partition sur le terrain, les valeurs de pression, les valeurs de profondeur, etc. Dans certains modes de réalisation, chaque enregistrement de paramètre peut inclure des mesures de série temporelle telles que, par exemple et sans 7 imputer de limitation, le temps de calcul pour chaque changement d'une variable particulière au cours d'une exécution de simulation. Dans certains modes de réalisation, l'identification ou la description des ressources utilisées dans les calculs liés à une variable particulière peut également être incluse dans un enregistrement de paramètre respectif. [0027] Une exécution totale de simulation 408 est incluse dans l'exécution de simulation 402 et peut être utilisée par le service d'apprentissage d'exécution 410 pour affiner ou améliorer davantage les prédictions d'exécution. Le service d'apprentissage d'exécution 410 peut recevoir l'exécution de simulation 402, y compris les références de ressources 404, et effectuer une analyse sur les données reçues. Dans certains modes de réalisation, le service d'apprentissage d'exécution 410 peut inclure un réseau de neurones pour produire un modèle prédictif à l'aide d'une pluralité d'exécutions de simulations reçues 402. [0028] Le service d'apprentissage d'exécution 410 peut transmettre des mises à jour à un modèle d'exécution mis à jour 412. Dans certains modes de réalisation, l'apprentissage d'exécution peut produire des gradients à transmettre au modèle d'exécution mis à jour 412. Les gradients peuvent être propagés dans un modèle existant afin d'améliorer la précision prédictive globale du modèle d'exécution mis à jour 412. [0029] La figure 5 est un organigramme décrivant un procédé 500 d'estimation et/ou d'optimisation d'une exécution de simulation. Dans certains modes de réalisation, le procédé 500 peut avoir lieu après qu'un ensemble complet de modèles d'exécution a été généré. Dans certains modes de réalisation, un modèle linéaire par défaut peut être utilisé jusqu'à ce que suffisamment de données aient été acquises à partir de l'achèvement du procédé 500 pour fournir un modèle correctement mis à jour. [0030] Dans tous les cas, une exécution de l'unité centrale peut être calculée pour le premier pas de temps d'une simulation (opération 502). Dans certains modes de réalisation, cela peut être fait par la mesure de la durée nécessaire pour réaliser complètement le premier pas de temps de la simulation. Dans certains modes de réalisation, un premier ensemble de pas de temps (par exemple, les cinq premiers pas de temps) peut être effectué et la durée de chaque réalisation de pas de temps peut être mesurée, puis une moyenne peut être calculée afin d'éviter de corrompre les données de mesure avec une valeur aberrante inattendue. [0031] À l'aide du temps de réalisation des pas de temps initiaux avec les modèles d'exécution, un temps total d'unité centrale pour réaliser complètement le modèle d'exécution peut être généré (opération 504). [0032] Les gains de parallélisation résultant de l'utilisation de plusieurs noeuds peuvent être identifiés (opération 506), par exemple, par la référence à un modèle décrivant une augmentation de l'accélération par rapport au nombre de processeurs et/ou de noeuds 8 utilisés pour réaliser un modèle. En d'autres termes, il est possible de déterminer si l'utilisation de davantage de noeuds et, dans certains cas, de davantage de processeurs pour réaliser la simulation dans des processus parallèles, peut accélérer l'exécution totale de la simulation. Dans certains modes de réalisation, le graphique 300 et des éléments similaires peuvent fournir une base pour une prédiction d'une augmentation de la vitesse. [0033] Le coût et la durée d'exécution dans le nuage de la mise en oeuvre d'un ou de plusieurs gains de parallélisation identifiés peuvent être déterminés (opération 508). Dans certains modes de réalisation, le coût d'une exécution plus longue sur moins de ressources peut être inférieur au coût d'une exécution plus courte sur plus de ressources. [0034] Sur la base des estimations de coût et d'exécution, une allocation de ressources ap- propriée peut être fournie pour l'exécution de simulation. La simulation peut ensuite être exécutée sur le nuage (opération 510). Dans certains modes de réalisation, des ressources et des optimisations de simulation peuvent être allouées de manière dynamique pendant l'exécution de simulation afin d'éviter la répétition des pas de temps et d'autres calculs liés à l'exécution de simulation. [0035] La figure 6 est un organigramme décrivant un procédé 600 de réallocation dynamique de ressources ou de réalisation d'optimisations de simulation «à mi-parcours ». Le procédé 600 peut être effectué par un service de surveillance passive lors de la détection d'événements de déclenchement de la simulation. Dans certains cas, un événement de déclenchement peut être une propriété intrinsèque de la simulation, telle qu'une exécution fonctionnant en dehors des limites prédites. Dans d'autres cas, le déclenchement peut même être un résultat de simulation anticipé de la modification envisagée de la simulation selon un plan. [0036] Le 600 peut se produire pendant ou en tant que partie du procédé 500 et, en par- ticulier, pendant l'exécution de simulation sur le nuage (opération 510), une exécution divergente peut être détectée (opération 602). Une exécution divergente peut être définie comme un temps de réalisation d'un pas de temps unique situé en dehors de certaines limites prédéterminées. Dans certains modes de réalisation, la divergence d'exécution peut être déterminée par l'agrégation d'une moyenne mobile et le fait de vérifier qu'elle se situe dans certaines limites prédéterminées. Dans d'autres modes de réalisation, des conditions statistiques particulières peuvent être incluses pour déterminer si une valeur d'exécution unique ou agrégée se situe en dehors des limites prédéterminées, telles que l'écart total par rapport à la moyenne d'exécution, une fréquence d'écart, et d'autres considérations similaires afin d'éviter les faux positifs dus aux événements de queue (par exemple, événements rares mais très divergents qui, néanmoins, se situent dans une courbe prédite). 9 [0037] Alternativement ou simultanément, un critère de seuil peut être détecté (opération 604). Les critères de seuil peuvent être déterminés avant la réalisation de la simulation. Dans certains modes de réalisation, les critères de seuil peuvent être, par exemple, des réductions de demande anticipées (dues, par exemple, à des décisions de politique commerciale externes à la simulation elle-même) ou des dates d'événement de location pour des sites de forage (par exemple, une location pour un site de forage particulier peut expirer à un moment donné et une simulation de réservoir peut inclure des modifications des schémas d'extraction en conséquence à un moment où la simulation approche la date anticipée). En conséquence, divers paramètres peuvent être modifiés, ajoutés ou supprimés, ce qui a un impact sur l'allocation optimale des ressources pour la réalisation de la simulation. Dans les deux cas, la simulation peut être arrêtée en conséquence (opération 606) afin d'optimiser la simulation et/ou les ressources la réalisant. [0038] La simulation étant arrêtée, les ressources peuvent ensuite être réallouées en conséquence (opération 608). À l'aide de modèles d'exécution produits par le système 400 avec des paramètres mis à jour en raison des critères de seuil détectés ou en raison d'une exécution différente de la prédiction, des ressources nouvelles ou autres peuvent être allouées. Lorsque l'exécution diffère du modèle, une allocation associée à une courbe d'exécution différente, bien que largement similaire, peut être fournie. [0039] La figure 7 est un schéma illustrant une réallocation de ressources qui peut être effectuée par un système 700 pour gérer des ressources de simulation. La simulation peut être surveillée par l'intermédiaire d'un portail de gestion 708 auquel les dispositifs clients 704A-D peuvent se connecter à distance. Le portail de gestion 708 peut gérer des demandes client pour la fourniture à un noeud principal 710 qui commande un cluster de ressources 712. Le cluster de ressources 712 peut inclure plusieurs noeuds esclaves 706A-D et le noeud principal 710 peut allouer ou déplacer des tâches sur les noeuds esclaves 706A-D à la demande des dispositifs clients 704A-D. Par exemple, les dispositifs clients 704A-D peuvent, individuellement ou en tandem, exécuter le procédé 500 et, en conséquence, transmettre des requêtes de simulation optimisée et/ou d'allocation de ressources au noeud principal 710 par l'intermédiaire du portail web 708. [0040] Pour revenir à la figure 6, des modifications d'un algorithme sous-jacent (par exemple, des modifications de la logique de l'algorithme) de la simulation peuvent également être ajustées (opération 610). Dans les cas où la simulation est mise à jour en raison d'une détection de seuil de critère par l'intermédiaire de l'opération 604, un ajustement de l'algorithme de simulation peut fournir la majeure partie de l'amélioration d'exécution. Un analyseur peut être utilisé pour examiner le code source de simulation pour des optimisations particulières. Dans certains modes de réalisation, l'analyseur peut être le même que celui utilisé pour préparer la simulation pour la réalisation initiale. [0041] Dans certains cas, l'ajustement de l'algorithme de simulation par l'intermédiaire de l'opération 610 peut entraîner une réallocation supplémentaire des ressources par l'intermédiaire de l'opération 608. Par ailleurs, une itération répétée de la réallocation de ressources peut en outre provoquer une réitération supplémentaire des optimisations d'algorithmes, déclenchant ainsi une boucle d'optimisation. Dans certains modes de réalisation, la boucle peut continuer jusqu'à ce que plus aucune optimisation ne soit détectée. Dans d'autres modes de réalisation, la boucle peut être limitée par une limite stricte telle qu'un nombre maximal de boucles ou une limite réactive telle qu'une amélioration anticipée de pourcentage minimal ou un élément similaire. [0042] Une fois les optimisations terminées, la simulation peut être redémarrée (opération 612). Dans certains modes de réalisation, la simulation recommencera à partir du même point où elle a été arrêtée afin de faciliter la réalisation transparente de la simulation et de réduire au maximum les efforts redondants. Dans d'autres modes de réalisation, la simulation peut reprendre à partir d'un pas de temps précédent afin de comparer la réalisation optimisée aux optimisations de réalisation précédentes connues. Lorsque des comparaisons sont effectuées, un tampon pour stocker un ou plusieurs états de simulation le(s) plus récent(s) et/ou une vitesse ou des vitesses de réalisation du pas de temps peut fournir des valeurs historiques à comparer avec la réalisation de la simulation optimisée. Dans certains autres modes de réalisation, la simulation peut être redémarrée dès le tout début afin de fournir une allocation de ressources cohérente et un état de réalisation tout au long du cycle de vie de la simulation. [0043] Pour revenir à la figure 5, une fois que la simulation a terminé la réalisation, les modèles d'exécution peuvent être mis à jour en fonction de l'exécution de simulation terminée (opération 512). Dans certains modes de réalisation, l'exécution totale de la simulation peut être utilisée pour mettre à jour un seul modèle de configuration et de simulation. Dans d'autres modes de réalisation, plusieurs modèles d'exécution peuvent être mis à jour sur la base de modifications de ressources, de paramètres de modèle et/ ou de l'algorithme de simulation tel que mis en oeuvre par le procédé 600 pour la mise à jour et l'optimisation dynamiques de simulations. [0044] Les mises à jour peuvent être traitées par le système 400 pour mettre à jour des modèles d'exécution. Par exemple, une exécution de simulation totale pour chaque configuration particulière et un ensemble de paramètres d'une itération de la simulation peut être fourni au service d'apprentissage d'exécution 410. Dans certains modes de réalisation, un compte du nombre total de pas de temps peut être fourni avec l'exécution de simulation totale afin de prendre en compte plusieurs configurations de simulation en raison du procédé de réallocation dynamique et d'optimisation 600. 11 [0045] La description ci-dessus inclut des exemples de systèmes, procédés, techniques, séquences d'instructions et/ou programmes informatiques incorporant les techniques de la présente invention. Cependant, il est entendu que l'invention décrite peut être pratiquée sans ces détails spécifiques. [0046] Bien que la présente invention ait été décrite avec des références à diverses mises en oeuvre, il sera entendu que ces mises en oeuvre sont illustratives et que la portée de l'invention n'est pas limitée à celles-ci. De nombreuses variations, modifications, ajouts et améliorations sont possibles. Plus généralement, des mises en oeuvre conformes à la présente invention ont été décrites dans le contexte de mises en oeuvre particulières. La fonctionnalité peut être séparée ou combinée en blocs différemment dans divers exemples de l'invention ou décrite avec une terminologie différente. Ces variations, modifications, ajouts et améliorations, ainsi que d'autres, peuvent entrer dans le champ de l'invention telle que définie dans les revendications ci-après. 12 [Revendication 11 [Revendication 21 [Revendication 31 [Revendication 41