Évaluation des cœurs de processeur pour l'optimisation

 

Je suggère de recueillir des statistiques sur les performances des différents processeurs afin d'estimer leur efficacité pour le testeur de stratégie en mode optimisation.

Pour être plus objectif, je suggère d'utiliser un conseiller expert qui fonctionne en mode"Calcul mathématique", ce qui vous permet de minimiser l'utilisation du disque dur et de la mémoire de votre ordinateur. Si possible, précisez le nom du processeur, de la carte mère et la fréquence de la mémoire vive.

L'Expert Advisor n'a qu'un seul paramètre qu'il faut optimiser (en fait, ce n'est rien et les données sont identiques pour tous les agents - pour être objectif), spécifier le nombre de passes égal au nombre de threads et sélectionner les agents par le nombre de cœurs de processeur (pas d'hyper-entraînement !).

J'espère que les données recueillies aideront les gens à choisir un matériel d'optimisation qu'il est raisonnable de ne pas prendre de premier ordre, du moins c'est ce qui s'est passé dernièrement, mais cela peut changer.

L'Expert Advisor lui-même est un découpage d'un EA réel que j'utilise dans une tâche similaire pour sélectionner les feuilles d'un arbre de décision, c'est-à-dire qu'il s'agit d'une tâche réelle de MoD et si vous avez des idées pour accélérer le code, je serais très intéressé de les entendre. Il n'y a que 1000 feuilles dans le code, en réalité il y en a déjà plus de 70 000, donc elles sont mises dans une fonction pour un temps d'attente acceptable pour le résultat de la compilation.

2019.08.09 23:04:26.397 Terminal        Windows 7 Service Pack 1 (build 7601) x64, IE 11, Intel Core i5  M 450 @ 2.40 GHz, Memory: 2045 / 3766 Mb, Disk: 53 / 148 Gb, GMT+3
Dans le journal du testeur de stratégie, via le menu contextuel, cochez la case "Journal d'optimisation complet".
2019.08.09 22:41:25.630 Core 2  pass 2 returned result 1001000.00 in 0:04:50.391
2019.08.09 22:41:26.642 Core 1  pass 0 returned result 1001000.00 in 0:04:51.365
2019.08.09 22:46:09.036 Core 2  pass 3 returned result 1001000.00 in 0:04:43.441
2019.08.09 22:46:10.759 Core 1  pass 1 returned result 1001000.00 in 0:04:44.152
2019.08.09 22:46:10.759 Tester  optimization finished, total passes 4
2019.08.09 22:46:10.769 Statistics      optimization done in 9 minutes 36 seconds
2019.08.09 22:46:10.769 Statistics      shortest pass 0:04:43.441, longest pass 0:04:51.365, average pass 0:04:47.337

Ajouté : Dans ce fil de discussion, il s'est avéré que la taille du fichier dans certains (cela reste à découvrir) processeurs affecte les performances du système dans son ensemble, bien que le code structurellement ne change pas beaucoup. C'est pourquoi je demande à chacun de tester deux testeurs.

Exemple de paramètres de test - le symbole, la période et l'horizon temporel ne sont pas importants - les autres paramètres sont pertinents. La capture d'écran montre un autre EA, mais les paramètres sont corrects.


Jusqu'à présent, nous avons le classement suivant où le temps moyen en secondes a été utilisé - les deux dernières colonnes et la dernière colonne montre le nombre de passages du processeur en 1 heure.

Le tableau est filtré par la dernière colonne, comme l'option d'EA la plus lourde en termes de consommation de ressources de calcul.



Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
Dossiers :
 
Aleksey Vyazmikin:

Je suggère de collecter des statistiques sur les performances des différents processeurs afin d'estimer leur efficacité pour que le testeur de stratégie puisse travailler en mode optimisation.

Bonne initiative, je la soutiens.

Je reçois un avertissement lors de la compilation :

implicit conversion from 'number' to 'string'   Tree_Brut_TestPL.mq5    2567    16

C'est censé être comme ça ?

String :

   if(FrameAdd(Test_P,1,0,stat_values)==false)
 
Aleksey Vyazmikin:

Je suggère de recueillir des statistiques sur les performances des différents processeurs afin d'estimer leur efficacité pour le testeur de stratégie en mode optimisation.

