Compilation des programmes MQL5 avec le jeu d'instructions AVX / AVX2 + FMA3 / AVX512 + FMA3 à partir du build 3902
Puis-je obtenir des explications/commentaires de la part des développeurs sur le fonctionnement de MT5 sur des processeurs avec des cœurs "économes en énergie" ?
Les gens sont généralement intéressés par le travail de testeur, mais je suis plus intéressé par le travail sur MT5 avec un grand nombre d'EA en cours d'exécution (et "multi EA" - plusieurs EA indépendants en un seul).
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Stanislav Korotky, 2023.08.26 21:09
Tout ceci n'est qu'une supposition dans le marc de café. MQ devrait fournir son propre benchmark (un programme comme PCMark, CineBench, Geekbench, etc.) - comme MetaTraderBench. Les questions relatives aux performances du CPU/GPU, aux graphiques, à la gestion des disques, etc. dans les tâches d'application seraient éliminées. Il serait plus facile de choisir une configuration de PC pour MT.Malheureusement, il n'existe pas de banc d'essai.
vous permettent de générer un code plus efficace et plus rapide.
Les développeurs peuvent-ils nous donner des éclaircissements ou des commentaires sur l'utilisation de MT5 sur des processeurs dotés de cœurs "économes en énergie" ?
Les gens sont généralement intéressés par le travail de testeur, mais je suis plus intéressé par le travail sur MT5 avec un grand nombre d'EA en cours d'exécution (et "multi EA" - plusieurs EA indépendants en un seul).
Nos tests ont montré :
- Passer du compilateur MSVC à Clang/LLVM donne une augmentation globale allant jusqu'à 25% - une croissance aussi monstrueuse que Google l'a déclaré à propos de Chrome builds
. C'est pourquoi MetaTrader 5 a été construit sur Clang pendant une longue période. - L'utilisation d'AVX dans la plateforme donne une augmentation sérieuse, sans spécifier de pourcentages
C'est pourquoi nous avons deux ensembles de terminaux clients : la version dépassée NoAVX sur MSVC pour les anciens processeurs et AVX sur Clang pour les modernes.
Installer détermine automatiquement la version à mettre. Livapdate aussi. - Nos dernières recherches montrent que AVX2 + FMA3 donne une amélioration par rapport à AVX
FMA3 aide dans les mathématiques vectorielles, ce qui devrait bien fonctionner pour notre classe de problèmes.
Nous allons bientôt publier la troisième série de programmes avec AVX2. Lors de la prochaine mise à jour, le terminal lui-même sélectionnera de manière transparente la nouvelle version.
Le travail avec les noyaux P/E dépend entièrement de Windows Scheduler et même Intel Thread Director (extension de Thread Manager) n'est pas totalement efficace dans l'attribution des tâches par importance. Il existe plusieurs cas limites où le répartiteur est inefficace ou douteux.
Essayer d'utiliser le masque d'affinité dans le cas général ne fait qu'empirer les choses. Surtout lorsque l'application tourne sur une machine virtuelle.
Vous ne pouvez utiliser le masque d'affinité que dans des cas particuliers d'optimisation stricte d'une application donnée.
Les recommandations générales concernant les processeurs sont simples : plus de cœurs, une fréquence plus élevée, plus de caches L1/L2, suffisamment de RAM à grande vitesse et de disques NVME.
Aujourd'hui, les processeurs grand public ont franchi avec assurance le seuil des 5 gigahertz. Par exemple, le Ryzen 7950X à 600 $ avec 32 threads fonctionne facilement à pleine charge à 4,5 - 5,0 gigahertz sur chaque cœur et produit des résultats étonnants.
Renat Fatkhullin #:
L'installateur détecte automatiquement la version à installer. Livapdate aussi.
Je mets à jour tous les terminaux en copiant trois fichiers exe (terminal, testeur, éditeur). Les gens conservent les versions précédentes sous la même forme - ces trois fichiers.
Ils affirment maintenant qu'ils peuvent être différents dans la même version. Et, par conséquent, avoir des performances différentes.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Comment démarrer avec MT5, résumé !
Fernando Carreiro, 01.09.2023 12:43 pm.
Comment cela affectera-t-il les produits Market à l'avenir ?
Je suppose que le processus de validation exigera que le produit soit compilé sans lui pour garantir le plus petit dénominateur commun.
Je mets à jour tous les terminaux en copiant trois fichiers exe (terminal, testeur, éditeur). Les personnes conservent les versions précédentes sous la même forme - ces trois fichiers.
Ils affirment maintenant qu'ils peuvent être différents dans la même version. Et, par conséquent, avoir des performances différentes.
Exactement - voyez la présence d'AVX dans la bannière de description de l'ordinateur au démarrage du terminal.
Nous recommandons de ne pas bloquer les mises à jour, car bientôt les terminaux s'arrêteront avec un avertissement au démarrage après avoir détecté le blocage.
Plusieurs fermes sont constamment bannies pour les raisons suivantes
- bloquer les mises à jour et produire des centaines de gigaoctets de mises à jour lors de redémarrages constants, ce qui alourdit notre infrastructure
- effacer tous les caches au démarrage du terminal et créer une charge sur les serveurs des courtiers
- redémarrer les terminaux dans toutes sortes de dockers/conteneurs/etd avec un environnement nu des dizaines de milliers de fois par jour.
Au lieu de se plaindre, ils doivent tourner la tête et penser à ceux qui les servent. "J'ai un disque de 5 Go, je fais des économies et le trafic est gratuit pour moi" ne dérange pas grand monde si cela entraîne le gaspillage des ressources d'un fournisseur de technologie ou d'un courtier.
Seuls les programmes compilés en mode "x64 Regular" seront acceptés sur le marché.
Il est très probable qu'à l'avenir nous étendions les possibilités du marché.
La sortie de MT5 est prévue pour le vendredi de la semaine prochaine. C'est pourquoi nous vous demandons de tester plus activement les nouveaux modes.
Nous recommandons de ne pas bloquer les mises à jour, car les terminaux s'arrêteront rapidement avec un avertissement au démarrage après la détection du blocage.
Effectuez-vous des transactions sur des versions comportant des bogues ? Je pense que vous êtes loin de la pratique de l'algo-trading.
Ne mettez donc pas à jour les bêtas de proda.
Les versions sortent tous les 3 mois. Et ces mauvais fermiers, qui ne mettent pas à jour, s'assoient sur des versions obsolètes pendant un an ou plus - ils ne se soucient pas du trading. Ils ont une approche purement utilitaire : "J'ai accompli ma tâche, je ne me soucie pas du reste".
J'écris spécifiquement sur les mauvais cas, car leurs propriétaires lisent certainement ce forum - mes explications s'adressent à eux.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Dans la prochaine version bêta, nous avons ajouté la possibilité de compiler les programmes MQL5 en utilisant le jeu d'instructions étendu AVX / AVX2 + FMA3 / AVX512 + FMA3.
Elles vous permettent de générer un code plus efficace et plus rapide.
Vous pouvez configurer les paramètres généraux pour les programmes individuels et les paramètres personnels pour les projets:
Participez aux tests en téléchargeant la version bêta à partir du serveur MetaQuotes-Demo ou en effectuant une mise à jour via la section "Aide" du menu.