View Full Version : Dúvida cliente SMP (Linux)
Boas,
tenho uma dúvida que não consigo esclarecer com as minhas pesquisas.
Eu tenho um processador Intel P4 @ 3.2 GHz Hyper Threading Prescott 640 (64 bits). Tenho o Ubuntu (GNU/Linux) a 64 bits instalado.
Descarreguei o cliente SMP para Linux por ser o único de falava em 64 bits. Ele corre perfeitamente no meu sistema, mas eu não sei é se estou a usar todo o sistema operativo (as duas threads). Só está uma consola e o Machine ID é "1". Para o correr faço simplesmente "./fah6".
Estou a fazer tudo bem? É a melhor solução para o meu sistema (64 bits, hyper threading, Linux)?
aluminium23 26-01-2008, 21:00 Se é SMP, utiliza todos os recursos do CPU, a não ser que tenhas definido para usar menos que 100% do processador.
E o SMP funciona bem num PC Hyper-Threading? Ou é preferível instalar duas consolas normais?
aluminium23 27-01-2008, 15:19 Quanto a isso não sei, mas se funcionar bem, é uma diferença bastante grande em relação a duas consolas, em termos de pontos.
Na SMP FAQ (http://folding.stanford.edu/English/FAQ-SMP):
What about hyperthreaded (HT) CPUs?
The SMP client was originally intended for multi-core CPUs, which generally do not support HT. For machines with 2 physical CPUs, we do recommend enabling HT for the SMP client as this presents the operating system with what looks like 4 logical processors (and our SMP client is intended for 4 processors). If you have 4 physical CPUs, we recommend against using HT, as this presents the operating system with 8 logical processors, which will make the SMP client run inefficiently (especially since the logical processors coming from HT run much slower than the normal ones).
Portanto, não deve funcionar (pelo menos bem).
Quanto a isso não sei, mas se funcionar bem, é uma diferença bastante grande em relação a duas consolas, em termos de pontos.
Estive agora a ver que não estava a fazer nada de jeito, ou seja, asneira.
Então o que se passava era: eu tinha descarregado o executável SMP 6.01. Este é um "integrado" da versão SMP e de uma versão single-core. Eu estava a corrê-lo como "./fah6". Assim ele estava a descarregar um núcleo "normal" e estava a foldar uma WU de somente 170 e tal pontos com uma deadline que nunca mais acabava.
Como só estava uma consola a correr e o machine ID era "1" ele estava a usar só uma thread do processador de 3.2 GHz o que era só 1.6 GHz. Cheguei então à conclusão que tinha de correr o executável com a flag "-smp".
Feito parvo, paro o cliente de folding e arranco-o em "./fah6 -smp". Ele descarrega um core novo e manda a WU que estava a fazer em single-core à vida. Vou ver ao FAH-mon e apercebo-me de que com um core SMP ele faz WUs de muito mais pontos (mil e tal), no entanto este processador não pode despachar aquilo com aquele prazo (3 dias) de maneira nenhuma.
Acho que então a maneira mais eficaz deve ser a que estou a usar agora: fui á BIOS, desliguei o HT (agora o processador é reconhecido como um só núcleo) e tenho a consola 6.01 (a que inclui o SMP) a correr sem a dita flag "-smp".
Agora estou é em dúvida se esta versão 6.01 para Linux também funciona a 64 bits quando está em modo de single-core...
Cumps
Estando a correr a consola "normalmente", é preferível talvez que tenhas o HT ligado.
Sobre a 6.00b1 (e não 6.01 ;)) para Linux funcionar em 64 bits, creio que sim. Independentemente de estares com HT ligado ou não.
Boas
Eu experiementei o cliente smp no meu P4 a 3.6Ghz e funcionou bem, num WU 2635 - 1760Pts o meu processador fazia 50 minutos por cada 1%, ou seja demoraria 3dias e 8horas a terminar a WU, ou seja dentro do prazo estipulado, e faz cerca de 530ppd's.
So que eu não tenho o pc ligado 24/24, porque se o tivesse continuaria a usar o cliente smp.
Mas isto será por pouco tempo, pois pretendo mudar para um Pentium Dual core E2180 na proxima semana, e ai já poderei usar o cliente smp sem problemas.
Estando a correr a consola "normalmente", é preferível talvez que tenhas o HT ligado.Mas se tiver o HT ligado tenho que ter duas consolas, não é? Se só tiver uma ele vai usar uma thread só (que é metade do processador)?
Sobre a 6.00b1 (e não 6.01 ;)) para Linux funcionar em 64 bits, creio que sim. Independentemente de estares com HT ligado ou não.
Obrigado pela correcção ;). Aqui não me refiro a ter o HT ligado, mas sim ter o cliente a correr com a flag "-smp" ou não.
Anyway, agora estou com o HT desligado, uma consola e a versão 5.04 e acho que está normal.
Lê esta thread: http://www.techzonept.com/showthread.php?t=76174
Acho que estas a fazer confusão entre HT, Dual-Core e entre os clientes.
Em HT não tens dois núcleos no CPU, apenas um. O que acontece é que o CPU simula que existem dois para teoricamente processar mais no mesmo espaço de tempo (nunca é o dobro).
Em Dual core tens dois núcleos físicos no CPU. Significa que o CPU processa duas coisas diferentes ao mesmo tempo, porque tem dois núcleos físicos que o permitem isso.
Resumindo, HT simula dois núcleos virtuais por cada núcleo físico (no teu caso 1 núcleo físico -> 2 virtuais), em Dual core há mesmo dois núcleos físicos.
Lê esta thread: http://www.techzonept.com/showthread.php?t=76174
Acho que estas a fazer confusão entre HT, Dual-Core e entre os clientes.
Em HT não tens dois núcleos no CPU, apenas um. O que acontece é que o CPU simula que existem dois para teoricamente processar mais no mesmo espaço de tempo (nunca é o dobro).
Em Dual core tens dois núcleos físicos no CPU. Significa que o CPU processa duas coisas diferentes ao mesmo tempo, porque tem dois núcleos físicos que o permitem isso.
Resumindo, HT simula dois núcleos virtuais por cada núcleo físico (no teu caso 1 núcleo físico -> 2 virtuais), em Dual core há mesmo dois núcleos físicos.
Shello, acho que tu é que não percebeste o que eu disse (talvez por culpa minha). Eu sei o que é o HT, sei o que são threads (núcleos virtuais), cores e sei a diferença entre um HT e um dual-core.
Continuas aí a fazer uma confusão na terminologia. Threads (http://en.wikipedia.org/wiki/Thread_(computer_science)) são como como "sub-processos" (tarefas) que estão a ser executados no CPU. Não são cores virtuais ;)
Voltando ao teu outro post:
Mas se tiver o HT ligado tenho que ter duas consolas, não é? Se só tiver uma ele vai usar uma thread só (que é metade do processador)?
Não é necessário, mas podes fazer. Com um só cliente (e com HT activado) vai ser usado o CPU a 100% na mesma (num dos núcleos virtuais), apesar de ainda continuar "tempo de processamento" livre (pois o HT consegue fazer com que duas coisas possam ser processadas ao mesmo tempo, como sabes).
Sobre a 6.00b1 (e não 6.01 ;)) para Linux funcionar em 64 bits, creio que sim. Independentemente de estares com HT ligado ou não.
Obrigado pela correcção ;). Aqui não me refiro a ter o HT ligado, mas sim ter o cliente a correr com a flag "-smp" ou não.
Eu estava a responder a:
Agora estou é em dúvida se esta versão 6.01 para Linux também funciona a 64 bits quando está em modo de single-core...
Por "single-core" entendi sem HT activado.
Mesmo sendo o teu CPU a 64bits, só tem um núcleo físico, pelo que o SMP não é suportado (isto não quer dizer que não funcione) para esse CPU, logo, deves correr o cliente 5.04 ou o 6.00b1 sem a flag -smp.
Anyway, agora estou com o HT desligado, uma consola e a versão 5.04 e acho que está normal.Sim, em principio está tudo normal. Mas talvez fosse preferível activares o HT (mesmo sem ter outro cliente a funcionar) para que o folding pudesse estar a utilizar os recursos o mais possível (em principio (e em teoria) outras tarefas devem ser "canalizadas" para o que o HT dá a mais, e o folding deve ficar "intacto" enquanto não for preciso mais recursos (pedidos por outras aplicações) do que o CPU deve poder oferecer com o HT).
:kfold:
Continuas aí a fazer uma confusão na terminologia. Threads (http://en.wikipedia.org/wiki/Thread_%28computer_science%29) são como como "sub-processos" (tarefas) que estão a ser executados no CPU. Não são cores virtuais ;)
Voltando ao teu outro post:
Não é necessário, mas podes fazer. Com um só cliente (e com HT activado) vai ser usado o CPU a 100% na mesma (num dos núcleos virtuais), apesar de ainda continuar "tempo de processamento" livre (pois o HT consegue fazer com que duas coisas possam ser processadas ao mesmo tempo, como sabes).
Eu estava a responder a:
Por "single-core" entendi sem HT activado.
Mesmo sendo o teu CPU a 64bits, só tem um núcleo físico, pelo que o SMP não é suportado (isto não quer dizer que não funcione) para esse CPU, logo, deves correr o cliente 5.04 ou o 6.00b1 sem a flag -smp.
Sim, em principio está tudo normal. Mas talvez fosse preferível activares o HT (mesmo sem ter outro cliente a funcionar) para que o folding pudesse estar a utilizar os recursos o mais possível (em principio (e em teoria) outras tarefas devem ser "canalizadas" para o que o HT dá a mais, e o folding deve ficar "intacto" enquanto não for preciso mais recursos (pedidos por outras aplicações) do que o CPU deve poder oferecer com o HT).
:kfold:
Esquecendo o que está para trás, agora acho que me esclareceste.
Já agora aquela coisa que eu disseAgora estou é em dúvida se esta versão 6.01 para Linux também funciona a 64 bits quando está em modo de single-core...não era bem isto. O que eu queria dizer é em modo non-SMP e com uma consola só. A história dos núcleos físicos e dos núcleos virtuais eu percebo. Estava enganado na parte de chamar aos núcleos virtuais threads. :kfold:
|
|