Utilisation optimale du processeur multicore [Résolu]

bizmoute 29 Messages postés vendredi 21 mars 2003Date d'inscription 21 novembre 2008 Dernière intervention - 20 nov. 2008 à 17:37 - Dernière réponse : bizmoute 29 Messages postés vendredi 21 mars 2003Date d'inscription 21 novembre 2008 Dernière intervention
- 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 

7 réponses

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

Amicalement,
Us.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de us_30
Kevin.Ory 843 Messages postés mercredi 22 octobre 2003Date d'inscription 7 janvier 2009 Dernière intervention - 20 nov. 2008 à 18:32
0
Utile
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 29 Messages postés vendredi 21 mars 2003Date d'inscription 21 novembre 2008 Dernière intervention - 20 nov. 2008 à 19:11
0
Utile
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 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 20 nov. 2008 à 22:29
0
Utile
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 29 Messages postés vendredi 21 mars 2003Date d'inscription 21 novembre 2008 Dernière intervention - 20 nov. 2008 à 23:11
0
Utile
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 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 21 nov. 2008 à 09:10
0
Utile
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 29 Messages postés vendredi 21 mars 2003Date d'inscription 21 novembre 2008 Dernière intervention - 21 nov. 2008 à 16:00
0
Utile
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.