terça-feira, 30 de agosto de 2005

Hyperthreading versus Dual-core CPUs

Ontem o Enéas me apresentou um problema que estava ocorrendo numa PowerEdge 6800 com quatro processadores Xeon. Um processo Java, que funcionava direito numa PowerEdge 6600 com dois processadores Xeon, travava na 6800.

No final das contas o problema foi resolvido desabilitando a função de hyperthreading (HT) dos processadores, o que pode ser feito via BIOS ou via um argumento (noht) para o kernel do Linux. O efeito colateral da mudança é que com o HT habilitado cada Xeon se apresenta como dois processadores virtuais enquanto que com o HT desabilitado cada Xeon é um processador. Deste modo, ao desabilitar o HT, os usuários passaram a ver somente quatro ao invés de oito processadores.

Bem, o fato é que eu não sabia direito o que é hyperthreading. Então recorri à wikipedia. Vale a pena ler os tópicos sobre Hyper-threading e sobre Dual-core (DC).

Notem que são duas tecnologias diferentes cujo efeito é fazer com que um processador físico se apresente para o sistema operacional como dois processadores lógicos.

Os Xeons da 6800 implementam HT. Parece que a Intel está pra lançar novas versões do Xeon implementando DC, mas por enquanto só a AMD já vende este tipo de coisa.

Pelo que entendi, um processador DC contém realmente dois processadores num mesmo chip. Eles compartilham o barramento de I/O e o cache secundário, de modo que pode haver mais contenção pelo barramento do que numa solução com dois processadores físicos, mas há menor consumo de energia, de espaço e de dinheiro.

Já com HT é apenas um processador com dois conjuntos de registradores, de modo que ele pode manter simultaneamente o estado de duas threads do sistema operacional e melhor utilizar suas unidades de controle. Mas o ganho efetivo de desempenho é da ordem de 15% em relação a uma CPU sem HT. Bem menos que com DC.

quinta-feira, 4 de agosto de 2005

Estagiário virtual

The Virtual Internship: Take Control of Your Future by Becoming an Open Source Developer

Este artigo sugere que mais vale participar de um projeto de software livre do que fazer estágio em uma empresa de software, pois a experiência vai ser mais rica e os resultados do seu trabalho ficarão visíveis em algum lugar da web pra que você possa mostrá-lo sempre que for procurar emprego.

Acho que é um bom conselho.