Sobre o projeto
Bend é uma linguagem de programação de alto nível projetada para paralelismo massivo, desenvolvida pela HigherOrderCO e alimentada pelo runtime HVM2. Ela visa combinar a expressividade de linguagens como Python e Haskell com o comportamento de escala da computação GPU no estilo CUDA. Os recursos de linguagem destacados no README incluem alocação rápida de objetos, suporte completo a funções de ordem superior com closures, recursão sem restrições e continuações. O paralelismo é implícito: o README afirma que não há necessidade de criação de threads, locks, mutexes ou atômicos. O código que pode ser executado em paralelo será executado em paralelo, com aceleração quase linear baseada na contagem de núcleos, e o projeto afirma suportar mais de 10000 threads concorrentes. A instalação é feita através do cargo do Rust. Os usuários instalam o runtime HVM2 com `cargo install hvm` e depois instalam a linguagem com `cargo install bend-lang`. Linux e macOS são cobertos nas instruções, com WSL2 sugerido para Windows. O runtime CUDA requer o NVIDIA CUDA toolkit 12.x, e o README observa que apenas GPUs NVIDIA são atualmente suportadas. Os programas podem ser executados através de vários backends: `bend run-rs` usa um interpretador Rust sequencial, `bend run-c` usa um interpretador C paralelo e `bend run-cu` usa um interpretador CUDA maciçamente paralelo. O código Bend também pode ser compilado para arquivos C ou CUDA independentes via `gen-c` e `gen-cu`, embora o README descreva o gerador de código como em estágio inicial. Uma flag `-s` relata reduções, tempo de execução e interações por segundo. O README apresenta um exemplo de soma sequencial versus paralela para ilustrar como uma formulação de dividir para conquistar permite a execução paralela automática. Ele também apresenta um benchmark de classificador bitônico com tempos relatados: 12,15 segundos em uma CPU Apple M3 Max via interpretador Rust, 0,96 segundos na mesma CPU via interpretador C e 0,21 segundos em uma GPU NVIDIA RTX 4090 via interpretador CUDA. Esses números são medições relatadas pelo próprio projeto. O README alerta que a versão atual pode ter desempenho de núcleo único menor e que o desempenho deve melhorar à medida que as técnicas de geração de código e otimização avançam. Recursos adicionais incluem o artigo HVM2, um GUIDE.md, um FEATURES.md, uma pasta de exemplos e uma comunidade no Discord.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.