Me interesa, me interesa...![]()
Esta discusión la llegamos a tener en el megapost, creo pero no me importa repetir mis conclusiones ya que has abierto otro post. Yo personalmente creo que la principal virtud del Cell que es el multiproceso es a la vez su mayor defecto. Me explico.
Ya dije una vez que yo he hecho temas de multiproceso, y está muy bien, pero como dice Visitor, se necesita programación específica, ya no para el Cell en particular, sinó para el multiprocesador en general.
La programación paralela requiere otro nivel de abstracción más, que es la segmentación de un problema, siempre y cuando este lo permita. Un sistema lineal, por ejemplo, necesita que se acabe un cálculo para efectuar el siguiente, por lo tanto, irá igual de rápido en un monoprocesador que en un multiprocesador, ya sea de 8, 16 o 1000 CPUs. Independientemente de esto, segmentar un problema significa que repartes cálculos entre los diferentes procesadores, pero aún así, siempre tiene que existir un thread "central" que recoja esos resultados y los junte. La eficiencia de un multiproceso depende siempre de dos factores, segmentar bien los cálculos y un proceso central óptimo. A todo esto también se junta el hardware central, CPU y buses de datos, todo tiene que estar pensado para soportar este multiproceso.
La gente que programe el Cell (PS3 en este caso), en ese sentido, tiene que estar mucho mejor preparada que el resto, porque por mucho que se venda, el multiproceso no se hace sólo.
Lo que no sé es la posibilidad de los procesadores Cell de ejecutar instrucciones, cosa que es básica para el multiproceso "real". Si un Cell lo único que puede es efectuar cálculos, la gente de la UPC flipará porque realmente es lo que ellos usarán, para programar no es que sirva de tanto como venden. Por ejemplo, se hablaba de un uso del Cell que consistía en usar un procesador para calcular el movimiento del pelo de un personaje. Bien, un cálculo así consiste en unos parámetros de entrada (posicion anterior, variables como gravedad o viento) y una salida (posición actual). La cpu central, tendrá que mandar unas variables y recoger una salida, interpretarla y mandarla a la gráfica junto con el resto de cosas, en esta situación se podría ganar entre un 20 y un 50%, pero no más.




LinkBack URL
About LinkBacks
Citar