Optimización del rendimiento de la multiplicación de matrices BQN: Bloqueo de caché y dividir y conquistar

2025-06-27

Este artículo explora la optimización del rendimiento de la multiplicación de matrices grandes utilizando el lenguaje BQN. El autor primero utiliza un método simple de particionamiento cuadrado para utilizar eficazmente la caché, logrando una aceleración de aproximadamente seis veces. Luego, se introduce un algoritmo de Strassen basado en una estrategia de dividir y conquistar y se demuestra experimentalmente que alcanza una aceleración de hasta 9 veces en matrices grandes. El artículo también compara el impacto en el rendimiento de diferentes tamaños de bloque y estrategias de mosaico anidado, concluyendo que se ha alcanzado esencialmente el límite de rendimiento de una implementación BQN pura y de un solo hilo.

Leer más
Desarrollo

Un Intérprete Scheme Conciso en BQN: Un Enfoque Minimalista

2025-05-26

Este artículo detalla un intento de implementar un intérprete Scheme utilizando el lenguaje de programación BQN. Aprovechando la sintaxis concisa y las potentes operaciones de matriz de BQN, el autor logra un intérprete de subconjunto funcional de Scheme, que incluye aritmética básica, manipulación de listas y capacidades de metaprogramación. Si bien no es totalmente compatible con R5RS y carece de un manejo de errores robusto, la brevedad y la funcionalidad de la implementación son impresionantes. Esto muestra la aplicación de BQN y destaca la elegancia de la programación funcional.

Leer más
Desarrollo