Encore une fois, à propos du multithreading - page 2

 
Renat:

Qu'est-ce que le multithreading dans MetaTrader 5 :

J'ai cliqué sur le test, j'ai fait fonctionner instantanément 5 743 agents/CPU et j'ai exécuté 381 468 passages dans l'optimiseur en 6 minutes. Chaque passage prenait entre 1 et 2 secondes. Si j'avais effectué le test sur mon ordinateur avec 8 cœurs, j'aurais passé 800 à 1600 minutes au lieu de 6 minutes (381468 / 8 = 47683 secondes = 794 minutes).

Et à part appuyer sur le bouton de démarrage, je n'ai rien eu à faire d'autre. Un certain Skynet s'est levé, a synchronisé tout seul l'historique des graphiques nécessaires, a distribué la tâche à des milliers d'ordinateurs dans le monde et les a fait travailler en masse.

Bienvenue dans la réalité...

Renat, alors pourquoi pensez-vous que la portée du multithreading est limitée à votre testeur ? Que pensez-vous, que l'utilisateur n'a pas le droit d'implémenter l'auto-optimisation directement dans son algorithme ? Doit-il utiliser votre testeur ? Et s'il utilise son propre réseau neuronal ? Ne soyez pas si unilatéral. Et en même temps, m'accuser de ne rien comprendre. Vous ne voyez la situation que depuis votre propre clocher, et vous ne vous souciez pas du reste, comme je le comprends.

 
meat:

Quoi, vous pensez que l'utilisateur n'a pas le droit d'implémenter l'auto-optimisation directement dans son algorithme ? Doit-il utiliser votre testeur ? Et s'il y utilise son propre réseau neuronal ? Ne jugez pas les choses de façon si unilatérale.

Quel est le problème de le faire maintenant ?
 
meat:

Renat, alors pourquoi pensez-vous que la portée du multithreading est limitée à votre testeur ? Selon vous, l'utilisateur n'a pas le droit d'implémenter l'auto-optimisation directement dans son algorithme ? Doit-il utiliser votre testeur ? Et s'il utilise son propre réseau neuronal ? Ne soyez pas si unilatéral. Et en même temps, m'accuser de ne rien comprendre. Vous ne voyez la situation que depuis votre propre clocher, et vous ne vous souciez pas du reste, comme je le comprends.

J'ai 11 ans de réflexion, de travail et de responsabilité constants sur cette langue.

Alors, direction le jardin d'enfants. Si vous voulez spécifiquement du multithreading dans MQL5, vous feriez mieux d'utiliser OpenCL ou DLL. Pour comprendre le niveau d'élaboration de ce sujet, regardez la compilation du code C++ directement à partir de MetaEditor et le glisser-déposer des fichiers DLL du navigateur vers le code MQL5.

 

Lorsque le "MQL5 - réseau neuronal sur GPU" sera mis en œuvre, le prix de ce projet sera élevé. Aux premiers stades, il sera difficile, et c'est le tout début, de sorte que dans l'avenir pour chercher des défauts.

D'autant plus qu'avec l'aide du testeur, vous pouvez désormais résoudre des problèmes de toute complexité.

 
Renat:

J'ai 11 ans de réflexion, de travail et de responsabilité constants sur cette langue.

Alors, direction le jardin d'enfants. Si vous voulez spécifiquement du multithreading dans MQL5, vous devez utiliser OpenCL ou DLL. Pour comprendre le niveau d'élaboration de ce sujet également, regardez la compilation du code C++ directement à partir de MetaEditor et le glisser-déposer des fichiers DLL à partir de Navigator dans le code MQL5.

J'ai souligné la phrase clé. C'est en fait ce dont il s'agit depuis le début. Alors peut-être auriez-vous dû lire attentivement mes messages d'abord, plutôt que d'être impoli et de devenir personnel sans comprendre. Il est étrange de voir un comportement aussi grossier de la part de quelqu'un qui représente le visage de l'entreprise...

 
TheXpert:
Quel est le problème de le faire maintenant ?
Nous parlons de calculs multithreads.
 
meat:

J'ai souligné la phrase clé. En fait, c'est exactement ce dont je parlais depuis le début. Alors peut-être auriez-vous dû lire attentivement mes messages d'abord, au lieu de faire preuve de grossièreté et de personnalité. Il est étrange de voir un comportement aussi grossier de la part de quelqu'un qui représente le visage de l'entreprise...

On vous a parlé d'OpenCL et de DLL dans le tout premier commentaire, mais vous avez continué à dire que vous en saviez plus et que les développeurs étaient tellement médiocres qu'ils ne pouvaient pas faire ceci ou cela, qu'ils ont ajouté des choses inutiles, etc.

 
meat:

Quoi, vous pensez que l'utilisateur n'a pas le droit d'implémenter l'auto-optimisation directement dans son algorithme ? Doit-il utiliser votre testeur ? Et s'il y utilise son propre réseau neuronal ? Ne soyez pas si unilatéral. Et en même temps, m'accuser de ne rien comprendre. Vous ne voyez la situation que depuis votre propre clocher, et vous ne vous souciez pas du reste, comme je le comprends.

L'auto-optimisation peut également être organisée sous la forme de scripts séparés, combinés par des canaux nommés. Mais il est beaucoup plus facile d'utiliser le testeur interne et d'écrire votre propre fonction de fitness dans OnTester().
Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)
  • 2010.07.01
  • investeo
  • www.mql5.com
Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
 
Renat:

On vous a répondu immédiatement, mais vous avez continué à prétendre que vous savez mieux que moi et que les développeurs sont de tels médiocres qu'ils n'ont pas pu faire ceci et cela, des ajouts inutiles et ainsi de suite.


Et quelle a été votre réponse ? Vous avez commencé à me dire que vous aviez un terminal et un testeur formidables, travaillant dans de multiples flux. Et je n'ai pas dit un mot sur votre terminal. Je voulais parler d'une autre chose : le multithreading dans le code MQL. Lorsqu'un algorithme peut être divisé en plusieurs parties, et que chaque partie est exécutée en parallèle. Et vous, n'ayant même pas compris le but, vous commencez à être grossier. Eh bien, comme je le vois, avec cette approche, il n'y a aucun intérêt à discuter de quoi que ce soit de constructif, donc il n'y a aucun intérêt à poursuivre la discussion.

 
meat:

Et quelle a été votre réponse ? Vous avez commencé à me dire que vous aviez un terminal et un testeur formidables, travaillant dans de multiples flux. Et je n'ai pas dit un mot sur votre terminal. Je voulais parler d'une autre chose : le multithreading dans le code MQL. Lorsqu'un algorithme peut être divisé en plusieurs parties, et que chaque partie est exécutée en parallèle. Et toi, sans même en avoir compris l'essence, tu te mets à être grossier. Eh bien, comme je le vois, avec une telle approche, il n'y a aucun intérêt à parler d'une idée constructive, donc il n'y a aucun intérêt à poursuivre la discussion.

Je vous recommande de relire votre message original, de prêter attention à toutes vos épithètes, puis d'aller plus bas dans les réponses.

Les réponses sonnaient calmement, avec des questions douces "Pour paralléliser les calculs de quoi que ce soit, il faut d'abord réaliser", donnaient des réponses et expliquaient l'état actuel des choses "ce qu'il faut vraiment paralléliser".

Mais au lieu d'une courbe d'apprentissage rapide, vous avez craché plus d'absurdités et mis les chiens sur nous. Le résultat a été une réponse sévère.

Raison: