Sobre el proyecto

Bend es un lenguaje de programación de alto nivel diseñado para paralellismo masivo, desarrollado por HigherOrderCO y impulsado por el tiempo de ejecución HVM2. Su objetivo es combinar la expresividad de lenguajes como Python y Haskell con el comportamiento de escalado de la computación en GPU estilo CUDA. Las características del lenguaje destacadas en el README incluyen la asignación de objetos rápida, soporte completo para funciones de orden superior con closures, recursión ilimitada y continuaciones. El paralelismo es implícito: el README indica que no es necesario crear hilos, candados, mutex o átomos. El código que puede ejecutarse en paralelo se ejecutará en paralelo, con casi aceleración lineal basada en la cuenta de núcleos, y el proyecto afirma soportar más de 10,000 hilos concurrentes. La instalación se realiza a través de Rust's cargo. Los usuarios instalan el tiempo de ejecución HVM2 con `cargo install hvm`, luego instalan el lenguaje con `cargo install bend-lang`. Las instrucciones cubren Linux y macOS, y se sugiere WSL2 para Windows. El tiempo de ejecución CUDA requiere la herramienta CUDA 12.x, y el README señala que actualmente solo se admiten GPUs NVIDIA. Los programas se pueden ejecutar a través de varios backends: `bend run-rs` utiliza un intérprete de Rust secuencial, `bend run-c` utiliza un intérprete de C paralelo y `bend run-cu` utiliza un intérprete de CUDA altamente paralelo. El código de Bend también se puede compilar a archivos de C o CUDA independientes mediante `gen-c` y `gen-cu`, aunque el README describe el generador de código como en una etapa temprana. Una bandera `-s` informe las reducciones, el tiempo de ejecución y las interacciones por segundo. El README muestra un ejemplo de suma secuencial versus paralela para ilustrar cómo una formulación de divide y vencerás habilita la ejecución paralela automática. También presenta una benchmark de ordenamiento bitónico con tiempos reportados: 12.15 segundos en un CPU Apple M3 Max a través del intérprete de Rust, 0.96 segundos en el mismo CPU a través del intérprete de C y 0.21 segundos en una GPU NVIDIA RTX 4090 a través del intérprete de CUDA. Estas cifras son las mediciones propias del proyecto. El README advierte que la versión actual puede tener un rendimiento de núcleo único menor y que el rendimiento debería mejorar a medida que avancen las técnicas de generación y optimización de código. Los recursos adicionales incluyen el paper de HVM2, un GUIDE.md, un FEATURES.md, una carpeta de ejemplos y una comunidad de Discord.