Retour aux Actualités
Développement

Futhark by Example

16 mai 2026Source

Le paradigme de programmation Futhark

Programmation parallèle d'arrays de haute performance, purement fonctionnelle

Résumé

Exemples

Documentation

Publications

Allons-y!

Participez

Blog

Fork moi sur GitHub

Futhark by Example

Le suivant est un exemple pratique de Futhark à travers une collection de programmes commentés, classés par ordre de complexité croissante. Vous pouvez charger les programmes dans l'interpréteur pour les exécuter. Pour une introduction conventionnelle au paradigme de programmation, choisissez Parallel Programming in Futhark.

Pour plus d'exemples, consultez nos benchmarks implementés. Nous maintenons également une liste de projets qui utilisent Futhark.

Certains des exemples utilisent des directives pour la création de graphiques ou la rendu d'images.

Caractéristiques du paradigme de programmation de base

Utilisation de base avec la fonction de factorial

Valeurs premières

Conversion d'un valeur à un type différent

Fonctions mathématiques

Fonctions

Tableaux

Minimum et maximum

Attribution de type

Parallélisme de base

Tuplets et registres

Coercions de taille

Rang

Opérateurs backtick

Scans et réductions

Polymorphisme paramétrique

Minimum et maximum polymorphes

Récupération et diffusion

Scans exclusifs

Somme exclusive

Opérateurs pipe

Rangs complexes

Types de somme et correspondance de motifs

Boucles

Flattening et unflattening de tableaux

Mises à jour en place

Méthodes de programmation

Benchmarking

Comptage des éléments qui satisfont une propriété

Index de l'élément le plus petit (argmin)

Réduction du résultat d'un filtre

Diffusion du résultat d'un filtre

Paramètres de taille

Multiplication de matrices

Distances L₁ paire

Produit externe

Comparaison de tableaux pour égalité

Recherche

Type optionnel

Calcul de histogrammes

Moyenne mobile

Moyennes

Échange de deux éléments d'un tableau

Logarithme entier

Tri de radix

Tri de radix par clé

Tri de fusion

Suppression de doubles éléments

Types de données abstraites

Nombres complexes

Vérification d'associativité

Réduction ou scan sans élément neutre

Hauts

Somme de Kahan

Nombres aléatoires

Filtre gaussien (avec intégration de Python)

Vecteurs tridimensionnels

Typification nominale fictive

Matrices triangulaires

Recherche binaire

AD avec nombres duaux

Varianza

Correspondance de parenthèses

Évaluation de polynômes

Adaptation de ligne

Décodage de fichiers de données MNIST

Dérivation automatique

Dérivation automatique en mode direct

Dérivation automatique en mode inverse

Méthode de Newton

Futhark littéraire

Utilisation de base de Futhark littéraire

Création de vidéos avec Futhark littéraire

Lecture et écriture de fichiers en Futhark littéraire

Dessin

Futhark littéraire permet l'utilisation directe de gnuplot. Ces exemples montrent des cas simples et courants.

Dessin d'un histogramme

Exemples de Dex

Les exemples suivants ont été portés de Dex, un langage de programmation de type dépendant fonctionnel pour tableaux qui utilise un autre approche pour décrire le processus de traitement de boucles. Nous avons essayé de maintenir le schéma de nommage original et le style de programmation.

Prelude

Ensemble de Mandelbrot

Ray-tracing multi-pas

Estimations de Monte-Carlo de pi

Mouvement brownien

Triangle de Sierpinski

Exemples externes

Exemple de comptage de mots OCaml-GPU appelant Futhark.

Projets utilisant Futhark

La plupart du code Futhark écrit est probablement toujours la suite de tests et de benchmarks de Futhark. Cependant, il existe quelques programmes qui ont été écrits en Futhark parce qu'il était un bon outil pour le travail et non seulement pour tester le compilateur. Une liste peut-être incomplète:

Diving Beet est un jeu de sable qui tombe, qui est un type de jeu de simulateur de particules simple. Son but principal est de produire des effets beaux. Il y a un article de blog avec des détails et un vidéo.

Futball est un jeu pour éviter d'être frappé par des bâtons. Le moteur de rendu est un ray-tracer écrit en Futhark.

Futcam est une application qui applique des piles de filtres configurables interactivement à un flux de webcam. Futhark est utilisé pour implémenter les filtres.

Futracer est un ray-tracer de force brute assez lent écrit en Futhark.

Futswirl est un générateur de fractales basé sur des systèmes de fonction itérée.

Neptune est une implémentation de la fonction de hachage Poseidon optimisée pour Filecoin, où les parties GPU ont été implémentées en Futhark.

Palathark est une implémentation de Futhark du méthode de Boltzmann de réseau.

Ray Tracing in One Weekend in Futhark et R

Commentaires (0)

Login or Register to apply