APPLE Grand Central Dispatch, o caminho correto para o multi-core

wwdc-2009-keynote-1318-rm-eng.jpg

Historicamente, microprocessadores estão ficando mais rápidos e ganhando altas velocidades em seus clocks, softwares foram escritos de forma sequêncial o que acaba se beneficiando destes clocks elevados em suas operações, porém o limite funcional para um alto clock já está próximo, não é viável sistemas serem acelerados por composições altamente consumistas de recursos elétricos e gerando muito calor, afetando particulamente sistemas móveis. A indústria da CPU tentou fugir desta crescente corrida do clock, adicionando núcleos às CPUs para trabalharem de forma paralelizada, mas esbarraram no incoveniente de toda programação existente ter que ser totalmente re-escrita para poder ter algum benefício, a princípio a idéia era boa, porém a solução se tornou extremamente complicada, já que desenvolver em programação concorrente é um desafio que pode gerar aplicações problemáticas e cheias de bugs, difíceis de serem mantidas ao longo do tempo e expandidas, basicamente a conversão de um software sequencial para um modelo paralelizado deve levar em conta os seguintes aspectos:

– Quebrar cada tarefa lógica em um single thread

– Travar (Lock) dados que podem ser alterados por 2 ou mais threads

– Construir um gerenciador de threads para poder rodar corretamente entre os vários cores disponíveis

– Esperar que outras aplicações também não queiram usar tais cores

O problema é de longe muito mais complexo do que simplesmente quebrar tarefas em threads, excessivos threads, impróprio uso de dados, alterações indesejadas de recursos por outras tarefas podem afetar a performance de tais aplicações e introduzir bugs difíceis de serem resolvidos e que só tendem a aumentar o custo do software desenvolvido.

A solução : Grand Central Dispatch

A Apple percebeu que a complexidade de se programar CPUs multi-core estava criando um pesadelo ao se desenvolver para estas plataformas, e criou o Grand Central Dispatch (GCD), um conjunto de bibliotecas disponibilizados pelo sistema operacional Mac OS X que fornece um modelo de programação multithread para a execução das aplicações, dispensando o programador de ter que se atentar às especificidades de cada arquitetura de CPU disponível. O desenvolver usando GCD vai ter uma simplificada interface de desenvolvimento de threads que de fundo fará todo o trabalho complexo para extrair mais desempenho da CPU em que o OS está instalado, economizando código, introduzindo menos bugs e se preocupando mais com a aplicação em si e não código improdutivo.

Gostou? Nos ajude compartilhando!
Postado por
Notícias sobre games, jogos e tecnologia!
Siga em:
VEJA TAMBÉM
Assine nosso Newsletter
Assine nossa newsletter e receba nossa seleção de conteúdo sobre games e entretenimento diretamente em seu email.
DEIXE SEU COMENTÁRIO
Gostou? Discordou? Comente! Sua opinião vale ouro e nos ajuda a melhorar cada vez mais!
SELEÇÕES ESPECIAIS
Das pérolas escondidas aos grandes sucessos, confira nossas listas e descubra novos games!
Img de rastreio
Localize algo no site!