Question pour les développeurs - utilisation de tous les cœurs de calcul pendant l'optimisation

 

Pourquoi, pendant l'optimisation, metatrader 5 (dernières versions) n'utilise pas tous les cœurs de calcul disponibles ? J'ai marqué en vert les cœurs qui effectuent des calculs, les autres sont inactifs.

 
Boris Egorov:

Pourquoi Metatrader 5 (dernières versions) n'utilise-t-il pas tous les cœurs de calcul disponibles lors de l'optimisation ? J'ai marqué en vert les cœurs qui effectuent des calculs, tandis que les autres sont inactifs.

Ils ne sont pas inactifs, ils ont terminé des calculs et attendent que d'autres passes se terminent.

 
Ihor Herasko:

Ils ne sont pas inactifs, mais ont terminé leurs calculs et attendent que d'autres passes se terminent.

Exactement, qu'est-ce qu'ils attendent alors que d'autres passes peuvent être effectuées sur d'autres cœurs et il semble que cela ait quelque chose à voir avec cela, j'ai des agents sur mon réseau, et quand il est dit autorisé mais que le calcul n'est pas terminé, cela ne compte tout simplement pas plus.

 
Boris Egorov:

Exactement, qu'est-ce qu'ils attendent alors que d'autres passes peuvent être faites sur d'autres cœurs et il semble que cela ait quelque chose à voir avec cela, j'ai des agents sur mon réseau, et quand il est dit autorisé mais que le calcul n'est pas terminé, il ne compte tout simplement pas sur...

 
Je suis tombé sur QuickCPU sur internet. Le site web sur lequel je l'ai téléchargé disait quelque chose comme ça. "De nombreux programmes ne savent même pas que les noyaux existent. QuickCPU les met à profit pour travailler." Essayez-le et voyez si cela vous aide. Je l'ai téléchargé à partir dehttps://howdyho.net/ - recherchez-le - il n'y a pas beaucoup de programmes là-bas - beaucoup de choses utiles.
 
Boris Egorov:

Exactement, qu'est-ce qu'ils attendent alors que d'autres passages peuvent être effectués sur d'autres cœurs et il semble que cela soit lié à ce blocage, j'ai des agents dans mon réseau, et donc quand il écrit autorisé mais que le calcul n'est pas terminé, il ne compte tout simplement pas plus.

Malheureusement, c'est ainsi que cela fonctionne dans MT5 : les paquets sont générés et distribués, mais lorsqu'ils sont terminés dans certains agents, ils ne sont pas redistribués. J'ai déjà beaucoup écrit à ce sujet. C'est une honte que les noyaux soient inactifs.

Les développeurs ne le considèrent pas comme une priorité. Ils semblent avoir beaucoup de cœurs sur leurs ordinateurs de travail et ils sont rapides, ce qui compense le problème. En outre, ils s'occupent principalement de programmation, et non d'optimisation, comme nous le faisons.

 

>c'est ainsi que fonctionne le MT5 pour distribuer les paquets de travaux. les paquets sont générés, distribués, mais lorsque certains agents terminent, ils ne sont pas redistribués.

et ceci est une erreur ... J'ai eu une panne de courant aujourd'hui et les paquets qui ont été distribués aux agents du réseau sont toujours introuvables .....

 
Boris Egorov:

>c'est ainsi que fonctionne le MT5 pour distribuer les paquets de travaux. les paquets sont générés, distribués, mais lorsque certains agents terminent, ils ne sont pas redistribués.

et ceci est une erreur ... J'ai eu une panne de courant aujourd'hui et les paquets de travaux qui ont été distribués aux agents ne sont pas calculés .....

J'ai trouvé deux messages sur les agents - #375 et #379

Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.22
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 

A propos de l'utilisation des cœurs physiques uniquement -

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Le testeur de stratégie du gestionnaire d'agents Metatester 5 ne voit pas les fils du processeur.

Renat Fatkhullin, 2019.11.27 06:12

En raison du manque franc de mémoire avec un trop grand nombre d'agents et de la chute de la vitesse des calculs sur les cœurs hypertrading, nous avons décidé de nous limiter aux cœurs physiques uniquement lorsque nous travaillons dans les cludes.

