Cellato: a DSL for Cellular Automata based on C++ Template Meta-programming

Datum vydání
2026Publikováno v
Journal of Object TechnologyNakladatel / Místo vydání
Chair of Software Engineering, ETH Eidgenössische Technische HochschuleRočník / Číslo vydání
25 (1)ISBN / ISSN
ISSN: 1660-1769ISBN / ISSN
eISSN: 1660-1769Informace o financování
MSM//SVV260821
MSM//EH22_008/0004605
Metadata
Zobrazit celý záznamKolekce
Tato publikace má vydavatelskou verzi s DOI 10.5381/jot.2026.25.1.a13
Abstrakt
Cellato is a tool with embedded DSL in C++ that leverages template meta-programming to define and execute cellular automata (CA) via concise type-level expressions that are specialized into efficient kernels at compile time. Its modular architecture decouples the Algorithm (rules), Evaluator (per-cell update), Layout (memory representation), and Traverser (grid iterator), allowing users to mix and match components without altering rule definitions. We demonstrate Cellato on Conway's Game of Life, Forest Fire, Wireworld, and the Greenberg-Hastings excitable medium, which cover binary as well as multi-state models and Moore to von Neumann neighborhoods. We experimented with three memory layouts (standard arrays, bit-packed arrays, and bit-planes) for transparent bit-level encodings and data-parallel optimizations. Targeting both CPU and GPU back-ends, Cellato delivers performance on par with hand-tuned code, while its zero-overhead abstractions, flexible scheduling, and portable optimizations provide a robust foundation for high-performance CA computations.
Klíčová slova
Domain-Specific Language, Cellular Automata, Bit-Packing, C++ Template Metaprogramming, CUDA,
Trvalý odkaz
https://hdl.handle.net/20.500.14178/3922Licence
Licence pro užití plného textu výsledku: Creative Commons Uveďte původ-Neužívejte dílo komerčně-Nezpracovávejte 4.0 International
