No voy a responder la pregunta original. Cualquier permutación de los índices ijk tiene un cierto comportamiento con respecto a la vectorización, el uso de flujos de prefectch, el número de entradas TLB referenciadas, etc. Entonces, la diferencia depende completamente de la computadora en la que lo ejecute.
Sin embargo, cualquiera de los algoritmos simples de triple bucle son completamente irrelevantes en los procesadores basados en caché, lo que significa cualquier cosa construida en los últimos 20 años. Aquí hay un documento de 1988 que describe los problemas, y en ese momento era relevante. Cinco años después, la arquitectura de la computadora había cambiado bajo sus pies: las formas ijk de los métodos de factorización I. Computadoras vectoriales
En estos días, los algoritmos rápidos de multiplicación matriz-matriz se basan en el bloqueo de los tres bucles, por lo que tiene índices ijk-ii-jj-kk. La permutación precisa y los factores de bloqueo determinan la velocidad. Aquí está la última palabra sobre el tema: Anatomía de la multiplicación de matrices de alto rendimiento
- ¿Cómo se pueden usar los bucles para procesar matrices?
- Cómo conectar el modelo BPMN con la estructura de datos existente
- Cómo encontrar los diferentes números de subconjuntos contiguos de una matriz usando Java
- ¿Debería un desarrollador autodidacta centrarse en algoritmos o proyectos paralelos para conseguir un trabajo?
- Quiero aprender estructuras de datos OOP y algoritmos usando PHP. ¿Cuáles son los buenos recursos que usan PHP para enseñar algoritmos?