Actuellement, des tâches très coûteuses sont exécutées dans le cludge, et la grande majorité des participants au cludge n'ont tout simplement pas assez de mémoire lorsqu'il y a trop d'agents. Par exemple, 2 gb par agent et 16 agents nécessitent déjà au moins 32 gb de mémoire, même s'il y a généralement 8-16 gb disponibles.

En conséquence, de nombreux passages sont ratés, ce qui entraîne un gaspillage de la charge du réseau et des agents. Plus important encore, elle ralentit le calcul en raison de l'attente des résultats et du redémarrage des tâches.

Nous évaluons depuis longtemps l'adéquation approximative des ressources des agents avant de leur confier des tâches, et l'une des méthodes les plus efficaces consiste à ne travailler que sur des cœurs physiques dans le nuage.

Localement, vous pouvez utiliser tous les cœurs car vous pouvez facilement réussir à les désactiver.

Et ce billet porte sur la manière dont tout cela se développe -

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Le testeur de stratégie du gestionnaire d'agents Metatester 5 ne voit pas les threads du CPU.

Renat Fatkhullin, 2019.11.27 07:18

Après le lancement, nous entreprenons une refonte radicale de la gestion des ressources du testeur et de ses agents.

Cela affectera principalement l'efficacité des agents locaux.


 

Je n'ai pas de tels problèmes, il voit les threads et n'est pas limité aux cœurs physiques ... l'image montre les paramètres des processeurs et la taille de la mémoire ...

à propos de la mémoire, je ne comprends pas du tout - swap pour quoi faire ? les vents n'ont jamais été limités à la quantité de RAM .... donc je ne vois pas bien où est le problème dès le départ.

>Savez-vous qu'en plus de SMT2, il y a SMT4, SMT8 - quand un cœur physique peut faire 4 ou 8 threads simultanément, au lieu de 2 comme chez Intel ? Et il s'agit d'une tendance mondiale dans le domaine du calcul à haute performance. Ces processeurs font fonctionner le superordinateur le plus puissant de la planète. Je ne recommanderais pas de faire avec Metatrader ce que font les personnes plus expérimentées.


Le problème est différent et il est présenté dans l'image.

par exemple, il y a 20 cœurs, 19 ont terminé les calculs et sont inactifs, et l'un d'entre eux a besoin de 10 autres calculs, pourquoi ne pas faire ces calculs sur les cœurs/threads libres - donc la solution n'est pas de donner à chaque cœur un tas de tâches à la fois, mais de donner une seule tâche, le principe est simple : un thread - une tâche, terminé obtient la prochaine tâche ...

 
Boris Egorov:

Je n'ai pas de tels problèmes, il voit les threads et n'est pas limité aux cœurs physiques ... l'image montre les paramètres des processeurs et la taille de la mémoire ...

à propos de la mémoire, je ne comprends pas du tout - swap pour quoi faire ? les vents n'ont jamais été limités à la quantité de RAM .... donc je ne vois pas bien où est le problème dès le départ.

>Savez-vous qu'en plus de SMT2, il y a SMT4, SMT8 - quand un cœur physique peut faire 4 ou 8 threads simultanément, au lieu de 2 comme chez Intel ? Et il s'agit d'une tendance mondiale dans le domaine du calcul à haute performance. Ces processeurs font fonctionner le superordinateur le plus puissant de la planète. Je ne recommanderais pas de faire avec Metatrader ce que font les personnes plus expérimentées.


Le problème est différent et il est présenté dans l'image.

Le problème est différent et il est présenté dans l'image : vous avez, par exemple, 20 cœurs, 19 ont terminé les calculs et sont inactifs, et 10 autres calculs sont nécessaires sur l'un d'entre eux, pourquoi ne pas utiliser les cœurs/fils libres au lieu de donner à chaque cœur une pile gigantesque de tâches, juste une tâche, le principe est simple : un fil - une tâche, quand vous avez terminé vous obtenez la tâche suivante....

Je suis d'accord avec vous, c'est une idée judicieuse. Je n'utilise pas l'optimisation, mais quand je l'utilisais, je me demandais toujours pourquoi tous les fils avaient terminé l'optimisation et qu'un seul obtenait plusieurs passages supplémentaires. N'est-il pas possible de redistribuer les tâches restantes...

Raison: