¿Cuáles son algunos buenos cursos que le permiten optimizar un programa para una arquitectura de procesador particular?

Para empezar, lenguaje ensamblador para ese procesador. No puedes ser más directo o más rápido que eso. (El lenguaje de máquina, que el procesador realmente está ejecutando, se “convierte en” lenguaje ensamblador asignando una etiqueta legible por humanos a cada instrucción, que el procesador ve como bits). El uso de cualquier programación de nivel superior depende del compilador, algunos optimizan muy bien, algunos (como el primer intento de Microsoft en un compilador de C) son desastres.

Pero usar ensamblaje significa escribir todo a mano. Eso significa que no tiene una instrucción de “escribir en la pantalla”, coloca el carácter donde lo desea, pasa al siguiente carácter, continúa hasta llegar a una marca de “final de cadena”, solo para poner ” ¡Hola, mundo! ”En la pantalla. Todos los programas solían escribirse en ensamblaje antes de que se escribieran los compiladores (en ensamblador): Fortran estaba disponible ya en 1957, pero ¿quién podía pagar un compilador de Fortran? Entonces se puede hacer. Pero la mayoría de la gente en estos días quiere estar lo más lejos posible del procesador: una instrucción, una línea de código y mucho se hace, a pesar de que primero se compila en 50 líneas de ensamblaje o lenguaje de máquina. Puede que no se ejecute más rápido que el ensamblado, pero un programador puede escribirlo más rápido de lo que puede escribir el ensamblado. (Y a la mayoría de los programadores no les importa la optimización a nivel de máquina, se preocupan por obtener trabajo por la puerta, porque eso es lo que les pagan. Y porque la mayoría de las personas que son “programadores” hoy en día no pueden escribir nada como ensamblar, solo pueden escribir aproximaciones de alto nivel de programas).