PDA

View Full Version : Linux e hypertreading


Daniele
19-06-2003, 21:33
Ho una curiosità: Linux trae qualche vantaggio dall'utilizzo di un processore Pentium 4 con hypertreading ?
A me sembra di no, sia con ht abilitato che disabilitato mi sembra che vada uguale, ma magari non me ne accorgo...come dentro windows ;)

Un'altra domanda l'hypertreading in pratica "fa vedere" al sistema 2 CPU quando invece ce n'è una sola, non è che per farlo andare devo ricompilare il kernel abilitando il supporto al multiprocessore ?

E per utilizzare le meorie dual channel c'è qualcosa da fare ?

Vorrei spremere al massimo il mio sistema:

MSI 865PE - P4-2600C - 2x512 MB DDR PC3200

AnonimoVeneziano
19-06-2003, 21:46
Mmmh, a quanto ho capito neccessiti di un kernel SMP , mi posti cosa ti dice "cat /proc/cpuinfo" ?

Grazie

Ciao

Daniele
19-06-2003, 23:40
Il P4-2600C lo metto su domani. Al momento nel mio PC c'è un P4-2400.
Siccome posso cambiarlo senza aggiungerci sopra un € volevo sapere se devo usare o meno un kernel particolare.

Con il 2400 che ho su al momento la risposta al comando che mi ha dato è questa:
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping : 4
cpu MHz : 2410.556
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 4810.34

Domani posto il risultato con l'altra CPU.
Secondo te allora con una CPU che supporta HT bisogna usare un kernel SMP ?

Per il dual channel non bisogna fare niente vero ?

ilsensine
20-06-2003, 07:15
Originally posted by "Daniele"


Secondo te allora con una CPU che supporta HT bisogna usare un kernel SMP ?

Sì. L'HT è come avere due processori, che condividono diverse risorse e quindi sono meno potenti di due processori "puri".

Daniele
20-06-2003, 08:39
Ma in termini di prestazioni c'è differenza ?

Ve lo potrei dire io se solo sapessi come fare un benchmark sotto linux ... :D

lovaz
20-06-2003, 08:43
Originally posted by "Daniele"

... non è che per farlo andare devo ricompilare il kernel abilitando il supporto al multiprocessore ?...
Non serve, la mandrake dovrebbe avere il kernel smp precompilato, basta che installi l'rpm

Daniele
20-06-2003, 09:36
Originally posted by "lovaz"


Non serve, la mandrake dovrebbe avere il kernel smp precompilato, basta che installi l'rpm
lo so, ma di solito me lo ricompilo togliendo un bel po' di robaccia

AnonimoVeneziano
20-06-2003, 10:27
Infatti ti serve il kernel SMP , come vedi "cat /proc/cpuinfo" riporta solo una CPU

CIao

Daniele
20-06-2003, 14:50
Ho installato un kernel smp e montato la cpu col supporto all' HT
il sistema vede comunque una sola CPU

[daniele@localhost daniele]$ uname -r
2.4.21-0.18mdksmp
[daniele@localhost daniele]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.60GHz
stepping : 9
cpu MHz : 2611.744
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 5216.66

lovaz
20-06-2003, 15:15
Strano...
dovresti vedere una riga
siblings: 2
Ho trovato questo:
http://lists.insecure.org/lists/linux-kernel/2002/Dec/3248.html
Sei sicuro che sul tuo proc sia attivato l'ht?
potrebbe avere il core di un p4 3.04 ht, e quindi segnalare il flag ht
inoltre alcuni hanno segnalato l'ht funzionante nei k. 2.5, ma non nei 2.4
boh?
non e' che per caso hai "noapic" nel lilo.conf?

Daniele
21-06-2003, 00:17
La CPU e HT
ha il bus a 800 mhz e nel bios HT è abilitato. Addirittura Hypertreading è scitto sia sulla scatola della CPu che della MoBo

noapic non c'è nel lilo.conf.

Daniele
21-06-2003, 00:25
Ora funziona.
non so se c'entra qualcosa, ma ho rimosso la riga acpi=off nel lilo.conf.

Adesso sapete consigliarmi un benchmark per vedere se c'è differenza tra l'utilizzo di un kernel normale e un kernel-smp

Questo è il risultato di cat /proc/cpuinfo

[daniele@localhost daniele]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.60GHz
stepping : 9
cpu MHz : 2611.787
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 5216.66

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.60GHz
stepping : 9
cpu MHz : 2611.787
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 5216.66

DaRkBoDoM
21-06-2003, 00:52
Mhhh... ma l'Ht è in tutti i P4 o da una certa versione in poi?

Daniele
21-06-2003, 07:42
Che io sappia, solo in quelli con il bus a 800 mhz

#!/bin/sh
21-06-2003, 07:52
Prova a vedere se migliorano le prestazioni nella compilazione. vedi quanto ci mette a compilare il kernel senza ht e poi abiliti l'ht e per compilare dai il comando:
make -j2 bzImage
In pratica lancia due make alla volta.

Daniele
21-06-2003, 14:36
Ho provato a compilare lo stesso kernel utilizzando o meno l'hypertreading. E devo dire che la differenza si vede eccome...
Giudicate voi:

2min56" make -j2 con HT abilitato
3min27" make con HT abilitato
3min27" make con HT disabilitato
3min29" make -j2 con HT disabilitato

:eek: :eek: :eek:

#!/bin/sh
21-06-2003, 15:57
bouno a sapersi. :)

Krakz
21-06-2003, 17:32
Originally posted by "Daniele"

Ho una curiosità: Linux trae qualche vantaggio dall'utilizzo di un processore Pentium 4 con hypertreading ?
A me sembra di no, sia con ht abilitato che disabilitato mi sembra che vada uguale, ma magari non me ne accorgo...come dentro windows ;)



il software deve supportare HT (se no ti puo andare anche piu lento :eek: )

AnonimoVeneziano
21-06-2003, 18:24
Originally posted by "Krakz"



il software deve supportare HT (se no ti puo andare anche piu lento :eek: )

Stai scambiando Linux con Windows mi sa :D


Comunque per sfruttarlo (cioè per avere un aumento prestazionale senza rallentamenti ) ci vogliono applicazioni MultiThreading che creino processi da far migrare (come make -j2 ad esempio) , infatti make normale non accusa alcun effetto

Ciao

Daniele
21-06-2003, 19:39
Non è che qualcuno mi sa dire come fare per far andare in multithreading le applicazioni + diffuse ?

Se non me lo dicevate io continuavo ad usare il make senza il -j2 e la spesa per il processore HT non sarebbe servita a niente...

AnonimoVeneziano
21-06-2003, 20:00
Purtroppo è l'applicazione chedeve essere predisposta per il MultiThread

Ciao

VICIUS
21-06-2003, 20:18
come ti ha gia detto anonimo applicazioni come mplayer che sono state progettate per essere esclusivamente singlethread non riuscirai mai a farle andare con piu processi. l'unico rimedio sarebbe mettere mano nei sorgenti ma a volte è davvero proibitivo.

se ti puo essere di consolazione Matrix sul tuo P4 andrebbe molto bene. qui c'è il codice che gestisce l'agente smith :D
do
fork agent ( smith );
repeat;

ciao ;)