Pour être plus objectif, je suggère d'utiliser un conseiller expert qui fonctionne en mode"Calcul mathématique", ce qui vous permet de minimiser l'utilisation du disque dur et de la mémoire de votre ordinateur. Si possible, précisez le nom du processeur, de la carte mère et la fréquence de la mémoire vive.

L'Expert Advisor n'a qu'un seul paramètre qu'il faut optimiser (en fait, ce n'est rien et les données sont identiques pour tous les agents - pour être objectif), spécifier le nombre de passes égal au nombre de threads et sélectionner les agents par le nombre de cœurs de processeur (pas d'hyper-entraînement !).

J'espère que les données recueillies aideront les gens à choisir un matériel d'optimisation qu'il est raisonnable de ne pas prendre au premier degré, du moins c'est ce qui s'est passé dernièrement, mais certaines choses ont pu changer.

L'Expert Advisor lui-même est un découpage d'un EA réel que j'utilise dans une tâche similaire pour sélectionner les feuilles d'un arbre de décision, c'est-à-dire qu'il s'agit d'une tâche réelle de MoD et si vous avez des idées pour accélérer le code, je serais très intéressé de les entendre. Il n'y a que 1000 feuilles dans le code, en réalité il y en a déjà plus de 70 000, donc elles sont mises dans une fonction pour une attente acceptable au moment de la compilation.

Sur quelle période devez-vous optimiser et à quelle échéance ? L'outil est-il important ?
 
Serhii Shevchuk:

Bonne initiative, je la soutiens.

Il donne un avertissement lors de la compilation :

Est-ce que c'est comme ça que ça doit être ?

Ligne :

Corrigé et relancé !

Testez-le.

 
Maxim Romanov:
Sur quelle période optimiser et à quelle échéance ? L'outil est-il important ?

En modeCalcul mathématique, cela n'a pas d'importance, aucun tic n'y est généré !

 
Qu'en est-il ? La souche de la fin des années 2000 ne décolle-t-elle plus ? :D
 
Artem Prischepa:
Qu'est-ce qu'il y a là-bas ? La souche de la fin des années 2000 ne décolle-t-elle plus ? :D

Essayez votre processeur et postez vos résultats - voyez s'il décolle ou s'il ne fait que rouler !

 

Un vieux cheval gâche-t-il le sillon ?

matériel informatique

Résultats :

2019.08.09 23:22:07.472 Tester  set "Custom max" as optimization criterion for mathematical calculations
2019.08.09 23:22:07.540 Experts optimization frame expert Tree_Brut_TestPL (EURUSD.m,H1) processing started
2019.08.09 23:22:07.592 Tester  cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt' deleted
2019.08.09 23:22:07.623 Tester  Experts\Tree_Brut_TestPL.ex5 math calculations test means no history and no symbol info for EURUSD.m
2019.08.09 23:22:07.623 Tester  complete optimization started
2019.08.09 23:22:07.648 Core 1  agent process started on 127.0.0.1:3008
2019.08.09 23:22:07.650 Core 2  agent process started on 127.0.0.1:3009
2019.08.09 23:22:07.652 Core 3  agent process started on 127.0.0.1:3010
2019.08.09 23:22:07.654 Core 4  agent process started on 127.0.0.1:3011
2019.08.09 23:22:07.657 Core 5  agent process started on 127.0.0.1:3012
2019.08.09 23:22:07.659 Core 6  agent process started on 127.0.0.1:3013
2019.08.09 23:22:07.662 Core 7  agent process started on 127.0.0.1:3014
2019.08.09 23:22:07.664 Core 8  agent process started on 127.0.0.1:3015
2019.08.09 23:22:07.972 Core 1  connecting to 127.0.0.1:3008
2019.08.09 23:22:07.973 Core 1  connected
2019.08.09 23:22:07.983 Core 1  authorized (agent build 2097)
2019.08.09 23:22:07.997 Core 1  common synchronization completed
2019.08.09 23:22:08.035 Core 3  connecting to 127.0.0.1:3010
2019.08.09 23:22:08.036 Core 3  connected
2019.08.09 23:22:08.046 Core 3  authorized (agent build 2097)
2019.08.09 23:22:08.056 Core 2  connecting to 127.0.0.1:3009
2019.08.09 23:22:08.057 Core 2  connected
2019.08.09 23:22:08.059 Core 3  common synchronization completed
2019.08.09 23:22:08.067 Core 5  connecting to 127.0.0.1:3012
2019.08.09 23:22:08.068 Core 5  connected
2019.08.09 23:22:08.068 Core 2  authorized (agent build 2097)
2019.08.09 23:22:08.082 Core 2  common synchronization completed
2019.08.09 23:22:08.083 Core 5  authorized (agent build 2097)
2019.08.09 23:22:08.103 Core 7  connecting to 127.0.0.1:3014
2019.08.09 23:22:08.104 Core 7  connected
2019.08.09 23:22:08.119 Core 7  authorized (agent build 2097)
2019.08.09 23:22:08.125 Core 5  common synchronization completed
2019.08.09 23:22:08.140 Core 7  common synchronization completed
2019.08.09 23:22:08.150 Core 4  connecting to 127.0.0.1:3011
2019.08.09 23:22:08.151 Core 4  connected
2019.08.09 23:22:08.151 Core 8  connecting to 127.0.0.1:3015
2019.08.09 23:22:08.151 Core 8  connected
2019.08.09 23:22:08.162 Core 8  authorized (agent build 2097)
2019.08.09 23:22:08.164 Core 4  authorized (agent build 2097)
2019.08.09 23:22:08.184 Core 6  connecting to 127.0.0.1:3013
2019.08.09 23:22:08.185 Core 6  connected
2019.08.09 23:22:08.208 Core 6  authorized (agent build 2097)
2019.08.09 23:22:08.228 Core 4  common synchronization completed
2019.08.09 23:22:08.240 Core 6  common synchronization completed
2019.08.09 23:22:08.250 Core 8  common synchronization completed
2019.08.09 23:24:45.931 Tester  optimization finished, total passes 8
2019.08.09 23:24:45.941 Statistics      optimization done in 2 minutes 38 seconds
2019.08.09 23:24:45.941 Statistics      shortest pass 0:02:35.945, longest pass 0:02:37.669, average pass 0:02:37.006
2019.08.09 23:24:45.941 Statistics      8000 frames (3.14 Mb total, 412 bytes per frame) received
2019.08.09 23:24:45.941 Statistics      local 8 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2019.08.09 23:24:45.988 Tester  8 new records saved to cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt'

