Utilizar eficientemente un sistema SMP puede llegar a ser un tema *muy* complejo. Pero a grandes rasgos efectivamente lo que tienes que hacer es dividir tu programa en varios procesos o hilos (Que no son lo mismo y en esta diferencia es en donde comienza la complejidad del asunto) y el kernel se encarga de asignar cada uno a un procesador diferente. Hay que tomar en cuenta desde luego que los procesos o hilos de tu programa no van a ser los unicos ejecutandose en el sistema asi que es posible que terminen (Al menos en un momento dado) ejecutandose de cualquier forma en el mismo procesador.

Es aqui en donde entran las bibliotecas especializadas de SMP tanto para SMP local como en red. Ahi puedes especificar prioridades, afinidades de procesador, etc


Un buen punto para comenzar, si bien algo viejo ya:

http://www.faqs.org/docs/Linux-HOWTO/SMP-HOWTO.html

Otro buen doc:

http://www.ibm.com/developerworks/library/l-linux-smp/

Finalmente, busca en Google "linux smp programming" para encontrar muchas referencias utiles.

Responder a