O Folding e o Hyperthreading

DekkeR

Power Member
Eu sei que esta questão já foi muito discutida por aqui mas queria partilhar uma coisa que vi hoje.

Estava a navegar pelo fórum da Folding Community quando me deparei com uma thread onde um user dizia que tinha várias máquinas com 16 CPUs (4 CPU + Dual Core + HT) e perguntava como fazer para correr 16 clientes na máquina visto que o cliente do Windows só deixava correr 8.

A resposta do Bruce (Administrador do Fórum) foi esta:

Stanford recommends that you do not run two tasks on a HyperThreaded processor. The speed reduction for each WU is just too significant. In some cases, the total performance is actually lower, but it depends on which combination of assignments happen to be assigned to that CPU and how much RAM bandwidth you have.

Eu lembro-me que há uns tempos o Cruzeta andou a fazer experiências com o HT onde ligava e desligava o HT para ver as diferenças nos tempos, mas sinceramente não me lembro das conclusões.

Mas posso dizer-vos as minhas:

Eu tenho o HT sempre ligado e com 2 consolas ligadas faço cerca 30min por frame nas QMD (1910/1911/1912).
Há uns tempos atrás decidi usar apenas 1 consola a correr no CPU emulado e não é que me deparei com tempos de 13min por frame e por vezes de 11min ?

Com isto fiquei vim a provar que o Bruce tem razão e que ao correr apenas 1 consola reduzo os tempos por frame e ainda tenho % livre no 'outro' CPU para o resto das aplicações.

Mais alguém costuma fazer experiências com o HT ? Já agora, quem puder fazer experiências destas com os Dual Core eu agradecia, de modo a ficarmos com a percepção da performance com vários processadores, sejam eles físicos ou emulados.

:kfold:
 
16cpus :o :o :o
que cena... lol... o bacano deve ser doido varrido...

Em HT, o rendimento quando o cpu é partilhdo por duas consolas é menor por cada uma, mas fica sempre maior, pois ha duas a correr...

Mas 16 cpus... UAU! :P

Abraços!

#edit: a minha explicação ao dekker que me quer ofender, no IRC:

se o core e o mesmo, o HT a uncia coisa que faz é deixar duas instruções correrm ao mesmo tempo... mas não como se fossem em cores separados... logo... se uma consola faz x duas consolas no mesmo cores (mas em HT) vão fazer menos cada uma (menos do que sse estivessem sozinhas), mas no fundo vão produzir mais, pois o "desgaste" de rendimento de cada uma é pouco, logo, é como se tivesses algo como uma consola e meia a correr...

Mas como isto parece não ser o que acontece com o nosso amigo Dekker... :|

Abraços!
 
Última edição:
Deve ser quad Xeon dual core!

Muito estranho!! No SETI acontece precisamente o contrário, com HT a performance é "animal" e com cliente optimizados então "varre" os AMD 8o

É pena que estes projectos com WU demasiado "gordas" não sejam multitask ready, ou seja correr apenas 1 WU, mas utilizando os 2 cores :P
 
Última edição:
shello disse:
mas no fundo vão produzir mais, pois o "desgaste" de rendimento de cada uma é pouco

Quem te disse isso? Provas? :P
O Bruce diz exactamente o contrário e eu também comprovei a teoria dele.
olha que eu ofendo-te mesmo

O que eu quero é que mais pessoas com HT façam essa experiência de usar apenas 1 consola e digam a diferença de tempos para ver comprovar esta teoria :)
 
A pedido do Dekker no IRC, cá vai um desenho... em PAINT!!
ht7vg.png

ora isto era o que eu tava a dizer (ou o que eu queria dizer, para vós, dr dekker)...
Na "consola sozinha", so temos o que está rodeado a preto.
Por outro lado, na "duas consolas em PIV HT", a primeira consola está a fazer menos que a que está sozinha em cima, mas visto estarem duas (supondo que ambas estão com a mesma %), é sempre maior... visto serem dois...

Matemáticamente...

1 consola: 100
2 consolas: 75 + 75 = 150
logo: 50% a mais

isto fazendo com valores abstractos... Isto nunca chega a aconetcer se fossem valores reais...

dei-me a entender..
se continuar errado, corrije-me!

Abraços!
 
Última edição:
Ok, já percebi o que queres dizer.

Isso em teoria está correcto e comprova o que o destr0yer disse em relação aos P4 'varrerem' os AMD no SETI, mas o Folding não aproveita esse aumento de 50% como o SETI e o melhor exemplo que te dou são os tempos do FahMon:

2 consolas com QMD: 32min por frame em 100 frames ~= 2 dias e 5h para fazer 900 pontos
1 consola com QMD: 13min por frame em 100 frames ~= 22h para fazer 450 pontos = 1 dia 20h para fazer 900 pontos

9h de diferença em 900 pontos ainda é um bocado :p

