Hace tiempo, el hardware podia decirse relegado por los avances del software, veiamos que era dificil que nuestra maquina convencional pudiera facilmente soportar alguna adicion de algun software, esta era lenta y muchas veces los entornos graficos, debian ser limitados para que todo funcionara como se debia, pero de un tiempo para aca, el hardware dijo: "no mas, no me voy a quedar relegado por mas tiempo", y empezo a generar nuevas creaciones y a innovar, sin embargo, el software seguia siendo practicamente el mismo.
Hasta el dia de hoy, donde tenemos un procesador hasta con 6 nucleos, que estan a la "espera" de que le pongan algo que hacer, nuestros sistemas operativos (no solo windows, tambien linux, Mac OS X, etc) se basan en diseños de sistemas ya algo "viejitos" con nuevas implementaciones de iconos bonitos y "grandes hazañas visuales" que no aprovechan al maximo estas nuevas ventajas del hardware, (claro, yo no me quejo tanto del software actual, mi equipo no esprecisamente de ultima generacion, pero tampoco esta tan viejo, y dista de estar obsoleto), pero en mi humilde opinion, hay que hacer algo para aprovechar los otros nucleos, que estan sobrando y que en el caso de Intel, se desactivan cuando no se usan (osea siempre estan en estado Off), creo que deberiamos hacer algo, y este es un llamado para todos aquellos "necios" que les gusta innovar y medirsele a los retos, para crear unas apliaciones que bien podrian ayudar a utilizar todos aquellos nucleos, que se encuentran "dormidos" en nuestro computador.
Jhon C. Dvorak de la revista PCMagazine en un articulo titulado "Puercos, Lapiz labial y procesadores" nos da unas ideas algo interesante para este desperdicio de potencia productiva y para que el software ponga otra vez al hardware de ultimo en la carrera, solo escribire 2, porque las otras no me gustan, pero a los que lean este articulo, algo se les ocurrira:
- Utilizar un nucleo expresamente para el mantenimiento del disco. Esto aplica a hacer las desfragmentaciones, los scandisk (jerga windows) y cuando tratamos de utilizar algun editor de texto, lo que escribimos, sale letra por letra, si no sale todo junto, cuando hace miles de años atras que lo escribiste, si dedicaramos un nucleo al mantenimiento del sistema, esto no sucederia.
- Esta es para los que tanto gustan del chat con cam, nos encanta andar hablando con todo el mundo y que nos vean nuestra linda carita por la web cam, pero claro nos movemos demasiado rapido para la pobre camara no procesa bien, ni que decir cuando por alguna razon, hacemos alguna mueca, que no se nos ve bien, y en ese momento, algun proceso del software se lleva parte de la memoria y se congela la imagen en ese preciso y desagradable momento, otro nucleo no estaria mal, asi podremos vernos siempre lindos, para quienes nos quieran ver.
Ni hablare de los que sufren de Hiperografia, a esos los voy a dejar quietos, que despues me atacan, pero en fin, espero que esto le llame la atencion a alguno y me ayude a pensar en que podemos hacer como desarrolladores de software para poder darle la guerra nuevamente al hardware y acabarle con la burla que nos hace diciendo (yo soy mas poderoso, tanto que por muy bueno que seas, la mayor parte de mi ejercito puede dormirse (entrar en estado off) mientras tu estas trabajando por aca, enfrascado en solo una o dos tropas, JAJAJAJAJAJA, como te queda el ojo Software, a ver si puedes conmigo, cierto que no (¿quien es tu papi ahora?)).
software < hardware
Una de las soluciones que comentas es sobre un real paralelismo a partir de threads realmente aplicables (Cada CPU es un thread real) ya que aquella tecnología "Hyperthreading" quedo realmente relegada con la apariciٕón de los multicore. No es que el software haya quedado totalmente relegado, o que los sistemas operativos no sirvan. Linux/BSD por ejemplo desde hace mucho tiempo soportan SMP (Symmetric Multiprocessing) el cual permite ejecutar procesos SPMD (Single Process Multiple Data). La idea de muchos nucleos para tareas especificas tampoco me parece ya que eso implicaría aun mas fallos en los sistemas actuales que tenemos, ademas pienso que finalmente esos "subnucleos" finalmente terminarian trabajando sobre uno principal.
--
Wilderman Niels Ceren Prens
Ingeniero de Sistemas
Especialista en Telecomunicaciones UNAB
I+D GNU/Linux-=-BSD-=-OSS
Soluciones de Computo HPC / HA
DIMAR-CIOH
-=-=-=-
los demas nucleos, deben hacer algo que no sea dormir
tampoco es para darle un tarea a cada nucleo, solo porque si, es tan solo que en un segundo o tercer nucleo se podria trabajar algunas otras tareas, para no cargar tanto el primer nucleo, aunque me parece interesante el apunte que haces acerca de los "Hyperthreading", pero bueno, la idea principal, era buscarle algo que hacer a esos nucleos que tenemos "dormidos" en nuestros PC.