Procesadores apertura

Los procesadores con varios núcleos son habituales en las configuraciones tanto de los equipos de sobremesa como de los portátiles. Desde dos núcleos hasta seis, pasando por tres y cuatro, tanto Intel como AMD han visto en ellos la fórmula para incrementar el rendimiento de los PCs sin necesidad de aumentar la frecuencia de reloj de los microprocesadores.

Hasta hace unos años el aumento de la velocidad de reloj fue la táctica preferida por los fabricantes para incrementar paulatinamente el rendimiento de los ordenadores. No obstante, a partir de velocidades cercanas a los 4 GHz el problema de la disipación térmica y el consumo de energía se convirtieron en insalvables. En una superficie de unos pocos mm cuadrados no es práctico ni seguro gestionar más de 150 vatios de potencia. A poco que falle el sistema de ventilación o la fuente de alimentación, se producirán inestabilidades y problemas de funcionamiento.

Con las tecnologías de fabricación tradicionales, los cientos de millones de transistores integrados en los procesadores funcionan correctamente dentro de unos ciertos márgenes donde intervienen las variables voltaje y frecuencia. Por debajo de ciertos valores se originan errores, mientras que, por encima, los problemas pueden llegar debidos a la electromigración, que literalmente destruye el procesador, o el sobrecalentamiento, que también ocasiona trastornos serios.

Truco 1. Paralelismo

Frente a estos impedimentos para el aumento del rendimiento a partir de un único procesador, tanto Intel como AMD adoptaron la estrategia del paralelismo. Si en un sistema con una sola CPU y un único núcleo las tareas en ejecución tenían que ir alternando el uso de la CPU, en un sistema con varios procesadores y/o núcleos la táctica consiste en repartir la ejecución de las tareas entre los distintos procesadores / núcleos.

Este reparto de los recursos se realiza de forma automática por parte del sistema operativo, que asigna prioridades a los procesos y servicios en ejecución, aunque de un modo poco inteligente. Es decir, no hay una forma especial de asignar prioridades ni afinidades dependiendo de su relevancia para los usuarios. Por ejemplo, para el sistema operativo un antivirus está en igualdad de condiciones que Office cuando se trata de asignar recursos de procesador, pero también se podría intentar dar más recursos a una aplicación si en determinadas circunstancias importa más finalizar una tarea dada mientras las demás se siguen ejecutando con menos recursos.

AMD Overdrive

Este tipo de personalización es posible usando tanto herramientas del sistema como programas específicos para ello, como Ashampoo Core Tuner o AMD OverDrive. Estas utilidades permiten asignar los distintos núcleos presentes en el sistema a diferentes aplicaciones y procesos.

OverDrive es específica para procesadores de AMD y es todo un compendio de tecnología dedicada a sacar el máximo partido a las CPUs. No obstante, Ashampoo Core Tuner presenta problemas con el procesador Core i7 980X de 6 núcleos, mostrando solo cuatro de ellos (ocho si se contabilizan los virtuales a partir de la presencia de Hyper-Threading). Por su parte, OverDrive, en el caso de que tengas un procesador AMD, sí presenta un funcionamiento impecable, con un completo sistema para gestionar perfiles personalizados en los cuales se puede definir con precisión la afinidad para cada aplicación que se esté ejecutando en el sistema.

En realidad, OverDrive contempla bastantes más apartados que el de la asignación de núcleos a programas dependiendo de nuestras necesidades particulares, con una gestión completa de los parámetros de velocidad de los núcleos, el voltaje, la memoria, etc. Pero para el caso que nos ocupa, y suponiendo que tenemos un procesador de al menos cuatro núcleos, la parte interesante es la que hace posible crear perfiles para las aplicaciones en los cuales se asignan afinidades diferentes según el reparto que se quiera hacer de los núcleos.

Así, se podría asignar a un programa como Photoshop la totalidad de los núcleos, mientras que a un antivirus se le podría dejar uno solo. Al mismo tiempo, al Explorador de archivos se le podría asociar con uno o dos núcleos, de modo que en caso de que se «cuelgue» sea más sencillo hacerse con el control del sistema.

