Volver a Noticias
Desarrollo

Futhark by Example

16 de mayo de 2026Fuente

El lenguaje de programación Futhark

Programación de arrays paralelos de alto rendimiento, puramente funcional

Resumen

Ejemplos

Documentación

Publicaciones

¡Vamos a ir rápido!

Participa

Blog

Fork me en GitHub

Futhark by Example

El siguiente es un ejemplo práctico de Futhark a través de una colección de programas comentados, ordenados en orden de complejidad creciente. Puedes cargar los programas en el intérprete para experimentar con ellos. Para una introducción convencional al lenguaje, Parallel Programming in Futhark puede ser una mejor opción.

Para más ejemplos, puedes consultar nuestros benchmarks implementados. Además, mantenemos una lista de proyectos que utilizan Futhark.

Algunos de los programas de ejemplo utilizan directivas para la creación de gráficos o la renderización de imágenes.

Características del lenguaje de base

Uso de base con la función de factorial

Valores primordiales

Conversión de un valor a un tipo diferente

Funciones matemáticas

Funciones

Arreglos

Mínimo y máximo

Asignación de tipo

Paralelismo de base

Tuplas y registros

Coerciones de tamaño

Rango

Operadores backtick

Escaneos y reducciones

Polimorfismo paramétrico

Mínimo y máximo polimórficos

Recolección y dispersión

Escaneos exclusivos

Suma exclusiva

Operadores pipe

Rangos complejos

Tipos de suma y coincidencia de patrones

Ciclos

Flattening y unflattening de arreglos

Actualizaciones en lugar

Técnicas de programación

Benchmarking

Conteo de elementos que satisfacen una propiedad

Índice del elemento más pequeño (argmin)

Reducción del resultado de un filtro

Dispersión del resultado de un filtro

Parámetros de tamaño

Multiplicación de matrices

Distancias L₁ pares

Producto externo

Comparación de arreglos para igualdad

Buscar

Tipo de opción

Cálculo de histogramas

Media móvil

Medias

Intercambio de dos elementos de un arreglo

Logaritmo entero

Ordenamiento radice

Ordenamiento radice por clave

Ordenamiento de fusión

Eliminación de duplicados

Tipos de datos abstractos

Números complejos

Verificación de asociatividad

Reducción o escaneo sin un elemento neutro

Huecos

Suma de Kahan

Números aleatorios

Blur gaussiano (con integración de Python)

Vectores tridimensionales

Tipificación nominal finta

Matrices triangulares

Búsqueda binaria

AD con números duales

Varianza

Coincidencia de paréntesis

Evaluación de polinomios

Ajuste de línea

Decodificación de archivos de datos MNIST

Diferenciación automática

Diferenciación automática en modo directo

Diferenciación automática en modo inverso

Método de Newton

Futhark literario

Uso básico de Futhark literario

Generación de videos con Futhark literario

Lectura y escritura de archivos en Futhark literario

Dibujar

Futhark literario permite el uso directo de gnuplot. Estos ejemplos muestran casos simples y comunes.

Dibujar un histograma

Ejemplos de Dex

Los siguientes ejemplos han sido portados de Dex, un lenguaje de programación de tipo dependiente funcional para arreglos que utiliza un enfoque diferente para describir el procesamiento de bucles. Hemos intentado mantener el esquema de denominación original y el estilo de programación.

Prelude

Conjunto de Mandelbrot

Rayo de trazado a varios pasos

Estimaciones de Monte Carlo de pi

Moto browniano

Triángulo de Sierpinski

Ejemplos externos

Ejemplo de conteo de palabras OCaml-GPU llamando a Futhark.

Proyectos que utilizan Futhark

La mayoría del código Futhark escrito es probablemente todavía el conjunto de pruebas y benchmarks de Futhark mismo. Sin embargo, hay algunos programas que han sido escritos en Futhark porque era un buen herramienta para el trabajo y no solo para probar el compilador. Una lista posiblemente incompleta:

Diving Beet es un juego de arena que cae, que es un tipo de juego de simulador de partículas simple. Su propósito principal es producir efectos bonitos. Hay un post del blog con detalles y un video.

Futball es un juego para evitar ser golpeado por bolas. El motor de renderizado es un rayo de trazado escrito en Futhark.

Futcam es una aplicación que aplica pilas de filtros configurables interactivamente a un flujo de webcam. Futhark se utiliza para implementar los filtros.

Futracer es un rayo de trazado de fuerza bruta bastante lento escrito en Futhark.

Futswirl es un generador de fractales basado en sistemas de función iterada.

Neptune es una implementación de la función hash Poseidon optimizada para Filecoin, donde las partes GPU han sido implementadas en Futhark.

Palathark es una implementación de Futhark del método de Boltzmann de red.

Ray Tracing in One Weekend in Futhark y R

Comentarios (0)

Login or Register to apply