27 research outputs found
Genetically Improved Software with fewer Data Cache Misses
Using MAGPIE (Machine Automated General Performance Improvement via Evolution of software) we show genetic improvement GI
can reduce the cache load of existing computer programs. Cache
miss reduction is tested on two industrial open source C programs
(Google’s Open Location Code OLC and Uber’s Hexagonal Hierarchical Spatial Index H3) and two C++ 2D photograph image processing tasks, counting pixels and OpenCV’s SEEDS segmentation algorithm. Magpie’s patches functionally generalise. In one case they
reduce data misses on the highest performance L1 cache by 47%
API-constrained genetic improvement
ACGI respects the Application Programming Interface whilst using genetic programming to optimise the implementation of the API. It reduces the scope for improvement but it may smooth the path to GI acceptance because the programmer’s code remains unaffected; only library code is modified.We applied ACGI to C++ software for the stateof-the-art OpenCV SEEDS superPixels image segmentation algorithm, obtaining a speed-up of up to 13.2% (±1.3%) to the $50K Challenge winner announced at CVPR 2015
Optimising quantisation noise in energy measurement
We give a model of parallel distributed genetic improvement. With modern low cost power monitors; high speed Ethernet LAN latency and network jitter have little effect. The model calculates a minimum usable mutation effect based on the analogue to digital converter (ADC)’s resolution and shows the optimal test duration is inversely proportional to smallest impact we wish to detect. Using the example of a 1 kHz 12 bit 0.4095 Amp ADC optimising software energy consumption we find: it will be difficult to detect mutations which an average effect less than 58 μA, and typically experiments should last well under a second
Genetic Improvement of OLC and H3 with Magpie
Magpie (Machine Automated General Performance Improvement via Evolution of software) has been recently developed by Aymeric Blot from PyGGI 2.0. Like PyGGI, it claims to be able to optimise computer source code written in arbitrary programming languages. So far it has been demonstrated on benchmarks written in Python and C. Recently we have used hill climbing to customise two industrial open source programs: Google's Open Location Code OLC and Uber's Hexagonal Hierarchical Spatial Index H3 [W. B. Langdon et al., 'Genetic improvement of LLVM intermediate representation', in EuroGP 2023]. Magpie found much faster improvements (reducing instruction counts by up to 15% v. 2%) which generalise. Various glitches in Magpie are also reported
Genetic Improvement @ ICSE 2020
Following Prof. Mark Harman of Facebook's keynote and formal presentations (which are recorded in the proceedings) there was a wide ranging discussion at the eighth international Genetic Improvement workshop, GI-2020 @ ICSE (held as part of the 42nd ACM/IEEE International Conference on Software Engineering on Friday 3rd July 2020). Topics included industry take up, human factors, explainabiloity (explainability, justifyability, exploitability) and GI benchmarks. We also contrast various recent online approaches (e.g. SBST 2020) to holding virtual computer science conferences and workshops via the WWW on the Internet without face-2-face interaction. Finally we speculate on how the Coronavirus Covid-19 Pandemic will affect research next year and into the future
Genetically improved BarraCUDA.
BACKGROUND: BarraCUDA is an open source C program which uses the BWA algorithm in parallel with nVidia CUDA to align short next generation DNA sequences against a reference genome. Recently its source code was optimised using "Genetic Improvement". RESULTS: The genetically improved (GI) code is up to three times faster on short paired end reads from The 1000 Genomes Project and 60% more accurate on a short BioPlanet.com GCAT alignment benchmark. GPGPU BarraCUDA running on a single K80 Tesla GPU can align short paired end nextGen sequences up to ten times faster than bwa on a 12 core server. CONCLUSIONS: The speed up was such that the GI version was adopted and has been regularly downloaded from SourceForge for more than 12 months
Py2Cy: A Genetic Improvement Tool To Speed Up Python
Due to its ease of use and wide range of custom libraries, Python has
quickly gained popularity and is used by a wide range of developers
all over the world. While Python allows for fast writing of source
code, the resulting programs are slow to execute when compared
to programs written in other programming languages like C. One
of the reasons for its slow execution time is the dynamic typing
of variables. Cython is an extension to Python, which can achieve
execution speed-ups by compiler optimization. One possibility for
improvements is the use of static typing, which can be added to
Python scripts by developers. To alleviate the need for manual effort,
we create Py2Cy, a Genetic Improvement tool for automatically
converting Python scripts to statically typed Cython scripts. To
show the feasibility of improving runtime with Py2Cy, we optimize
a Python script for generating Fibonacci numbers. The results show
that Py2Cy is able to speed up the execution time by up to a factor
of 18