Truco 2. El disco adecuado

De poco vale tener el procesador más potente del mercado con seis núcleos, como es el caso del Intel Core i7 980X, y tener instalada una cantidad de memoria por debajo de 4 Gbytes con un disco duro lento. Lo que se gana con un procesador más potente se puede perder si el resto de los componentes «frenan» al sistema.

Además, en un escenario multitarea lo más probable es que todas las aplicaciones hagan uso del disco duro para leer y guardar datos. Esto supone un problema para los discos magnéticos, por ejemplo, que se ralentizan enormemente frente al acceso múltiple desde distintos procesos y aplicaciones simultáneas.
Por ello, uno de los primeros componentes que resulta interesante revisar para conseguir aprovechar al máximo un sistema multinúcleo es el disco duro, que preferiblemente será de tipo SSD, precisamente para minimizar el impacto negativo de los accesos múltiples al disco. Las pruebas de rendimiento son incontestables.

Multitarea

A modo de ilustración, en un sistema de pruebas compuesto por un Intel Core i7 Extreme 980X, 12 Gbytes de RAM DDR3 1.066, un disco duro magnético junto con un disco SSD y sendas máquinas virtuales corriendo SYSmark 2007 sobre Windows 7, la máquina virtual instalada sobre el disco SSD obtuvo un resultado bastante superior al arrojado por el disco magnético. En un caso obtuvimos una puntuación de 175 puntos, mientras que en el otro alcanzó unos en absoluto despreciables 203 puntos.

Truco 3. Memoria: cantidad frente a velocidad

Otro de los componentes que hay que dimensionar correctamente es la memoria principal. No se trata tanto de instalar la más rápida como de implantar una cantidad lo más generosa que sea posible. Las aplicaciones usan la RAM preferentemente y, cuanta más haya, menos necesidad hay de leer y escribir en un disco duro.

Memoria RAM

Eso sí, con una cantidad de RAM por encima de 4 Gbytes es interesante deshabilitar el archivo de intercambio para reducir al mínimo el uso de los discos duros. Con 8 Gbytes habrá más que suficiente para abordar las tareas y aplicaciones en un escenario doméstico avanzado. Insistimos, no hace falta que sea la más rápida ni con las latencias más agresivas, solo necesitamos que supere los 1.066 MHz.

Truco 4. La placa base

En el caso de los procesadores AMD, la elección de una placa base es extremadamente importante. La razón radica en el uso por parte de AMD de procesadores de cuatro y seis núcleos físicos para comercializar productos etiquetados como de tres o cuatro núcleos. Si se dispone de una placa base que permita desbloquear en la BIOS los núcleos ocultos, se tiene la posibilidad de conseguir un sistema bastante más capaz a partir de un procesador económico.

Placa base


La letra pequeña está en la imposibilidad de asegurar que ese núcleo o esos «núcleos ocultos» funcionen con la misma fiabilidad que los que sí están habilitados. En cualquier caso, es una cuestión de investigar en los foros en busca de las referencias de procesadores con más casos de éxito documentados y hacerse con uno.

Truco 5. ¿Monitor o multimonitor?

En un escenario multitarea donde se estén ejecutando de manera simultánea muchas aplicaciones a la vez, es de gran utilidad disponer de un monitor con una resolución elevada para que se puedan tener abiertas sin solaparse el mayor número de aplicaciones posible. Los monitores de 30 pulgadas son la solución ideal pese a sus precios aún prohibitivos; y es que, con una resolución de 2.560 x 1.600 puntos, el espacio disponible es espectacular.

Escritorio extendido, multimonitor

