BQN-Matrixmultiplikation: Performance-Optimierung durch Cache-Blocking und Divide-and-Conquer

2025-06-27

Dieser Artikel untersucht die Optimierung der Performance bei der Multiplikation großer Matrizen mit der Programmiersprache BQN. Der Autor verwendet zunächst eine einfache quadratische Partitionierung, um den Cache effektiv zu nutzen und erreicht dadurch eine etwa sechsfache Beschleunigung. Anschließend wird ein Strassen-Algorithmus auf Basis einer Divide-and-Conquer-Strategie vorgestellt, der experimentell eine bis zu neunfache Beschleunigung bei großen Matrizen zeigt. Der Artikel vergleicht auch den Einfluss verschiedener Blockgrößen und verschachtelter Kachelungsstrategien auf die Performance und kommt zu dem Schluss, dass die Performancegrenze einer reinen, single-threaded BQN-Implementierung im Wesentlichen erreicht ist.

Mehr lesen
Entwicklung

Ein prägnanter Scheme-Interpreter in BQN: Ein minimalistischer Ansatz

2025-05-26

Dieser Artikel beschreibt einen Versuch, einen Scheme-Interpreter mit der Programmiersprache BQN zu implementieren. Durch die Nutzung der prägnanten Syntax und der leistungsstarken Array-Operationen von BQN erreicht der Autor einen funktionalen Scheme-Teilmengen-Interpreter, einschließlich grundlegender Arithmetik, Listenmanipulation und Metaprogrammierungsfunktionen. Obwohl er nicht vollständig R5RS-konform ist und es an robuster Fehlerbehandlung mangelt, sind die Kürze und die Funktionalität der Implementierung beeindruckend. Dies zeigt die Anwendung von BQN und unterstreicht die Eleganz der funktionalen Programmierung.

Mehr lesen
Entwicklung