Gestión de memoria MMT aumenta rendimiento de CPUs multinúcleo Gestión de memoria MMT aumenta rendimiento de CPUs multinúcleo

al fin la memoria aprovechará microprocesadores dualcore y superiores

Gestión de memoria MMT aumenta rendimiento de CPUs multinúcleo

por

al fin la memoria aprovechará microprocesadores dualcore y superiores

Normalmente las operaciones en la memoria siguen un orden secuencial, ello desperdicia el potencial de los microprocesadores multinúcleo, pero esta situación está por cambiar. Un grupo de la North Carolina State University (NCSU) ha desarrollado una técnica que supera esa limitación, brindando a los programas un mayor grado de paralelismo de forma automática, produciendo mejoras de hasta 20% en el rendimiento, incluso si se ejecuta una aplicación no diseñada para aprovechar el paralelismo.

Los de la NCSU se concentraron en la asignación y desasignación de memoria, gestiones que ocupan una considerable cantidad de tiempo de procesador y que se realizan normalmente de forma secuencial, pero tienen características que las hacen susceptibles a técnicas paralelas, pues los programas no dependen del resultado de la desasignación de memoria. Esto significa que las tareas de desasignación pueden realizarse en segundo plano, en otro núcleo del microprocesador, de modo que el programa no necesite esperar a que se produzca la desasignación. Con algunos ajustes los de la NCSU han logrado modestas pero consistentes ganancias  de rendimiento, de alrededor del 20% en tareas que normalmente son ejecutadas en un único hilo.

Además de permitir mejoras en el rendimiento, la técnica también permitió algunas mejoras de seguridad, tales como asegurarse de que los programas no sean desasignados del mismo bloque de memoria más de una vez (un raro error de codificación el cual podría constituir una falla de seguridad explotable). La comprobación de esos errores normalmente penaliza el rendimiento, ya que hace que los programas esperen aún más tiempo para que las desasignaciones de memoria terminen. Al poner las desasignaciones en un segundo núcleo, esto ya no sería problema; el segundo núcleo tendría potencia de sobra para compensar ello, y como el programa ya no espera a que se produzca la desasignación, no importa que esta ocurra un poco más lento.

En conclusión esta técnica es una forma inteligente de mejorar el rendimiento de los programas comunes, y se puede hacer de forma totalmente automática, los programas no necesitan ser reescritos para aprovecharla; reemplazar las librerías de administración de memoria sería suficiente. Esta tecnología se llamará Memory Management Thread (MMT) y será presentada oficialmente el 21 de abril en la IEEE International Parallel and Distributed Processing Symposium en Atlanta.

Interesante, ojalá esta técnica se implemente en las librerías existentes y en los sistemas operativos, dividir las tareas de asignación y desasignación de memoria entre los distintos núcleos de los actuales microprocesadores multinucleos suena a algo que debió hacerse hace mucho, muy pocas veces se ve una tecnología que mejore el paralelismo sin que se necesite reescribir los programas.

Link: New memory management method give multicore boost to apps (Ars Technica)

Link: New Software Design Technique Allows Programs To Run Faster (North Carolina State University)