Parece un verdadero disparate, pero según un estudio realizado en Albuquerque, no lo sería tanto. Tras llevar a cabo una elaborada simulación, expertos revelaron que un aumento en la cantidad de núcleos en un procesador provoca una caída en el rendimiento final del mismo, al punto de mencionar que 16 núcleos tienen una merma de poder tal, que se compara al poder de solamente dos núcleos.
La prueba fue realizada en los Laboratorios Nacionales Sandia, y se dejó en claro que si bien hay algunos beneficios al aumentar la cantidad de núcleos, eso no quiere decir que "más sean mejor" de manera lineal. Por ejemplo, el rendimiento aumentó de manera notable al pasar de dos núcleos a cuatro. Sin embargo, la suba en el rendimiento al pasar de cuatro núcleos a ocho fue casi insignificante en comparación con el salto anterior. Al aumentar los núcleos a 16, directamente se registró una caída en el rendimiento.
Ahora, ¿por qué pasa esto? ¿Acaso aumentar la cantidad de núcleos no era la solución definitiva para nuestros problemas de rendimiento? Bueno, eso creíamos, pero también hay que reconocer que la culpa no es toda de los procesadores. La causa principal por esta pérdida de rendimiento es la falta de ancho de banda de memoria, y la ausencia de lo que los expertos llaman "contención" entre los núcleos sobre el bus de memoria. Para ponerlo de manera más visual, imagínate a dieciséis personas que quieren pasar por un pasillo estrecho, todas al mismo tiempo. El pasillo genera un cuello de botella, y las personas deben moverse más lentamente para poder pasar, causando demoras. Bueno, con los núcleos múltiples pasa algo parecido. Dieciséis núcleos compartiendo el mismo bus de memoria y solicitando información al mismo tiempo, es una invitación a un cuello de botella casi inmediato.
Aparentemente, este es un problema que existe desde hace bastante tiempo, incluso cuando los procesadores de un solo núcleo gobernaban el mundo. Hasta este momento, no hay una solución viable para ordenadores de escritorio, o al menos, no la hay sin disparar los costos, algo que sería una locura en estos días. Sin embargo, existe lo que podría ser una aproximación válida entre servidores. IBM posee un sistema llamado "espejado de memoria", disponible en sus servidores de alto nivel. En resumen, es un equivalente a un RAID de nivel 1, pero hecho en memoria en vez de discos duros. Tendría el clásico inconveniente de cualquier configuración RAID (por ejemplo, deberías instalar 8 GB de RAM y el sistema sólo reportaría 4), pero eso debería aumentar la eficiencia de la memoria. Por otro lado, algunos piensan que la solución sólo depende de aumentar la velocidad de la memoria en forma radical, algo así como tres o cuatro veces la velocidad actual.
Esto nos deja un verdadero dilema. La carrera de los procesadores por aumentar su cantidad de núcleos y la constante salida de nuevos modelos pueden ser en verdad superfluas ya que, además de la ausencia de programas realmente optimizados para utilizar núcleos múltiples, debemos lidiar con el inevitable cuello de botella que los núcleos y el bus de memoria generan. Tal vez sea hora de que la industria detenga un poco el frenesí de los núcleos y busque una manera de crear hardware más eficiente, ya sea para eliminar este problema, o al menos para minimizarlo.
¿Será por eso que nuestros cerebros se componen de 2 hemisferios y no por 16?
Les comento aca, ya que es el articulo mas cercano : El artitulo de los gusanos de seda, no se puede abrir.. esta mal el link !
un abrazo 🙂
Arreglado, muchísimas gracias, Raist!
La verdad que lo del problema de la memoria no lo sabia. Lo que yo si sabia, enseñanza universitaria mediante, es que el incremento de eficiencia al aumentar el numero de nucleos no es lineal, sino mas bien logaritmico, ya que mas alla del estilo de programacion con que se desarrollen los sistemas, siempre habra procesos que en un momento dependen de que se resuelva una sentencia (o "paso" del programa) en particular… si acumulamos estos "nudos" muchas veces, nos va mermando el rendimiento, y por ello es que no es lineal la mejora en la eficiencia de uno a dos nucleos, de dos a cuatro, etc.
Un desperdicio de tiempo y dinero, realmente, nada mas que decir.
Muy interesante, creo que en lugar de seguir gastando dinero en añadir mas núcleos deberían de intentar mejorar de ancho de banda de memoria.
saludos!!!
Actualmente llevando esa realidad a los Desktop, la merma del rendimiento más que nada es por software, ya que paralelizar las tareas a la hora de programar una aplicación puede ser muy, muy compleja y lleva más tiempo que programar como si sólo fuera para un núcleo solo.
Mientras las compañías no hagan ese esfuerzo extra, por ahora es mejor tener dos núcleos que cuatro si no te dedicas al diseño o usas programas especializados capaces de usar la capacidad de 2, 3, 4 o más núcleos.
Esto me parece algo estupido muy estupido diria yo… cual es el problema aumentar el "cuello de botella"??? bueno aumentenlo si han creado esas piezas maertras de ingenieria porque no hacer algo que soporte y maneje como debe ser un 16 núcleos POR DIOS!!!!… entonces que sucede costos??? baaaa con lo que tenemos podemos de echo hay mucho poder en los ordenadores que actualmente están en nuestras casa, somos unos inconformes…. la tecnología se abarata con el paso del tiempo si es ese el problema "adquisitivo" porque no creo que sea no poder hacer algo adecuado para los 16 núcleos…. miren hacia atrás recuerden las 686 y lo que podían hacer con ellas, ahora piensen en los doble nucleo con digamos 256 de video y un giga de ram oye! muy buena maquina e INCREIBLE! en comparación a los que usabamos en aquellas epocas y podiamos de hacer todo con esos pc, asi que pienso que esto es una gran estupides por donde lo veas…
Pues es de lo más normal del mundo, pues quien lo viese antes sabe que de la misma manera sucede con la cache, mucha cache L1 entorprece al procesador y hace que un incremento sea inutil, aun más perjudicial que el incremento de L2 y L3, se sabe además que entre la pefromance de lkos sistemas siempre se ha de considerar los costos de esfuerzo y tiempo en administracion como sucede en la paginacion de memoria o en el uso de la memoria compartida o la creacion de thread de procesos en los cuales en exceso puede gastarse mas tiempo en labores de gestion que en labores de procesamiento (trashing), asi que no ha de sorprender a nadie el estudio, de hecho me parece bastante inutil, creo que era algo previsible, aun asi, buena noticia 😉
Pos con Hypertransport y haciendo lo que dice IBM (ay wey! todavía tiene mucho que decir) en lugar de un arreglo de RAM, que cada proce use sus propios módulos de RAM aprovechando que esta bara bara.
Eso o retomar la carrera de los gigahertz o usar de una puta vez los GPU en vez del arcaico CPU (nunca he escuchado de cuellos de botella en el interior de las tarjetas gráficas)
Bueno acaso no saben que eso de los multiples nucleos solo se debe al dinero.Si señores se debe solo al dinero ya que el anuncio de un nuevo procesador con xxx nucleos vende mas que uno con x nucleos y claro en cualquier momento se les tendra que acabar la fiesta tal y como paso con la carrera desenfrenada de los megapixeles en las camaras.
La historia se repite, ya paso esto hace unos 30 años; los procesadores nuevo que sacaban aparentemente no rendían lo que tenian que rendir, y todo era por culpa de la lentitud de la memoria ram.
🙁 no he entendido la mitad !!!
Yo creo que se apunta a CPUs con la ram integrada en el chip (al igual que la cache) con un bus enorme y un ancho de banda adecuado para soportar todos los cores. Entonces ya no será tan facil aumentarle la memoria al pc, te comprarás un 16 cores con 32GB de ram y no podras cambiar a 64GB sin cambiar el procesador.
Bueno por que no usan ddr5 como las tarjetas de ati ya que 16 nucleos su precio es superpremium y estas memorias serian las ideales para tal proceso por su velocidad y ancho de banda de hasta 150GB/s y 512bits … total quien pueda pagar por 16 nucleos puede asumir tales memorias y conforme cresca su demanda mas adelante bajaran de precio tambien …
ahora comprendo porque los hackers utulizan GPU en ves de CPU
El verdadero problema no surge en el ancho de banda, surge en la latencia de la memoria (el tiempo que tarda en responder por el primer dato). Si la latencia es alta, pedir datos a memoria ocasionan grandísimas penalizaciones de centenas de ciclos.
Si a eso le sumamos que en muchas programaciones no se usa la programación eficiente, apañaos vamos.
en realidad no deberia ser un problema lo de los nucleos multimples, si cada procesador tubiera su memoria independiente, o cada procesador tubiera un area de memoria asignada para trabajar, asi se resolveria el problema de diseño.
por otra parte…
programar para multiples procesadores no deberia ser mas complicado que programar para uno, puesto que puedes hacer un software que corra en un procesador, y despues correrlo en todos los procesadores al mismo tiempo.
Julio Cesar Gonzalez
Soporte.
EH BUENO YO OPINO QUE SI UN MOTHER TIENE 3 NUCLEOS PERFECTAMENTE PUEDE TENER UN CORE 2 QUAD UN I7 AL MISMO TIEMPO CON ESTO OBTENDRIAMOS UN MOTHER CON 8 NUCLEOS Y 16 PROCESADORES LO CUAL ELEVARIA EL RENDIMIENTO A NIVELES GASTRONOMICOS
¿¿¿GASTRONOMICOS??? jajajaja. Yo creo que quieres decir astronómicos. Se nota que es usted un hoygan con buen control de la lengua.
Si quieres confundir a la gente haz que un periodista los informe. Seguramente el creador de the cube o algo asi, no recuerdo, una compu con 65536 nucleos era un imbecil y su maquina era inferior a una commodore 64. Por favor lean algo de arquitectura de computadoras ante de culpar a las aglomeraciones de núcleos los problemas de transito de los datos. Otros botones, de muestra digo, BlueGene/L (IBM) está compuesto por 65,536 nodos de dos procesadores cada uno, Intel con un prototipo de procesador de 80 núcleos. La unica salida para resolver la mayor demanda de computo es el multinucleo. El mayor problema en estos momentos lo plantea el reescribir el soft para esta arquitectura
Basta de hardware hinchado.. por Dios!!!…
Pfff de que sirven tantos núcleos, si hasta donde yo se, no hay programa al momento que pida mas de 4 núcleos =_=!
mi PC esta compuesta por
Procesador: intel celeron a 3.06ghz
Ram: 2gb
HD: 160gb
Targeta grafica: 512mb
y no me quejo de eso, o acaso necesito algo mejor para hacer mis tareas para la escuela? pffff
A lo que me refiero con mencionar lo de mi pc, es que no se necesita algo mayor como "16 núcleos" para poder hacer lo requerido e una pc 🙂