Será que é desta? :o
 
Ya até ai ja eu tinha chegado, mas isso porque estas a usar o pc... eu deixo o pc ligado (sem tar nele) mais de 12 horas por dia, logo as minhas consolas devem chegar aos 70% as duas...

Quanto ao teu caso, se é assim, passa apenas a foldar 1 Wu de cada vez :P

Abraços!

P.S: tanto tempo para escrever um postzinho desse tamanho? tas com os dedos partidos e escreves com a ponta do nariz ou quê? xD
 
Então faz-me a vontade, deixa só uma consola a bombar durante uns 3 dias no máximo, diz-me os tempos que fazes e eu prometo que não te chateio mais com este assunto :o

PS: Eu não estive o tempo todo a escrever este post, tive intrusões msnónicas pelo meio :p
 
DekkeR disse:
Ok, já percebi o que queres dizer.

Isso em teoria está correcto e comprova o que o destr0yer disse em relação aos P4 'varrerem' os AMD no SETI, mas o Folding não aproveita esse aumento de 50% como o SETI e o melhor exemplo que te dou são os tempos do FahMon:

2 consolas com QMD: 32min por frame em 100 frames ~= 2 dias e 5h para fazer 900 pontos
1 consola com QMD: 13min por frame em 100 frames ~= 22h para fazer 450 pontos = 1 dia 20h para fazer 900 pontos

9h de diferença em 900 pontos ainda é um bocado :p

Será que é desta? :o

Embora eu não conheça bem a tecnologia HTT, a minha visão das coisas é:

Tens 1 consola, logo 50% do CPU para utilizar, e como tens 50% de sobra, podes fazer tudo que o folding não "corta" os 50% para ele

Se tiveres duas, ele vai tentar correr 50%+50%.... Sempre que exigires do CPU, ele (o folding) vai baixar-te o uso do CPU para poderes correr as outras aplicações!!! Supondo que ele não faz distinção das duas consolas, ele vai retirar um pouco de CPU a cada uma delas, logo ficas com (ex:) 40%+40%, isto resulta que na soma das duas demores mais de o dobro do tempo a efectuar as duas consolas do que tivesses 1 consola e trabalhasses WU a WU

Por outros termos:

-Com duas consolas: 53h = 900pontos
-Com uma só consola: 22h = 900pontos

Se
53h - 100%, então
22h - ?

? = 41% de utilização de cada consola ao teres as duas ligadas....Se tivesses só uma estavas a fazer no minimo 50%

:kfold:
 
Embora tenha lido a thread na diagonal, posso dizer-vos que confirmo a tese que o Dekker falava, recentemente tb em experiências com o HT 3,0 da minha cunhada pude comprovar que com uma consola tirava mais proveito.

Ou seja meti o gajo a foldar 2 wu exactamente iguais durante algum tempo sem absolutamente mais nada em uso, posteriormente coloquei apenas uma consola a foldar durante o mesmo período sem mais nada tb para que num caso e noutro obtivesse tempos minimos. Tirando os benchmarks de uma e outra comprovei que a soma de ppd das 2 consolas a trabalhar era inferior ao da consola sozinha.

Embora o desenho do shello esteja muito bonito :) há um factor a considerar, HT não é dual core e as 2 partes que ele representa são apenas virtuais sendo que apesar de o task manager indicar apenas 50% da ocupação do processador está a aproveitar os 100% e como 1 consola tira mais proveito da memória (não sendo dividida por 2 serviços) e sistema em geral obtemos melhor proveito apenas com uma consola.

Nos dualcore a história é outra.

Cumps ppl :kfold:
 
SwimmerBoy disse:
Por outros termos:

-Com duas consolas: 53h = 900pontos
-Com uma só consola: 22h = 900pontos

Se
53h - 100%, então
22h - ?

? = 41% de utilização de cada consola ao teres as duas ligadas....Se tivesses só uma estavas a fazer no minimo 50%

:kfold:

Não foi isso que eu disse :P

2 consolas: 53h = 900 pontos
1 consola: 22h = 450 pontos ou seja 44h = 900 pontos

Menos de 1 dia para fazer 900 pontos era óptimo :D

Então:

- 53h com cada uma das consolas a 41%
- 44h com uma só consola a 50%

A diferença ainda é significativa :rolleyes:

EDIT: Mais uma confirmação :D É isso mesmo Fontemourisca.. é desta que o shello me paga o próximo almoço
 
Última edição:
mmmmmmmmmmmmmmmmmmmmm :D

Da ultima vez que dicutimos aqui o assunto não acontecia isto. Mas penso que naquela altura ainda não tinhamos o core QMD. Imagino que tenha havido algumas opimizações no código para isto suceder. Neste momento tenho o meu P4 enconstado pq a board depois de mais de 3 anos de bons serviços decidiu avariar.

