2012-11-23 1 views
3

J'essaie de déterminer les CPU indépendantes (spécifiées avec des ID d'affinité) pour construire ATLAS sur une machine Linux avec 4 processeurs Intel avec hyperthreading (Ubuntu 12.04).Détermination des UC indépendantes (spécifiées avec des ID d'affinité) pour la construction d'ATLAS

La raison pour laquelle je fais cela est que le manuel d'ATLAS dit d'utiliser uniquement les noyaux physiques sur des machines avec hyper threading, sur la façon d'y parvenir, il dit: "...you can tell ATLAS to use only the real cores if you learn a little about your machine. Unfortunately, ATLAS cannot presently autodetect these features, but if you experiment you can discover which affinity IDs are the separate cores,..."

plus sur un indice est donné sur comment faire réellement cette expérimentation: "...Under Linux, I can discover this with cat /proc/cpuinfo..."

Sur ma machine le fichier/proc/cpuinfo contient les huit processeurs virtuels les informations suivantes:

    • processeur: 0
    • vendor_id: GenuineIntel
    • famille cpu: 6
    • modèle
    • : 42
    • nom du modèle: Intel (R) Core (TM) i7-2600 CPU @ 3.40GHz
    • pas à pas: 7
    • microcode: 0x1b
    • cpu MHz: 3392,333
    • taille du cache: 8192 KB
    • id physique: 0
    • fratrie: 8
    • id de base: 0

...

processeurs 0 et 4 partagent le même ID de base (et ainsi de suite pour les processeurs 1 et 5, 2 et 6, 3 et 7). Cependant, si je spécifie --force-tids = "4 0 1 2 3" dans le script de configuration d'ATLAS, la construction échoue (ce qui est d'abord perceptible pour moi par l'échec de make pcheck). Si je n'utilise pas ce drapeau, pcheck fonctionne correctement, comme indiqué ici: http://sourceforge.net/tracker/?func=detail&aid=3577908&group_id=23725&atid=379483.

Est-ce que quelqu'un sait comment je peux apprendre un peu de ma machine en expérimentant?

+1

Cela a été répondu à cette autre question http://superuser.com/questions/331308/find-which-ht-cores-are-sharing-a-physical-core-from-proc-cpuinfo/ 707287 # 707287 –

Répondre

0

Découvrez likwid (http://code.google.com/p/likwid/), je suis à peu près certain que cela vous permettra d'épingler les threads que ATLAS tire vers les seuls noyaux physiques de votre système. Ne sais pas par Hart comment, mais il peut.

+1

Merci, cela pourrait être une solution mais j'ai scanné la documentation et cela semble être un pont (sablonneux) trop loin pour moi ... – boojum

+0

Pourquoi vous sentez-vous que c'est un pont trop loin? C'est le bon outil pour les emplois, à mon humble avis. –

Questions connexes