-1

J'ai une tâche non parallélisable que je veux traiter aussi vite que possible. Cette tâche effectue un calcul pur, sans E/S.Affecter un processeur complet à un thread spécifique afin de maximiser les performances et d'éviter le changement de contexte

Bien sûr, cette tâche s'exécute sur un système multicœur et de nombreux autres processus effectuent simultanément des "choses" qui nécessitent également une utilisation de l'UC.

Aujourd'hui, ma tâche est optimisée autant que possible (disons que c'est parfait: -P), mon idée pour la relancer serait d'allouer un CPU complet à son thread. Dans ces conditions, aucun autre thread ne partagerait le CPU avec lui, et donc, aucun changement de contexte n'interromprait ma tâche; faire cela devrait accélérer encore un peu avec presque aucun effort. (bien sûr, ce serait fait au détriment d'autres processus, mais ce n'est pas un problème du tout: la plus haute priorité est donnée à ma tâche)

Mais comment puis-je faire ce que je veux? Je sais comment définir l'affinité du thread de ma tâche afin de l'assigner à un CPU donné mais ce CPU sera potentiellement partagé avec d'autres threads; mon problème est pas résolu

Merci pour votre aide

+0

double possible de [comment protéger une unité centrale de traitement à partir de l'ordonnanceur de Linux (empêcher la programmation des fils sur cette unité centrale de traitement)?] (Http://stackoverflow.com/questions/11111852/how-to-shield- a-cpu-from-the-linux-ordonnanceur-prevent-it-scheduling-threads-sur) –

Répondre