Utilisation optimale du processeur multicore [Résolu]

bizmoute
Messages postés
29
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
21 novembre 2008
- 20 nov. 2008 à 17:37 - Dernière réponse : bizmoute
Messages postés
29
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
21 novembre 2008
- 21 nov. 2008 à 16:00
Bonjour,
J'aimerais savoir comment faire pour utiliser le processeur de façon optimale. (Près du 100%)

Mon programme doit exécuter 4 lourdes tâches simultanément (donc 4 threads). Le processeur en question est un Quad Core. Donc j'imaginais qu'en utilisant 4 threads, le processeur serait utilisé de façon maximale mais ce n'est pas le cas... J'ai aussi tenté de changer la priorité du processus et des threads pour "Highest" (monThread.Priority = Threading.ThreadPriority.Highest) mais sans succès... L'utilisation des cores de mon processeur demeure bas (1% à 5% pour chaque core).

Une idée?
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
us_30
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
- 20 nov. 2008 à 23:22
3
Merci
A priori, des algos sont trop complexes pour les sortir de leurs contextes, afin qu'on puisse jeter un coup d'oeil ?

Amicalement,
Us.

Merci us_30 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de us_30
Kevin.Ory
Messages postés
843
Date d'inscription
mercredi 22 octobre 2003
Dernière intervention
7 janvier 2009
- 20 nov. 2008 à 18:32
0
Merci
Salut,
Tes tâches sont-elles lourdes au niveau calcul par le CPU? Car si par exemple tu copie des fichiers, c'est ton disque-dur qui sera à "100%" et qui limitera la vitesse d'exécution, pas les core du CPU...
Car 5% c'est vraiment faible, tu devrais facilement pouvoir arriver à 100% en faisant une boucle infinie avec un simple calcul.
Commenter la réponse de Kevin.Ory
bizmoute
Messages postés
29
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
21 novembre 2008
- 20 nov. 2008 à 19:11
0
Merci
Oui, c'est au niveau calcul, aucun fichier n'est créé/lue/modifié/etc.
Ex : concaténation de chaînes avec un StringBuilder, utilisation de Random.Next, itération.
Commenter la réponse de bizmoute
us_30
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
- 20 nov. 2008 à 22:29
0
Merci
Bonsoir,

Remarque peut-être incongru, mais as-tu regardé ce qu'il se passe au niveau des performances du pc (dans gestionnaire)... (Y a-t-il un programme bloquant installé, ou un virus...)

Amicalement,
Us.
Commenter la réponse de us_30
bizmoute
Messages postés
29
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
21 novembre 2008
- 20 nov. 2008 à 23:11
0
Merci
Merci d'avoir pris le temps de répondre les gars.
Et non ce n'est pas incongru Us ;)
Mais non, aucun programme bloquant.
Pour les virus, j'ai ma vigilance et Avast qui me semble satisfaisant..
Au niveau des performances du PC, rien de particulier à signaler, utilisation de l'UC entre 0 et 3 lorsque je ne fait rien...

Je vais utiliser des StopWatch pour évaluer quelles parties de mon code prennent le plus de temps à exécuter.. mais je ne crois pas que ça change quoi que ce soit sur l'utilisation du processeur par mon programme...
Commenter la réponse de bizmoute
nhervagault
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 21 nov. 2008 à 09:10
0
Merci
Salut,

Jettes un coup d'oeil sur le framework parallele FX

http://blog.sfartz.com/post/2007/12/05/Pare-pour-la-programmation-Parallele-Demarrez-avec-Parallel-FX
http://msdn.microsoft.com/en-us/concurrency/default.aspx
....

C'est une extension de linq pour paralléliser.

Sinon tu as perfmon (gratuit) sous windows pour voir comment réagissent la mémoire et les processeurs (core)

Bon coding
Commenter la réponse de nhervagault
bizmoute
Messages postés
29
Date d'inscription
vendredi 21 mars 2003
Dernière intervention
21 novembre 2008
- 21 nov. 2008 à 16:00
0
Merci
merci pour ces infos nhervagault. Très instructif!
Malheureusement, je ne suis pas encore rendu au .Net 3.5 avec Linq...
Existe-t-il quelque chose de semblable (un framework de tâches parallèles) pour le .Net 2.0?
Et pour perfmon, c'est une bonne idée.. ça va me donner des informations plus claires que le gestionnaire des tâches de Windows.
Commenter la réponse de bizmoute

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.