Improving a Parallel C++ Intel SSE SIMD Linear Genetic Programming Interpreter
We use evolution to speedup the Single Instruction Multiple Data (SIMD) parallel interpreter for Peter Nordin’s linear genetic programming GPengine. MAGPIE (Machine Automated General Performance Improvement via Evolution of software) is provided with existing hand-optimised source code, its revision history and the Intel 256 bit SSE intrinsics documentation as XML. Fitness is measured via perf’s hardware instruction count, while validity and safety are enforced through systematic test cases and memory sandbox protection via Linux mprotect. In a matter of hours local search discovered small, non-obvious program modifications that improve the performance of 128 lines of SIMD C++ code by 2%, without sacrificing correctness. We see genetic improvement can effectively exploit Intel Advanced Vector Extensions (AVX) parallelism, automatically refining complex code that is difficult for human developers to optimise reliably.
| Improving Parallel Linear GP Interpreters (langdon_2026_GI_slides.mp4) | 14.17MiB |
| [Presentation] Improving a Parallel C++ Intel SSE SIMD Linear Genetic Programming Interpreter (langdon_2026_GI_slides.pdf) | 433KiB |
Mon 13 AprDisplayed time zone: Brasilia, Distrito Federal, Brazil change
09:00 - 10:30 | |||
09:00 10mDay opening | Welcome and Introductions GI Aymeric Blot University of Rennes, IRISA / INRIA | ||
09:10 60mKeynote | Genetic Improvement for Software Modernization: Synergy and Opportunities GI Wesley K.G. Assunção North Carolina State University | ||
10:10 20mTalk | Improving a Parallel C++ Intel SSE SIMD Linear Genetic Programming Interpreter GI DOI Pre-print Media Attached File Attached | ||