Version du terminal :

2019.08.09 23:20:35.776 Terminal        MetaTrader 5 x64 build 2085 started (MetaQuotes Software Corp.)
2019.08.09 23:20:35.778 Terminal        Windows 10 (build 17763) x64, IE 11, UAC, AMD FX-8300 Eight-Core Processor , Memory: 17102 / 24574 Mb, Disk: 2407 / 2441 Gb, GMT+2
 
Serhii Shevchuk:

Un vieux cheval gâche-t-il le sillon ?

Résultats :

Version du terminal :

Il semble que vous ayez 8 agents impliqués, et vous avez besoin de 4, parce que les FPU dans les FX ont seulement 4 et 8 ALU, et c'est le FPU qui est chargé pendant l'optimisation. Pourquoi ainsi - n'est pas clair - question aux développeurs, parce que le code est construit en grande partie sur la comparaison, mais apparemment la consommation de calcul en virgule flottante prévaut ou fois plus lent, il s'avère donc qu'il est nécessaire de définir le nombre de coprocesseurs, puis 1 passage sera plus rapide et le temps moyen restera le même.

 
Aleksey Vyazmikin:

Il semble que vous ayez 8 agents impliqués et que vous ayez besoin de 4, puisque la FPU dans FX n'est que de 4 et 8 APU, et c'est la FPU qui est chargée pendant l'optimisation. Pourquoi il en est ainsi - n'est pas clair - question aux développeurs, parce que le code est principalement basé sur la comparaison, mais apparemment la consommation de calcul en virgule flottante prévaut ou est fois plus lente, donc il s'avère qu'il est nécessaire de définir exactement le nombre de coprocesseurs, alors 1 passage sera plus rapide et le temps moyen restera approximativement le même.

Veuillez clarifier. Je désactive 4 agents et je règle le paramètre à optimiser de sorte que j'obtienne 4 passes d'optimisation ou 8 passes ?
 
Serhii Shevchuk:
Veuillez clarifier. Dois-je désactiver 4 agents et définir le paramètre à optimiser de manière à obtenir 4 passes d'optimisation ou 8 passes ?

8 passe 4 agents, une sorte d'analogie avec l'hypercommerce - en fonction du nombre de fils.

Activez"Journal complet de l'optimisation" pour voir le temps de chaque passage.