[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OFF-TOPIC] Multiprocessadores / Processamento paralelo



Junior Polegato - Linux escreveu:
> Miguel Da Silva - Centro de Matemática escreveu:
>> O kernel vai distribuir os processos nos processadores (bruta
>> retundância) segundo o algorítmo que ele tem para isso. Um kernel SMP
>> será capaz de distribuir processos entre os núcleos/processadores. Até
>> aqui estamos de acordo.
>>   
> 
> Desculpe Miguel, mas não compreendo o significado de retundância, o que
> seria isso?

Isso seria um erro meu ao digitar a palabra "redundância". Dava para
entender que eu quis dizer "redundância", né?

> 
>> Entretanto, o que o kernel não faz (não é o trabalho dele fazer isso) é
>> que os processos sejam capazes de usar mais de um processador/núcleo
>> para que sejam processados. Isso é trabalho do processo em sí, aliás, o
>> programador tem que ser capaz de criar um programa que possa fazer essa
>> "paralelização".
>> Alguns processos que venham a ser criados por outro processo poderiam
>> ser processados em outro núcleo/processador com menor carga. Entretanto,
>> o processo como um todo "se mantem" no mesmo núcleo/processador.
>>   
> 
> Aqui você está errado, um processo pode mudar de núcleo. Acompanhe:
> http://bazar2.conectiva.com.br/pipermail/linux-br/2007-December/045359.html

Claro que pode mudar de núcleo/processador. Funciona parecido a um
cluster, entretanto muda o "processo inteiro".

>> Já faz um tempinho que estou trabalhando com PC's de mais de 1 núcleo
>> (em casa, no trabalho ou na universidade) e pude conversar sobre esse
>> assunto com companheiros de trabalho, de sala de aula, professores, etc
>> e tal. A conslusão é mais ou menos a mesma... é muito difícil fazer
>> software para processamento paralelo real.
>>   
> 
> Praticamente todos os processos "servidores" usam processamento
> paralelo. Basta fazer uso de threads ou fork, ou ainda system, que terá
> paralelismo, nada muito complicado. O que muda é apenas o fato disparar
> vários processos e esperar para colher o resultado de cada um para que
> funcione em paralelo e tenha um controle centralizado, sendo que
> enquanto espera o resultado pode realizar uma operação de
> interatividade, como barra de porcentagem concluída, por exemplo, mas
> isso vai de cada programador.
> 

Bem, aqui já entrariamos num campo que realmente não domino muito, além
do mais esta discussão dá muito pano para a manga. Deixo os seguintes links:

1) http://en.wikipedia.org/wiki/Parallel_computing
2)
http://www.nytimes.com/2007/12/17/technology/17chip.html?_r=2&th=&adxnnl=1&oref=slogin&emc=th&adxnnlx=1197896596-6ahmrtd1OERgdl8MTmUI/w&oref=slogin

São bem básicos e introdutórios (um inclusive termina fazendo um pouco
de propaganda para a Microsoft), mas é um bom começo. Dado que há vários
especialistas (alguns com 20 ou 30 anos de computação), não me atreveria
a dizer que "basta fazer uso de threads ou forks".

Mas então, é isso aí.
-- 
Miguel Da Silva
Administrador de Red
Centro de Matemática - http://www.cmat.edu.uy
Facultad de Ciencias - http://www.fcien.edu.uy
Universidad de la República - http://www.rau.edu.uy


Reply to: