Mac OS X 10.6 Snow Leopard: conheça o Grand Central Dispatch e entenda como ele deixará seu Mac mais rápido

Grand Central DispatchNão é só de 64 bits que a Apple está abusando para tornar seu Mac mais rápido no novo Snow Leopard. Além dessa tecnologia, o sistema usará outras táticas para aproveitar melhor o poder do(s) processador(es) na sua máquina, o que não apenas tornam os programas que você usa diariamente mais rápidos, mas também facilitam a vida de quem os desenvolve.

Durante a última WWDC, Bertrand Serlet falou ao público sobre uma nova metodologia que está chegando, chamada Grand Central Dispatch (GCD, para os mais íntimos :-P). O nome é esquisito, e o que ela faz também é difícil de entender, mas, nas próximas linhas, eu farei o possível para responder a você de uma forma simples o que ela faz para tornar o seu Mac mais rápido.

Basicamente, ela tira proveito de algo que (quase) todos os Macs Intel possuem em suas CPUs: múltiplos núcleos (multi-cores). Então, em vez de falarmos direto sobre o que o GCD faz, vamos ver um pouco sobre o que os núcleos são e o que trouxeram para os computadores modernos. Prepare-se, porque essa história também não será muito curta… 😉

Definição

Processadores multi-core possuem dois ou mais núcleos. A principal diferença deles em relação aos que eram populares há uns quatro anos é o fato de que o sistema operacional trata cada núcleo como um processador diferente. Para facilitar o entendimento, podemos então dizer que uma CPU com dois núcleos (dual-core) possui dois processadores no mesmo chip físico, e assim por diante.

Processador Dual-Core

Cada núcleo possui o seu próprio cache, é capaz de realizar mais de uma tarefa por vez (multitarefa) e, em casos especiais, pode até acessar a memória principal do sistema (independente da quantidade) por si só. Toda essa autossuficiência que os núcleos possuem serve para dividir tarefas, e é por isso que nem sempre podemos considerar um processador duas vezes ou quatro vezes mais rápido que outro, seguindo apenas o aumento numérico da sua frequência.

Por que os processadores atuais possuem mais de um núcleo?

Eu comecei a usar computadores já na época em que existiam processadores dual-core para eles, mas peguei o começo dessa tecnologia e entendi desde cedo o principal motivo da indústria para adotá-la. Quando existiam apenas chips com um núcleo, seguia-se uma tática diferente para ampliar o desempenho deles, baseada em um estudo (para não chamar de “profecia”) feito por um senhor chamado Gordon Moore, há mais de 40 anos. Em resumo, ele dizia que os processadores poderiam dobrar sua velocidade a cada 18 meses.

A princípio, isso era apenas uma observação do co-fundador de uma empresa que, na época, quase não tinha razões para existir (e hoje conhecemos como Intel :-P). Porém, como tanta coisa que só alinhamento de planetas explica, o que ele disse acabou virando realidade. Ainda assim, conforme a indústria se aproximou dos dias atuais, uma preocupação começou a girar ao redor dessa lei.

Chip com excesso de calor

O que acontecia é que os chips dobravam de velocidade seguindo um processo de fabricação que fazia basicamente uma coisa: miniaturizar componentes (isto é, reduzi-los preservando suas características) para fazer a frequência (medida em gigahertz) aumentar. Acontece que, quando fazemos isso, a quantidade de energia necessária para suprir cada processador aumenta e, como as suas dimensões permanecem iguais, o calor gerado por eles também aumenta, exigindo um envelope térmico maior para fins de resfriamento e impedindo o seu uso em hardwares com dimensões limitadas (notebooks e desktops semelhantes ao Mac mini, por exemplo).

Vejamos alguns exemplos práticos disso. Suponha que uma CPU em condições padrão tenha uma velocidade teórica de valor 100 e um consumo de energia de valor 100:

Benchmarks

Ao aumentar a sua frequência de funcionamento (clock) em 20%, o seu desempenho aumenta 13%, mas o consumo de energia pode aumentar até 73%, mantendo o mesmo espaço físico:

Benchmarks

Em contrapartida, diminuir a frequência de funcionamento em 20% faz o chip perder 13% de desempenho, mas o consumo de energia pode cair facilmente para quase a metade do original:

Benchmarks

Levando em consideração os avanços atuais em processadores, ponderar apenas o aumento do clock tornam impraticáveis o consumo de energia e o envelope térmico das máquinas em diversas situações, fazendo dos investimentos em melhores processos de fabricação inúteis em alguns casos. Todavia, ao usar esses mesmos avanços na elaboração de uma CPU capaz de operar com dois núcleos para execução de tarefas, vemos uma coisa curiosa:

Benchmarks

Colocar um núcleo extra em uma CPU faz o desempenho teórico aumentar 73%, ao custo de apenas 2% em consumo de energia, isso sem levar em conta o trabalho que as fabricantes apresentam de tempos em tempos na produção de processadores. Assim, chips com mais de um núcleo entregam muita velocidade aos aplicativos por um consumo de energia relativamente baixo, e isso motivou a indústria a adotá-los com força.

E onde entra o Mac OS X em tudo isso?

