Introdução
O Fórum PCs teve a oportunidade de testar em primeira mão o novo Athlon64 X2, especificamente o modelo 4800+, o mais rápido da linha. Os processadores de núcleo duplo, mais conhecidos como Dual Core, são a próxima promessa na evolução tecnológica dos PCs, pois permitirão o uso de processamento em paralelo, algo antes só usado em aplicações cientificas, para usuários comuns com micros de mesa.
Longhorn, o próximo sistema operacional da Microsoft. O Windows XP atual, embora seja um multitarefa, não requer nas especificações das suas aplicações que essas também sejam. No Longhorn todas as tarefas de background serão otimizadas para múltiplos processadores e todas as aplicações e drivers certificados pela Microsoft também atenderão essa característica.
É importante nesse momento mostrar uma diferença semântica: os termos multi-tasking e multi-threading são muitas vezes confundidos, mas em essência significam coisas ligeiramente diferentes e difíceis de explicar sem entrar em termos técnicos e cenários que só quem conhece a arquitetura da computação profundamente poderia compreender. Taskem inglês significa Tarefaenquanto Threadpode ser traduzido como Linha. Não é meu objetivo aqui dissertar sobre esse tema, principalmente porque existem milhares de interpretações, mas para um entendimento geral vamos imaginar que Task são as aplicações e Threads são as linhas de códigos de um mesmo programa que podem ser executadas de forma independente pelo sistema operacional.
Um sistema operacional moderno é por natureza um Multi-Threading porque aloca frações do tempo do processador para as inúmeras Threads de um mesmo programa que estão sendo executadas simultaneamente. E também é Multi-Tasking porque permite que vários programas sejam executados ao mesmo tempo, usando o mesmo fracionamento das unidades de tempo da CPU.
Talvez com um exemplo fique mais fácil: um programa de renderização de imagem pode dividir a tela em blocos e associar uma Threadpara cada bloco. Assim, uma vez que o sistema operacional esteja livre, ele passa a executar as demais threads da fila no intuito de terminar a renderização mais rapidamente. Um processador como o Pentium 4 HT (HyperThreading) é capaz de processado duas threads simultaneamente, os demais processadores para desktop apenas uma de cada vez.
Um processador Dual Core como o Athlon64 X2 pode executar duas Taskdiferentes, por exemplo, o mesmo programa de renderização acima e mais um outro qualquer, como o SuperPi (uma aplicação single thread para cálculo do número Pi). Nesse caso, duas Threads podem ser realizadas simultaneamente, mas uma para cada programa diferente e completamente independente uma da outra, usando inclusive registradores diferentes. No momento que um dos programas chegar ao fim, o processador agora ocioso passa a receber mais threads da fila para processar. Quem gerencia essa dupla fila de threads é o sistema operacional.
Para um leigo, parece confuso, mas para quem é programador experiente sabe o quão diferentes são os dois cenários, o que coloca o desenvolvimento de softwares em uma condição de suma importância para o bom aproveitamento dos novos processadores. Mais uma vez, a infraestrutura do hardware chega ao mercado antes dos softwares otimizados possam aproveitar todas as funcionalidades, mas nesse caso do Dual Core já temos ganhos imediatos por causa das aplicações desenvolvidas para workstations, geralmente multiprocessadas, que estão disponíveis.
Para um usuário comum, seja ele doméstico ou corporativo, um sistema Dual Core hoje é tão útil quanto um sistema de dois processadores, ou seja, a percepção do benefício se dará em função da aplicação que o mesmo utiliza com freqüência. Se for para usar a suíte Office, navegar na internet, acessar e-mails e jogar, o benefício certamente não compensará o custo mais alto. Ele perceberá uma resposta mais rápida do sistema, um conforto maior no uso geral, mas ele dificilmente saberia identificar se está usando um sistema de dois núcleos ou um HyperThreading mono processado.
De forma resumida, se você não é usuário típico de uma placa mãe para dois processadores (workstation) dificilmente você será de um Dual Core nesse momento. O futuro é outra história, o desenvolvimento dos novos aplicativos e dos novos sistemas operacionais Windows serão fortemente baseados na premissa que há processamento paralelo disponível no equipamento do usuário, só que isso leva algum tempo para se tornar uma realidade prática.
Vocês sabiam que desde o ano passado os drivers das placas de vídeo 3D mais rápidas permitem uma aceleração nas tarefas de vídeo, edição e aplicação de filtros em imagens? Sim, isso é verdade, mas o Photoshop, o Adobe Premiere, os produtos da Pinnacle, Sony Vegas Vídeo e muitos outros ainda não aproveitam esse recurso ocioso, mesmo nas suas últimas versões. Muitos dos softwares DVD Player também não. São apenas exemplos de quão dependentes alguns recursos de hardware são dos desenvolvedores de softwares.
A mudança de mentalidade necessária para o desenvolvimento de softwares adequados para processamento paralelo é muito grande, e por isso imagino que muitas aplicações tipicamente domésticas levarão anos para se adequarem. Um processo seqüencial é muito simples, pois cada linha de código é executada em uma seqüência lógica, e cada execução retorna um valor () que pode ser testado antes de dar seguimento à próxima linha. No processamento paralelo o programador precisa criar threads independentes e usar “sinais de trânsito” para que uma se beneficie do resultado da outra. Se o cálculo de um valor em uma thread depende do resultado de outra thread, essa primeira precisa “aguardar no sinal WAIT” até a outra terminar, e enquanto ela está parada, mais outra thread pode ser iniciada se ela não tiver dependência com as anteriores, senão teremos outro caso de WAIT.
Essa complexidade pode criar situações onde um programa mal desenhado pode dar resultados diferentes se estiver sendo usado em um processador de núcleo simples ou duplo, ou ainda ser penalizado com baixa performance se o encadeamento das threads não for bem feito. Um detalhe importante, um bom desenho de código para dois núcleos não necessariamente é um bom desenho para quatro núcleos e assim por diante. Deu para perceber a complexidade, não é?
Tanto a AMD quanto a Intel estão desenvolvendo compiladores e ferramentas de análise muito sofisticadas para incentivar os desenvolvedores a adotar o processamento paralelo em seus softwares e aplicativos.
|
|
Redes sociais
Comentários (82) Visitas (63799)
Hi-Fi
Qual foi a placa mãe,memória e vga usada no teste???
Hi-Fi - Vila Velha-ES - 24/05/2005 - 17:12 - Responder no fórum
Paulo Couto
DFI Ultra D, memoria Corsair 3200XL Pro, radeon X300
Paulo Couto - Rio de Janeiro - 24/05/2005 - 17:25 - Responder no fórum
Tobi
Paulo,
Gostei muito do seu artigo, parabéns pela "primeira mão" no dual core!
Sobre a estratégia da Intel em oferecer um dual core a preços mais competitivos, fica claro que está focando seus esforços nos usuários domésticos e desktops de empresas, enquanto a AMD segue seu caminho rumo ao mercado de servidores (hoje predominantemente Intel, entre outras coisas, por conta do suporte técnico). É claro que para que esta estratégia dê certo, ela terá que fomentar o mercado de software (leia-se: Microsoft) para tirar proveito de seu novo produto. Ao que parece, veremos um Windows 64 (ou o Longhorn) adaptado ao dual core bem mais rápido do que pensamos (e com suites tipo Office também). A menos que a Intel lance um trunfo imbatível (uma killer application ou uma máquina dual melhor do que a AMD), não veremos a AMD alterar sua política de preços para os seus dual core.
O dinheiro está no mercado empresarial, onde hoje, a Intel domina.A AMD está prometendo arrancar uma boa fatia deste mercado, pois tem um produto muito bom (falta ver como será definido o suporte às empresas clientes, o composto de marketing/operações) Veremos como o mercado vai(...)
Tobi - São Paulo - Brasil - 24/05/2005 - 18:15 - Responder no fórum
Jeff Brown
É cedo ainda pra dizer, mas começo a acreditar que a Intel pode voltar a ganhar mercado com os P4 Dual. Antes cada lançamento Intel vinha acompanhado de preços absurdos, e hoje não é bem assim.
Isso está sendo adotado pela AMD hoje em dia. Ja pararam para imaginar o preço dos FX Dual?
Paulo, chegou a alguma tentativa de Over? O modelo 4400+ seria o mais indicado?
Concluindo, diante das informacoes que temos hoje, voce migraria para os DUAL? Intel ou AMD?
Jeff Brown - Rio de Janeiro - 24/05/2005 - 18:42 - Responder no fórum
gauchors
Paulo, também gostei do artigo mas veja minhas duvidas ?
Como ficou a questão de temperatura? ela é medida em relação aos dois nucleos certo? E quanto ela chegou a atingir em testes como pcmark04?
Qual a fonte utilizada no teste? as voltagens permaneceram boas?
os x2 já serão providos de instruções SSE3?
Como acha que ficará o mercado se a noticia de que os opterons passariam para a plataforma 939, agora ficando com a64, os fx e o x2?
desculpe o interrogatorio
abraços
gauchors - Porto Alegre - 24/05/2005 - 19:47 - Responder no fórum
Caparros
Muito bom o artigo, acho que agora já se faz necessário no ensino de programação acadêmico preparado para um ambiente multi-núcleo (e não dual)...
Será que os dev vão ter que reaprender a desenvolver?
E eu que trabalho com teste de software, será que com os dual (ou multi) os testes unitários ganhariam mais força? Talvez uma nova gama de testes possa ser pensada para avaliar a qualidade de desenvolvimento paralelo...
Caparros - POA - 24/05/2005 - 19:58 - Responder no fórum
Duzao®
Meus parabens pela primeira mao do X2 !!! Show em !!! Fico feliz pelo sucesso
Mas quanto aos programas serem feitos para processadores com CORE DUPLO....como isso será implementado daqui em diante???
Digo isso em função dos COMPILADORES encontados no mercado hoje...
Por exemplo... um compilador JAVA ou um outro qualquer....como será? A programação mudará ou a forma que o programa compila irá mudar?
Duzao® - São Paulo - 24/05/2005 - 20:01 - Responder no fórum
swib
muito bom.....faltou overclock ate hoje eu não sei se algum dual core faz overclock, confirma isso para gente e ve ate quando o "pequeno" chega por favor =) .. só faltou isso....
jeff ....eu não amo x ou y marca....ao ver testes a vontade é de comprar um dual core da AMD...mas dessa vez vou ter que ir de intel, mesmo achando espetacular a arquitetura 64 bits da amd e dos dual core...o modelo mais barato da amd custa $537 dolares e eu não tenho (leia-se meu pai disposto a pagar) isso para um processador... o da intel que é $247 eu já acho muito puxado...o fato é ... vai ter menos desempenho...porem será que vai ter menos desempenho na proporção de $290 dolares que é a diferença entre o modelo mais barato de ambas empresas ? eu acho que não... ta certo um modelo é "2800GHZ" e o outro é "3500+", bom que ela fizesse um modelo de 1.6 ghz ou 1.8 ghz, eu realmente não tenho condições de pegar "o pior" dela...fora que a AMD vai lançar socket pra ddr2 e esse duais são para ddr1...não que a intel também não irá trocar socket em breve..mas talvez seja ainda possivel usar os duais que ela vai lançar hoje no novo e se não for pelo menos tu pagou $241 em um e não(...)
swib - 24/05/2005 - 20:04 - Responder no fórum


