Múltiples hebras simultáneas
La multihebra simultánea es la capacidad de un único procesador físico para asignar simultáneamente instrucciones desde más de un contexto de hebra de hardware. Dado que hay dos hebras de hardware por cada procesador físico, las instrucciones adicionales pueden ejecutarse al mismo tiempo.
La multihebra simultánea le permite aprovechar la naturaleza supercalar del procesador planificando dos aplicaciones al mismo tiempo en el mismo procesador. Ninguna aplicación puede saturar completamente el procesador.
Beneficiarse de Multithreading simultáneo
Es principalmente beneficioso en entornos comerciales en los que la velocidad de una transacción individual no es tan importante como el número total de transacciones que se realizan. Se espera que la multihebra simultánea aumente el rendimiento de las cargas de trabajo con conjuntos de trabajo grandes o que cambian con frecuencia, como servidores de bases de datos y servidores web.
Las cargas de trabajo que ven la mayor ventaja de multihebra simultánea son las que tienen un recuento alto de ciclos por instrucción (CPI). Estas cargas de trabajo tienden a utilizar los recursos de procesador y memoria de forma deficiente. Los índices de precios de la competencia grandes suelen estar provocados por tasas altas de desaciertos de memoria caché de un conjunto de trabajo grande. Las cargas de trabajo comerciales grandes dependen en cierta medida de si las dos hebras de hardware comparten instrucciones o datos, o si las hebras de hardware son completamente distintas. Las cargas de trabajo comerciales grandes suelen tener esta característica. Las cargas de trabajo que comparten instrucciones o datos, incluidas las que se ejecutan ampliamente en el sistema operativo o en una única aplicación, pueden ver mayores ventajas de multihebra simultánea.
Las cargas de trabajo que no se benefician mucho de la multihebra simultánea son aquellas en las que la mayoría de las hebras de software individuales utilizan una gran cantidad de cualquier recurso en el procesador o la memoria. Por ejemplo, es probable que las cargas de trabajo con un uso intensivo de coma flotante obtengan poco de las multihebras simultáneas y sean las que tienen más probabilidades de perder rendimiento. Estas cargas de trabajo utilizan en gran medida las unidades de coma flotante o el ancho de banda de memoria. Las cargas de trabajo con un IPC bajo y tasas bajas de desaciertos de memoria caché pueden tener una pequeña ventaja.
Las mediciones realizadas en una partición dedicada con cargas de trabajo comerciales indicaban un aumento del 25 %-40% en el rendimiento. La multihebra simultánea debe ayudar al proceso de partición de procesador compartido. Las hebras adicionales dan a la partición un impulso después de que se asigne multihebra simultánea porque la partición recupera su conjunto de trabajo más rápidamente. Posteriormente, las hebras funcionan como lo harían en una partición dedicada. Aunque puede ser algo contraintuitivo, multihebra simultánea tiene el mejor rendimiento cuando el rendimiento de la memoria caché está en su peor momento.
Establecer la modalidad con el mandato smtctl
AIX® permite controlar el modo de la partición para multihilo simultáneo con el comando ' smtctl. Con este mandato, puede activar o desactivar multihebra simultánea en todo el sistema, ya sea inmediatamente o la próxima vez que se arranque el sistema. La modalidad de multihebra simultánea persiste en todos los arranques del sistema. De forma predeterminada, AIX habilita multihebra simultánea.
smtctl [ -m { off | on } [ { -boot | -now } ] ]Hardware Management Console Configuración para Multithreading simultáneo
Cuando se configuran particiones de procesador compartido en la Hardware Management Console (HMC), se especifica el número mínimo, deseado y máximo de procesadores virtuales. Para particiones dedicadas, especifique el mismo tipo de parámetros, pero la terminología del procesador es diferente. Para particiones dedicadas, los procesadores siempre se denominan procesadores.
Ambos modelos de particionamiento requieren que especifique un rango de procesadores que controlen la asignación de arranque y tiempo de ejecución de los procesadores a la partición. Si es posible, se otorga el valor de procesador deseado cuando se inicia el sistema. Si esto no es posible, el POWER Hypervisor elige un valor diferente en función del conjunto de recursos disponibles que sea mayor o igual que el valor mínimo.
El número de procesadores especificado en la HMC afecta al número de procesadores lógicos que AIX asigna. Si la partición es capaz de multihebra simultánea, AIX asigna el doble de procesadores lógicos que el valor máximo de procesador porque hay dos hebras de hardware por procesador y AIX configura cada hebra de hardware como un procesador lógico independiente. Esto permite a AIX habilitar o inhabilitar multihebra simultánea sin reiniciar la partición.
Particionamiento lógico dinámico para Multithreading simultáneo
Mientras se ejecuta una partición, puede cambiar el número de procesadores asignados a una partición mediante procedimientos de Particionamiento lógico dinámico (DLPAR) en la HMC. Puede añadir o eliminar procesadores dentro de las restricciones del rango de procesadores definido para la partición. Cuando se añade un procesador a una partición que está habilitada para multihebra simultánea, AIX inicia ambas hebras de hardware y dos procesadores lógicos se ponen en línea. Cuando se elimina un procesador de una partición habilitada para multihebra simultánea, AIX detiene ambas hebras de hardware y dos procesadores lógicos se ponen fuera de línea.
Se generan dos sucesos DLPAR cuando se habilita la multihebra simultánea . Se genera un suceso para cada uno de los procesadores lógicos que se añade o elimina. La API para scripts DLPAR se basa en procesadores lógicos, por lo que el número de sucesos DLPAR es paralelo a la adición y eliminación de procesadores lógicos. Si multihebra simultánea no está habilitada en la partición, sólo hay un suceso DLPAR. AIX convierte automáticamente la solicitud DLPAR que se envía desde la HMC en el número adecuado de sucesos DLPAR presentados a las aplicaciones que tienen en cuenta la DLPAR.
Micro-Partitioning® y multihilo simultáneo
El POWER Hypervisor™ guarda y restaura todos los estados de procesador necesarios al preferir o asignar procesadores virtuales. Para los procesadores habilitados para multihebra simultánea, esto significa dos contextos de hebra activos. AIXda soporte a cada hebra de hardware como un procesador lógico independiente. Por este motivo, AIX configura una partición dedicada que se crea con un procesador físico como un procesador lógico de 2 vías. Puesto que es independiente del tipo de partición, una partición compartida con dos procesadores virtuales está configurada por AIX como un procesador lógico de 4 vías y una partición compartida con cuatro procesadores virtuales está configurada por AIX como un procesador lógico de 8 vías. Las hebras emparejadas siempre se planifican juntas al mismo tiempo en la misma partición.
La capacidad de procesador compartido siempre se entrega en términos de procesadores físicos completos. Sin multihebra simultánea, AIX configura una partición de procesador virtual de 4 vías con 200 unidades de titularidad de procesador como una partición de procesador lógico de 4 vías donde cada procesador lógico tiene la potencia del 50% de un procesador físico. Con multihebra simultánea, la partición de procesador lógico de 4 vías se convierte en una partición de procesador lógico de 8 vías, donde cada procesador lógico tiene una potencia aproximada del 25% de un procesador físico. Sin embargo, con multihebra simultánea, los problemas de latencia asociados normalmente con la capacidad fraccional de un procesador virtual no se aplican linealmente a las hebras. Puesto que ambas hebras se asignan juntas, están activas durante la duración de una ventana de asignación del 50% y comparten el procesador físico subyacente para lograr el 25% lógico. Esto significa que cada uno de los procesadores lógicos son capaces de realizar interrupciones de campo durante el doble de tiempo que sus capacidades individuales lo permitan.
Prioridades de hebras de hardware
El procesador permite asignar prioridades a las hebras de hardware. La diferencia de prioridad entre hebras hermanas determina la proporción de ranuras de descodificación de procesador físico asignadas a cada hebra. Más ranuras proporcionan un mejor rendimiento de hebras. Normalmente, AIX mantiene las hebras hermanas con la misma prioridad, pero aumenta o reduce las prioridades de las hebras en los lugares clave para optimizar el rendimiento. Por ejemplo, AIX reduce las prioridades de hebra cuando la hebra está realizando un trabajo no productivo girando en el bucle desocupado o en un bloqueo de kernel. Las prioridades de hebra se plantean cuando una hebra está reteniendo un bloqueo de kernel crítico. Estos ajustes de prioridad no persisten en la modalidad de usuario. AIX no tiene en cuenta la prioridad de asignación de una hebra de software cuando elige la prioridad de hebra de hardware.
El trabajo se distribuye entre todas las hebras primarias antes de que se asigne el trabajo a las hebras secundarias. El rendimiento de una hebra es mejor cuando su hebra emparejada está desocupada. La afinidad de hebras también se considera en el robo desocupado y en el equilibrio de carga de cola de ejecución periódica.