Usar processadores com mais de um núcleo em Macs fez a Apple (e outras fabricantes) acompanhar os últimos avanços desse setor de uma forma mais rápida. A lei de Moore mudou de cara e agora coloca os núcleos em consideração no aumento de desempenho dos computadores. Para os experts em software, porém, tudo isso trouxe uma tremenda dor de cabeça.

No modelo antigo de se aumentar o desempenho das CPUs, quem desenvolvia aplicativos não demonstrava reação a novos produtos do tipo. A frequência de operação deles vinha maior, as máquinas ficavam mais rápidas facilmente e os aplicativos ficavam mais velozes, sem ninguém precisar mudar uma linha de código que fosse. Com os chips multi-core, contudo, o trabalho de profissionais para tornar softwares mais eficientes aos usuários não inclui apenas a necessidade de aguardar novos chips, mas também a de saber usá-los.

A atuação da Apple nesse meio começou lá no Tiger para PowerPC (2004/2005), e desde então focou-se em tornar o Mac OS X mais fácil para desenvolvedores aproveitarem a maior velocidade de processadores dual-core e quad-core nas suas soluções. A primeira medida para ajudá-los foi colocar as atividades internas do sistema para rodar automaticamente no segundo núcleo (julgando que falamos de um processador dual-core), dando maior folga de processamento para os aplicativos do usuário no primeiro.

Monitor de Atividade no Leopard

Se você abrir o Monitor de Atividade enquanto lê este artigo e olhar a aba CPU, na parte inferior, verá que o Leopard está mantendo pequenas tarefas do sistema em segundo plano, sem atrapalhar a sua vida. Com isso, os aplicativos que você abre no Dock ou no Spotlight encontram mais espaço para funcionar com o máximo de resposta.

Ainda assim, nos últimos anos a coisa não tem sido muito boa para desenvolvedores, porque eles precisam determinar quais são os melhores meios de se aproveitar múltiplos núcleos e como programar softwares para isso. É aqui que entra em cena um paradigma na computação chamado threading, capaz de habilitar o processador para dividir operações de um aplicativo e rodá-las nos seus múltiplos núcleos ao mesmo tempo.

Não tenho como entrar em detalhes aqui, mas é algo tão complicado que não traz nenhuma garantia para nenhum software rodar mais rápido ou não. Enquanto a Apple chama isso de “falta de esforço”, quem desenvolve aplicativos como forma de ganhar a vida conhece bem a dificuldade em usar threads e busca alternativas a isso. O GCD é uma delas.

Explicando o Grand Central Dispatch

O que o Grand Central Dispatch faz é tirar dos aplicativos a necessidade de possuir threads e repassar a tarefa de administrar o uso dos recursos da máquina para o Mac OS X. Em vez de cada desenvolvedor programar seus aplicativos para aproveitar melhor os múltiplos núcleos dos processadores, eles simplesmente precisam especificar como as suas operações precisam ser organizadas em séries e blocos, e deixar que o Snow Leopard cuide do resto.

A grande sacada ao usar o GCD é que os programas apenas consomem os recursos da máquina que são essenciais para funcionarem da melhor forma possível, e os liberam quando não precisam. Como o novo Mac OS X é totalmente otimizado dessa forma, o resultado final é um ambiente muito mais eficiente para trabalhar.

Mail no LeopardMail no Snow Leopard

Todo esse gerenciamento é feito de forma dinâmica, sem precisar de ações dos programadores em vários casos. Se um dado aplicativo não precisar mais de uma determinada quantidade de operações sendo executadas simultaneamente, elas são eliminadas para dar fôlego a outras tarefas.

Para aproveitar isso nos aplicativos suportados, você precisa de um Mac dual-core, pelo menos. No entanto, nenhum destes programas vai deixar de funcionar nos primeiros Macs mini com processador Core Solo, que possuem apenas um núcleo: eles apenas não tirarão proveito da melhor performance.

Vale a pena confiar no GCD?

Esta é uma pergunta mais destinada aos desenvolvedores, mas também conta para quem vai atualizar para o Snow Leopard em breve. Por ser um tipo de tecnologia que as outras versões do Mac OS X não suportam, ninguém sentirá a necessidade de preparar seus aplicativos para ela se a maioria da base atual de usuários não atualizar.

Desprezando o fato de muita gente estar tentada pelo preço baixo do Snow Leopard, ter o Grand Central Dispatch cuidando de distribuir melhor os recursos do seu Mac ao sistema e aos programas que você usa torna as tarefas diárias muito mais eficientes e é, per se, um bom motivo para atualizar. Mesmo que um software popular no seu dia-a-dia não consiga tirar total proveito do GCD no início, convém dar uma chance para melhorar a sua experiência em outras áreas.

Assim como 64 bits, esse é o tipo de tecnologia que talvez não te mostre resultados imediatos, o que é normal, pois o Snow Leopard nem mesmo foi lançado. Entretanto, as razões de ela estar sendo posta em prática nessa versão do Mac OS X também incluem as diversas possibilidades que a Apple e outros desenvolvedores deverão explorar no futuro, mas que apenas sairão do papel se nós formos confiantes em momentos como este.

. . .

Fontes e Referências

Posts relacionados

Comentários