Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour à tous.
Un conseil sur ce sujet très intéressant :
1. Existe-t-il déjà des EA pour le trading qui utilisent OpenCL pour les calculs ?
(il y a plus d'un an, le support a été annoncé et nous avons tous ensemble essayé les performances sur un script de test, mais beaucoup de temps a passé et le sujet est devenu silencieux...).
2. Si j'ai plusieurs cartes vidéo installées dans mon système, seront-elles toutes utilisées pour les calculs ou seulement l'une d'entre elles ?Il existe probablement, mais difficilement dans le kodobaz. Il y a peu de passionnés, et tous ne le font pas.
OpenCL est avantageux lorsqu'il permet d'accélérer considérablement les calculs, ce qui est essentiel pour le commerce. L'intégrer dans l'algorithme juste pour le plaisir de "shoblo" ou de charger la carte vidéo n'est pas très judicieux.
À mon avis, les résultats les plus sérieux peuvent être obtenus par des calculs intensifs bien parallèles ou pour les concepteurs de réseaux neuronaux. Cela vaut probablement la peine de leur demander.
Par exemple, personnellement, il y a une direction quim'intéresse, mais OpenCL n'y est guère nécessaire car il n'aurait guère d'utilité (trop d'opérations d'accès aléatoires en mémoire globale que seul le diable sait paralléliser). Je ne suis pas encore désespéré et je n'ai pas essayé toutes les possibilités raisonnables - mais ce ne sera certainement pas en accès libre.
2. Si vous avez plus d'une carte vidéo installée dans le système, seront-elles toutes utilisées pour le calcul ou seulement l'une d'entre elles ?
La société a parlé de problèmes liés à des cartes multiples ou même à des cartes à deux têtes. Je ne sais pas si elles sont résolues.
Bonjour.
Je fais des calculs en masse dans MetaTrader5, en résolvant un problème (modélisation d'une partie de poker). J'écris en Mcl5 parce que je suis un nerd et que je ne connais que ça. Dans mon cas, les questions de performance sont très importantes.
Je comprends donc que les tâches, où chaque étape de calcul successive n'est pas liée aux résultats des précédentes, peuvent être parallélisées. Bien ! J'ai justement une telle tâche.
Mais comment le paralléliser ? Si mon algorithme fonctionne avec des structures (struct) dont les méthodes
- Par exemple, ouvrir un fichier texte à partir d'un disque dur, le lire, ajouter des informations dans les tableaux de structure, fermer le fichier texte.
- et d'autres méthodes contiennent de nombreuses fonctions standard, par exemple rand(), ArrayResize(), etc.
OpenCl, tel que je le comprends, est un langage similaire à c++. Bref, ma question est la suivante : comment paralléliser les calculs en général ?
Bonjour.
Je fais des calculs en masse dans MetaTrader5, en résolvant un problème (modélisation d'une partie de poker). J'écris en Mcl5 parce que je suis un nerd et que je ne connais que ça. Dans mon cas, les questions de performance sont très importantes.
Je comprends donc que les tâches, où chaque étape de calcul successive n'est pas liée aux résultats des précédentes, peuvent être parallélisées. Bien ! J'ai justement une telle tâche.
Mais comment le paralléliser ? Si mon algorithme fonctionne avec des structures (struct) dont les méthodes
- Par exemple, ouvrir un fichier texte à partir d'un disque dur, le lire, ajouter des informations dans les tableaux de structure, fermer le fichier texte.
- et d'autres méthodes contiennent de nombreuses fonctions standard, par exemple rand(), ArrayResize(), etc.
OpenCl, tel que je le comprends, est un langage similaire à c++. Bref, ma question est la suivante : comment puis-je paralléliser les calculs en général ?
Google est l'aide.
Vous n'obtiendrez pas de réponse à une telle question sur ce forum.
Pour une simple combinaison de deux raisons :
Les programmeurs débutants ne programment pas du tout en OpenCL (et ne traitent pas du tout le parallélisme) car ils ne peuvent pas le comprendre.
2 Les programmeurs expérimentés ne veulent pas vous bricoler parce qu'elle (votre question) nécessite une étude approfondie de votre qualification, pour y répondre dans un langage compréhensible pour vous, et ensuite vous donner une longue explication de votre réponse.
Par conséquent, respectez les ressources en temps des programmeurs expérimentés et étudiez les bases vous-même. Mais lorsque vous aurez compris et que vous aurez des questions spécifiques sur le langage (OpenCL), vous aurez plus de chances d'avoir une conversation fructueuse.
on pourrait répondre qu'il est possible de paralléliser
seulement en C pur, seulement les opérations arithmétiques les plus simples
OpenCL 2.0
OpenCL 2.0 est la dernière évolution significative de la norme OpenCL, conçue pour simplifier davantage la programmation multiplateforme, tout en permettant d'accélérer facilement un large éventail d'algorithmes et de modèles de programmation. Comme base pour ces capacités accrues, OpenCL 2.0 définit un modèle d'exécution amélioré et un sous-ensemble des modèles de mémoire C11 et C++11, ainsi que des opérations de synchronisation et atomiques.
OpenCL 2.0 est la dernière évolution significative de la norme OpenCL, ..............
Où voulez-vous en venir ?
J'ai vu cette nouvelle et j'ai décidé de la poster ici. C'est intéressant de s'y plonger, mais je ne trouve pas encore le temps. Voici la même nouvelle en russe :
Adoption de la spécification OpenCL 2.0
Khronos Group a annoncé la ratification et la disponibilité de la version finale de la spécification OpenCL 2.0. Selon les développeurs, la sortie d'OpenCL 2.0 représente une étape importante dans l'évolution d'un standard open source et gratuit qui simplifie la programmation parallèle multiplateforme.
La nouvelle version améliore le modèle d'exécution et les sous-ensembles du modèle de mémoire de C11 et C++11, la synchronisation et les opérations atomiques. Il est dit que la nouvelle version d'OpenCL permet d'utiliser un éventail beaucoup plus large d'algorithmes et de modèles de programmation. La nouvelle version tient compte des souhaits des développeurs de logiciels qui utilisent OpenCL. Les spécifications sont déjà disponibles sur le site web de Khronos.
Les améliorations et les nouvelles fonctionnalités d'OpenCL 2.0 comprennent : la mémoire virtuelle partagée, le parallélisme imbriqué, l'espace d'adressage partagé, un meilleur traitement des images, notamment la prise en charge de sRGB. En outre, les développeurs mettent en avant les opérations atomiques C11, les pipelines de piles FIFO en mémoire et les extensions de pilotes installables pour Android.
J'ai vu cette nouvelle et j'ai décidé de la poster ici. C'est intéressant de s'y plonger, mais je ne trouve pas encore le temps. Voici la même nouvelle en russe :
Adoption de la spécification OpenCL 2.0
Khronos Group a annoncé la ratification et la disponibilité de la version finale de la spécification OpenCL 2.0. Selon les développeurs, la sortie d'OpenCL 2.0 représente une étape importante dans l'évolution d'une norme ouverte et gratuite qui simplifie la programmation parallèle multiplateforme.
La nouvelle version améliore le modèle d'exécution et les sous-ensembles du modèle de mémoire de C11 et C++11, la synchronisation et les opérations atomiques. Il est dit que la nouvelle version d'OpenCL permet d'utiliser un éventail beaucoup plus large d'algorithmes et de modèles de programmation. La nouvelle version tient compte des souhaits des développeurs de logiciels qui utilisent OpenCL. Les spécifications sont déjà disponibles sur le site web de Khronos.
Les caractéristiques et améliorations d'OpenCL 2.0 comprennent : la mémoire virtuelle partagée, le parallélisme imbriqué, l'espace d'adressage partagé, une meilleure gestion des images, y compris la prise en charge de sRGB. En outre, les développeurs mettent en avant les opérations atomiques C11, les pipelines de piles FIFO en mémoire et les extensions de pilotes installables pour Android.
Que dois-je faire avec ? Je dois l'intégrer en C#/C++ ?
Peut-être que Renat peut voir ce qu'on peut en tirer. Il est tout à fait possible que la nouvelle spécification donne de meilleures performances dans MQL5 également, n'est-ce pas ?
Quant à C#/C++, si besoin est, on peut aussi le laisser tomber. L'essentiel est d'obtenir le rendement maximal possible. ;)