Como já alguem apontou ter HT não é ter dois CPUs. Mas tb é verdade que o folding ainda não nos arranjou nenhum cliente que aproveite os P4 na totalidade pq apesar de um cliente ser melhor do que dois o cpu aparece só a 50%. Há aqui qq coisa que não bate certo. Deveria aparecer 100%.

Falta saber como é com dual core. Por um lado a implementação é melhor nos AMD por isso deveriamos ver uma maior diferença neles mas por outro lado a falta de optimização do código e nomeadamente por os cores serem compilados num compilador Intel drão vantagem aos P4.
Mas imagino que 2 consolas nos dual core não mostre os mesmos resultados do que nos P4 com HT pq ai temos mesmo 2 cpus.

Pedia para mais pessoas darem feedback aqui pq pelos vistos temos andado a desperdiçar pontos e tempo para o projecto. Temos demorado mais tempo sem querermos.

Depois temos que colocar isto em destaque aqui e no site então:)

Well done DekkeR:)
 
dekker disse:
é desta que o shello me paga o próximo almoço
Muhahaha isso era o que tu querias :D
Ele já fechou a consola 2, a que ontem à noite estava com +/- 97%
Código:
[06:23:07] Folding@home Core Shutdown: FINISHED_UNIT
[06:23:10] CoreStatus = 64 (100)
[06:23:10] Unit 9 finished with 88 percent of time to deadline remaining.
[06:23:10] Updated performance fraction: 0.888538
[06:23:10] Sending work to server


[06:23:10] + Attempting to send results
[06:23:10] - Reading file work/wuresults_09.dat from core
[06:23:10]   (Read 68386 bytes from disk)
[06:23:17] - Uploaded at ~9 kB/s
[06:23:17] - Averaged speed for that direction ~7 kB/s
[06:23:17] + Results successfully sent
[06:23:17] Thank you for your contribution to Folding@Home.
[06:23:17] + Number of Units Completed: 8

[06:23:21] Trying to send all finished work units
[06:23:21] + No unsent completed units remaining.
[06:23:21] + -oneunit flag given and have now finished a unit. Exiting.***** Got a SIGTERM signal (2)

Folding@Home Client Shutdown.
Vamos ver então como corre isto...

Ah, dekker, lembra-te que o meu CPU é mais quente que o teu, apesar de serem na mesma P4 a 3.2 (o meu é 775 e o teu é um 478), e alem disso, tu tens WaterCooling no PC e eu tenho AirCooling rasca no meu. :|

Vamos lá ver o que sai desta experiencia...

BTW, vejam esta animação: http://www.intel.com/personal/desktop/dualcore/demo/popup/demo.htm

Abraços!
 
Eu não te cheguei a perguntar quanto é que fazias com as 2 consolas ligadas.

Depois posta a diferença de tempo entre as frames que o FahMon mostrar ;)
 
Posso já aqui adientar que era +/- 100ppd...
Não me perguntes os temmpos, pus uma vez na thrad dos benchs, mas acho que não ta la nd, vou ver...

Abraços!

#edit: uma das duas (a outra e daqueles erros, 3000ppd era a loucura)

Nick: shello
CPU: Intel Pentium 4 3.20GHz
RAM: 2*512Mb DDR PC3200
Cliente: consola (texto)
Sistema Operativo: Microsoft Windows XP Professional SP2

Console#2 ->
Min. Time / Frame : 55mn 38s - 116.47 ppd
Avg. Time / Frame : 55mn 38s - 116.47 ppd

#EDIT2: just for reference, a outra...


Nick: shello
CPU: Intel Pentium 4 3.20GHz
RAM: 2*512Mb DDR PC3200
Cliente: consola (texto)
Sistema Operativo: Microsoft Windows XP Professional SP2

Console#2 ->
Min. Time / Frame : 01mn 49s - 3566.97 ppd
Avg. Time / Frame : 18mn 23s - 352.49 ppd

Abraços!
 
Última edição:
Epa isto para mim é a lógica da batata. Temos duas situações: HT ON e HT OFF.

HT ON:
Correm duas consolas a 50% cada uma e cada consola faz imaginemos 30 minutos por frame, contudo, estão a correr duas consolas, logo, em cada 30 minutos fazem 2 frames.

HT OFF:
Correm uma consola a 100% e essa consola faz 12 minutos por frame (menos do que 15 minutos que seria metade) porque tem todos os 100% para ele e porque sózinho segundo vocês dizem sózinho dá mais rendimento do que em conjunto, logo, em 30 minutos vão fazer 2 frames e mais um bocadito (12m + 12m = 24m ... 30m - 24m = 6minutos). Ou seja, com HT OFF têm um ganho de 6 minutos em relação a HT ON.

Ainda restam dúvidas? Se realmente a performance em HT OFF for maior do que metade de apenas uma consola em HT ON, então, HT OFF é mais performante que HT ON ...
 
Back
Topo