Otra solución más económica es emplear dos monitores de 22 o incluso de 24” en un modo de escritorio extendido. En este caso tendremos una resolución efectiva de 3.840 x 1.080 puntos, o de 1.920 x 2.160 puntos dependiendo de cómo se configuren. Con un espacio tan extenso, es fácil disponer todas las ventanas de manera que no se solapen entre sí y estén todas a la vista, facilitando de esta forma las tareas de copiado y pegado entre aplicaciones o el uso de distintos programas simultáneamente.

Truco 6. Utiliza la virtualización

Una de las mejores maneras de aprovechar al máximo las virtudes de un sistema multinúcleo es adoptar soluciones de virtualización. En esencia, se trata de hacer que un mismo equipo físico sobre el que se instala un software de virtualización se vea de cara al exterior como un conjunto de máquinas distintas.

Los ejemplos más habituales son la ejecución de Windows y Linux en una misma máquina, o configurar aplicaciones que se ejecuten de manera independiente sobre una máquina virtual. Los procesadores multinúcleo, junto con una cantidad de memoria suficiente, permiten que el rendimiento global se incremente respecto al de sistemas donde no se usan máquinas virtuales al aprovechar todo el potencial de rendimiento disponible en el procesador.

Virtualización

Una forma de integrar la virtualización en un equipo es mediante VMWare Player, un «reproductor» de máquinas virtuales previamente diseñadas y configuradas para que ofrezcan una funcionalidad determinada dentro del «encapsulado» de la máquina virtual. Es decir, VMWare Player lanza las máquinas virtuales, que consisten, en su mayor parte, en sistemas Linux sobre los que se han instalado y preconfigurado servicios y servidores web o aplicaciones independientes, sin necesidad de tener que habilitar ordenadores diferentes. El único requisito es disponer de un ordenador potente y, preferiblemente, con varios núcleos y una cantidad de memoria suficiente, que por lo general estará por encima de 4 Gbytes.

También podemos optar por VMWare Workstation, que es la herramienta que permite crear las máquinas virtuales. De todos modos, esta utilidad precisa de un mayor conocimiento por parte de los usuarios. La ventaja frente a las appliances es el potencial de personalización que ofrece para configurar el sistema, de modo que se adecue a la organización de la red donde se vaya a usar o se adapte al hardware sobre el que se va a ejecutar. De todos modos, la opción de las appliances es más sensata para la mayoría de los usuarios, sobre todo porque apenas hay que tener conocimientos técnicos para realizar la instalación. Únicamente se trata de lanzar la máquina virtual y comenzar a usarla.

Conexión a escritorio remoto

Si tienes un portátil, trabajas desde el salón de casa o el dormitorio y necesitas la potencia del ordenador «grande», no tienes por qué dejar de estar delante del portátil. Si estableces una conexión a escritorio remoto desde el laptop al PC podrás ejecutar remotamente aplicaciones sin moverte de tu sillón.
Las únicas que presentan un comportamiento anómalo cuando se lanzan remotamente son las de índole gráfica; pero, en general, no hay problema para trabajar con cualquier programa instalado en el equipo remoto.

Conexión a escritorio remoto

Las mayores ventajas se obtienen cuando esta conexión se realiza desde un equipo portátil o incluso desde un móvil, puesto que, en esos casos, el portátil o el móvil se comportarán «virtualmente» como si se tratase de un equipo de sobremesa, al cual se le sacará un partido extrúrdinario al usarlo incluso cuando no se está delante de él físicamente.

Existen distintas aplicaciones que facilitan la tarea de la conexión no solo dentro de la misma red doméstica en casa, sino también desde cualquier ubicación remota donde haya una conexión a Internet. Desde RDC en Windows o Conexión a Escritorio Remoto en Mac, ambas de la propia Microsoft, hasta LogMeIn, que es una de las referencias en esta área, permitiendo incluso establecer una conexión remota desde un móvil. De especial interés es la conexión desde un smartphone con una pantalla de alta resolución, como puede ser un iPhone 4 o un iPad.

Multiprocesador y multinúcleo, parecido pero no igual

