2 votes

Sur quel système d'exploitation la programmation threadée est-elle suffisante pour utiliser plusieurs cœurs ?

Je voudrais utiliser mes compétences en programmation multithreading (j'en ai), mais je me rends compte que cela ne suffit pas. Mes threads peuvent toujours se disputer le même cœur si le système d'exploitation n'est pas conscient de ce potentiel. Quelle combinaison système d'exploitation/compilateur/librairie puis-je utiliser sur l'architecture Intel Xeon pour faire du threading sur les cœurs ?

0voto

rmeador Points 15107

Comme d'autres l'ont dit, tout système d'exploitation moderne le fera pour vous. Cependant, la manière dont il le fait peut avoir un impact important sur les performances. Vous voudrez donc probablement utiliser les threads de la manière prévue par votre système d'exploitation. Voici Article de Wikipedia semble avoir une bonne vue d'ensemble des techniques d'ordonnancement utilisées par les principaux systèmes d'exploitation.

0voto

La plupart des systèmes d'exploitation modernes sont préparés pour le multiprocessing. Ils sont donc préparés pour le multicœur. Cependant, c'est l'ordonnanceur qui est responsable de la répartition des threads sur les cœurs. FreeBSD est l'un des systèmes d'exploitation multicœurs et multiprocesseurs les plus efficaces. Cependant, tous les systèmes d'exploitation ne sont pas capables d'ordonnancer les threads sur différents cœurs. Par exemple, l'ancien Windows 98 ne fonctionne pas avec plus d'un cœur. En outre, de nombreux systèmes d'exploitation ont des restrictions sur le nombre maximum de cœurs.

J'ai lu quelques messages sur Stackoverflow d'un utilisateur parlant d'un nouveau livre de Packt Publishing et j'ai trouvé l'article suivant sur la page web de Packt Publishing :

http://www.packtpub.com/article/simplifying-parallelism-complexity-c-sharp

J'ai lu Concurrent Programming with Windows, le livre de Joe Duffy. Maintenant, j'attends "C# 2008 and 2005 Threaded Programming", le livre de Hillar - http://www.amazon.com/2008-2005-Threaded-Programming-Beginners/dp/1847197108/ref=pd_rhf_p_t_2

0voto

Dans un autre billet, j'ai recommandé un nouveau livre. Si vous cherchez une réponse approfondie, je vous recommande de lire les deux premiers chapitres de "C# 2008 and 2005 threaded programming", par Gaston C. Hillar - Packt Publishing. Je ne connaissais pas la réponse à votre question avant d'acheter le livre il y a 5 jours. Maintenant, je suis capable de regarder mon Core 2 Quad Q6700 atteindre 98% d'utilisation du CPU en programmant en C# en utilisant 4 threads simultanés ! C'est plus facile que je ne le pensais. Si vous avez des connaissances en multithreading, ce sera encore plus facile pour vous. Je suis impressionné par les résultats que vous pouvez obtenir en utilisant plusieurs cœurs en même temps. Je recommande ce livre à ceux qui souhaitent s'initier à la programmation multicore ou threadée en C#. Je ne suis pas un programmeur C++. C'est pourquoi j'avais besoin d'un livre pour débutants en C# pour exploiter le multicore en utilisant les threads.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X