Temps de calcul identique sur pc et station de calcul

Résolu/Fermé
huta Messages postés 2 Date d'inscription mercredi 16 mars 2016 Statut Membre Dernière intervention 17 mars 2016 - 16 mars 2016 à 21:02
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 17 mars 2016 à 15:40
Bonjour,

je travaille sur un algorithme d'optimisation combinatoire, et j'ai lancé mon programme sur plusieurs instances de mon problème en utilisant un ordinateur dell latitude : intel(R) Core(TM) i7-4600U CPU @ 2.10GHz 2.70GHz avec 8,00 Go RAM et OS 64-bits
ainsi que sur une station de calcul Dell precision : intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz 2.40GHz avec 32 GO de RAM et un OS de 64 bits.

Sauf que le temps de calcul ne s'améliore pas.
Pourriez-vous m'orienter svp?

A voir également:

1 réponse

simongremaud Messages postés 761 Date d'inscription mercredi 23 janvier 2013 Statut Membre Dernière intervention 7 novembre 2019 319
16 mars 2016 à 21:15
Bonjour,

Avez-vous développé en multi-thread? Si ce n'est pas le cas, il n'y a qu'un coeur du processeur qui travaille, et comme ils ont à peu près la même fréquence, ils feront le même temps.

Cordialement
0
Utilisateur anonyme
16 mars 2016 à 22:25
Je dirai processus à la place de thread, vu que plusieurs threads peuvent s'écécuter dans un même processus ( et donc n'utiliser qu'un seul coeur)
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 2 > Utilisateur anonyme
Modifié par cptpingu le 17/03/2016 à 15:44
Thread ou processus, c'est (pratiquement) la même chose, et la même manière d'être "schedulé" par le noyau. La seule différence entre thread et processus, c'est le partage de data.
Un thread partage le même espace que les autres threads, tandis que le processus ne partage pas cet espace avec les autres processus. On parle souvent d'un thread en tant que "lightweight process". Pour plus de détails: http://www.kroah.com/lkn/

Ce qui veut dire que 3 threads sur un ordinateur ayant 4 coeurs, seront bien répartis sur tous les coeurs et non sur un seul comme pourrait laisser le supposer le post de "Rocailleux".
De même avoir 5 processus sur ce même ordinateur, voudra dire que ça sera "schedulé", et ça pourrait très bien ne tourner que sur un ou deux coeurs (dans la pratique, ça devrait tout de même être correctement réparti sur les 4).
Mon point étant que non, un processus ne sera pas mieux parallélisé qu'un thread (ou inversement), et conseiller de faire un processus au lieu d'un thread me paraît injustifié.

Le noyau attribue des quantum de temps, et fait avancer chacun des threads ou processus selon des ordres de priorité internes. Il est ensuite important de différencier parallélisation (tâches sur différents coeurs) et concurrence (multi-tâches au sein d'un des coeurs), afin de correctement ajuster le nombre de threads et éviter de l'overhead à cause du context switching.

Deux excellents bouquins sur le sujet:
0
huta Messages postés 2 Date d'inscription mercredi 16 mars 2016 Statut Membre Dernière intervention 17 mars 2016
17 mars 2016 à 14:51
Non je n'ai pas développé en multi-thread. Merci pour la réponse.
0