Estos dos términos se prestan a cierta confusión; sin embargo, aunque presentan cierta similitud, no deben confundirse. Un sistema multiprocesador es aquel que tiene más de un zócalo donde «pinchar» un procesador. A su vez, un procesador puede contener uno o más núcleos, en cuyo caso se habla de procesador multinúcleo, o multi-core si se usa el término anglosajón.

Placa base

En ambos casos, se trata de configuraciones donde se emplea el paralelismo como método para aumentar el rendimiento efectivo de un equipo, pero mediante estrategias distintas. Los equipos multiprocesador encajan mejor en entornos empresariales, en los que se necesita un nivel de paralelismo mayor que el que puede ofrecer un sistema con un único procesador y varios núcleos. Por ejemplo, los sistemas Xeon de dos procesadores pueden acomodar hasta 12 núcleos físicos y 24 núcleos en total.

Pruebas de rendimiento ilustrativas

A modo de ilustración de la influencia que tiene el número de núcleos implicados en la ejecución de un programa sobre su rendimiento, hemos realizado distintas pruebas con dos benchmarks que aprovechan de forma intensiva la presencia de varios núcleos: KribiBench y CineBench R11.5. Como podemos comprobar, el comportamiento de cada aplicación cambia según se definan las afinidades. En modo automático, por ejemplo, se penaliza CineBench, mientras que con la asignación manual de diferentes núcleos se puede cambiar este comportamiento si se cree conveniente.

Pruebas

 

Glosario

  • Afinidad: En un sistema con varios procesadores o con CPUs de varios núcleos es posible asignar a los procesos en ejecución uno o varios núcleos que se encargarán de procesar las instrucciones que el proceso vaya «lanzando» hacia ellos. Se puede asignar tanto un núcleo como dos, tres o todos. En Windows, por ejemplo, se trata de marcar o no casillas al lado de los núcleos. Si se usan aplicaciones como AMD OverDrive o Ashampoo Core Tuner el proceso será similar en cuanto a concepto, pero variará la forma de hacerlo y se dispondrá de funcionalidades adicionales, como la posibilidad de crear perfiles para aplicaciones o grupos de programas.
  • Hyper-Threading: Intel lleva años trabajando sobre una tecnología que consigue «desdoblar» un núcleo en dos, de modo que, a pesar de tratarse de un único core físico, el sistema lo ve como si se tratase de dos núcleos. Intel lo consigue a base de incrementar el número de registros y de habilitar mecanismos para manipular datos e instrucciones de un modo eficiente. De todos modos, el rendimiento que se consigue con los núcleos «virtuales» sirve para aumentar en un porcentaje modesto el rendimiento total de un equipo. Como máximo, se obtiene una mejora del 20 por ciento, y siempre dependiendo del tipo de aplicación de que se trate. En realidad, se trata de una estrategia para maximizar el uso del procesador usando toda su capacidad de proceso virtualizando un segundo núcleo por encima del primero. Pero en ningún caso se puede equiparar Hyper-Threading con un núcleo real y tangible.
  • Multithread o multihilo: Se aplica a procesos susceptibles de repartir su trabajo entre los distintos núcleos y/o procesadores disponibles en el sistema. Por el contrario, los procesos y aplicaciones que no son multithread solo «saben» usar un núcleo o un procesador independientemente de que el sistema tenga más de uno.
  • Multitarea: Es la ejecución de más de un programa a la vez en un equipo. La multitarea supone hacer varias cosas a la vez o aparentemente a la vez. En sistemas con un único procesador, o con menos procesadores/núcleos que tareas en ejecución, lo que se hace es repartir el tiempo de procesador entre las distintas aplicaciones, alternando el tiempo de ejecución entre ellas. De este modo, parece como si se estuvieran completando en paralelo.
  • Procesos: Una aplicación aparentemente es una entidad única de cara al ordenador, pero, en realidad, salvo casos muy simples, un programa lanza varios procesos simultáneamente como parte de su ejecución normal.

Relacionados

Otros relacionados

Nos encanta escucharte ¿Nos dejas tu opinión?

Desconectado

Desconectado