Zurück zu Nachrichten
Entwicklung

Futhark by Example

16. Mai 2026Quelle

Das Futhark-Programmierparadigma

Hochleistungs-reine funktionale parallele Array-Verarbeitung

Übersicht

Beispiele

Dokumentation

Veröffentlichungen

Los geht's!

Beteilige dich

Blog

Fork mich auf GitHub

Futhark by Example

Das folgende ist ein praktisches Beispiel für Futhark durch eine Sammlung von kommentierten Programmen, die in etwa zunehmender Komplexität angeordnet sind. Du kannst die Programme in den Interpreter laden, um sie auszuführen. Für eine konventionelle Einführung in das Programmierparadigma solltest du Parallel Programming in Futhark wählen.

Für weitere Beispiele kannst du unsere implementierten Benchmark-Tests ansehen. Wir halten auch eine Liste von Projekten, die Futhark verwenden.

Einige der Beispiele verwenden Direktiven für die Erstellung von Grafiken oder die Bildbearbeitung.

Grundlegende Programmierparadigmen

Grundlegende Verwendung mit der Fakultätsfunktion

Primäre Werte

Umwandlung eines Wertes in einen anderen Typ

Mathematische Funktionen

Funktionen

Arrays

Mindest- und Maximalwerte

Typzuweisung

Grundlegender Paralleismus

Tupel und Register

Größenkoerzisionen

Range

Backtick-Operatoren

Scans und Reduzierungen

Parametrischer Polymorphismus

Polymorphe Mindest- und Maximalwerte

Gather und Scatter

Exklusive Scans

Exklusive Präfixsumme

Pipe-Operatoren

Komplexe Ränge

Summengruppen und Musterzusammenpassung

Schleifen

Flattening und Unflattening von Arrays

In-Place-Updates

Programmiermethoden

Benchmarking

Zählung der Elemente, die eine Eigenschaft erfüllen

Index des kleinsten Elements (argmin)

Reduzierung des Ergebnisses eines Filters

Scattering des Ergebnisses eines Filters

Größenparameter

Matrixmultiplikation

Paarweise L₁-Distanzen

Äußeres Produkt

Vergleich von Arrays für Gleichheit

Suchen

Optionstyp

Histogrammrechnung

Mittelwert

Mediane

Umschlag von zwei Arrayelementen

Ganzzahllogarithmus

Radixsort

Radixsort nach Schlüssel

Mergesort

Doppelte Elemente entfernen

Abstrakte Datentypen

Komplexe Zahlen

Assoziativitätsprüfung

Reduzierung oder Scanning ohne neutrales Element

Hohlräume

Kahansche Summierung

Zufallszahlen

Gaußscher Blur (mit Python-Integration)

Dreidimensionale Vektoren

Fiktive Nomen-Typisierung

Dreiecksmatrizen

Binäre Suche

AD mit Dualzahlen

Varianz

Paranthesenübereinstimmung

Polynomauswertung

Linienpassung

Decodierung von MNIST-Datendateien

Automatische Differenzierung

Automatische Differenzierung in direkter Form

Automatische Differenzierung in umgekehrter Form

Newtons Methode

Futhark Literarisch

Grundlegende Verwendung von Futhark Literarisch

Videoerstellung mit Futhark Literarisch

Datei-Lese- und -Schreibeoperationen in Futhark Literarisch

Zeichnen

Futhark Literarisch ermöglicht den direkten Einsatz von gnuplot. Diese Beispiele zeigen einfache und gängige Fälle.

Zeichnen eines Histogramms

Beispiele von Dex

Die folgenden Beispiele wurden von Dex, einem funktionalen Array-Langage mit abhängiger Typisierung, übernommen, das einen anderen Ansatz für die Beschreibung des Loop-Verarbeitungsprozesses verwendet. Wir haben versucht, den ursprünglichen Namensschema und Programmierstil beizubehalten.

Prelude

Mandelbrot-Menge

Multi-Schritt-Ray-Tracing

Monte-Carlo-Schätzungen von Pi

Brownian-Motion

Sierpinski-Triangel

Außenbeispiele

OCaml-GPU-Wortzähle-Beispiel, das Futhark aufruft.

Projekte, die Futhark verwenden

Die meisten Futhark-Code, der geschrieben wurde, ist wahrscheinlich immer noch der Futhark-Test- und Benchmark-Suite. Es gibt jedoch einige Programme, die in Futhark geschrieben wurden, weil es ein gutes Werkzeug für das Projekt war und nicht nur, um den Compiler zu testen. Eine möglicherweise unvollständige Liste:

Diving Beet ist ein Sandspiel, das fällt, das ein einfacher Partikelsimulator ist. Sein Hauptzweck ist es, schöne Effekte zu erzeugen. Es gibt einen Blogbeitrag mit Details und einem Video.

Futball ist ein Spiel, in dem man Bälle vermeiden muss. Das Render-Engine ist ein Ray-Tracer, der in Futhark geschrieben wurde.

Futcam ist eine Anwendung, die interaktive Filter auf einen Webcam-Stream anwendet. Futhark wird verwendet, um die Filter zu implementieren.

Futracer ist ein Ray-Tracer, der mit einer Brute-Force-Methode geschrieben wurde und in Futhark implementiert ist.

Futswirl ist ein Fraktalgenerator, der auf iterierten Funktionssystemen basiert.

Neptune ist eine Implementierung der Poseidon-Hash-Funktion, die für Filecoin optimiert wurde, wobei die GPU-Teile in Futhark implementiert wurden.

Palathark ist eine Implementierung von Futhark des Lattice-Boltzmann-Verfahrens.

Ray Tracing in One Weekend in Futhark und R

Kommentare (0)

Login or Register to apply