Re: [OFF-TOPIC] Multiprocessadores / Processamento paralelo
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?
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
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.
--
Atenciosamente,
Junior Polegato
Um peregrino de problemas; Um pergaminho de soluções!
Página Profissional: http://www.juniorpolegato.com.br
Reply to: