Bonjour à tous,
Une question, peut-être naïve, quant au multithreading sur unités multi-processeurs/cores.
Je fais tourner, en parallèle de ma boucle principale qui effectue des calculs intensifs, un fil d'exécution qui nécessite beaucoup moins de ressources processeurs, mais qui doit réagir en toute circonstance. En gros, il est appelé toutes les 100 millisecondes par un appareil extérieur, et s'il n'est pas disponible à ce moment-là (typique quand l'autre fil bloque tout le processeur), tout plante. Tout ceci sous Linux, sur un processeur QuadCore, en utilisant <pthread>.
Pour éviter ce genre de plantages, j'ai essayé de réflèchir à une priorisation du thread léger par rapport à la boucle principale, mais je crois que cela n'est possible qu'entre deux threads.
D'où une idée : et si les deux parties de mon programme tournaient chacune sur un coeur préattribué du processeur, est-ce que ça ne règlerait pas le problème ?
D'où une interrogation : est-il possible d'attribuer aux threads créés un coeur dédié d'exécution, sur lequels ils tournent exclusivement ? Si non, avez-vous une idée pour résoudre ce problème ?
Merci à tous ceux qui prendront le temps d'illuminer mon lampion...![]()
Partager