Improving CUDA DNA Analysis Software with Genetic Programming

  title={Improving CUDA DNA Analysis Software with Genetic Programming},
  author={William B. Langdon and Brian Yee Hong Lam and Justyna Petke and Mark Harman},
  journal={Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation},
  • W. Langdon, B. Lam, +1 author M. Harman
  • Published 11 July 2015
  • Computer Science
  • Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation
We genetically improve BarraCUDA using a BNF grammar incorporating C scoping rules with GP. Barracuda maps next generation DNA sequences to the human genome using the Burrows-Wheeler algorithm (BWA) on nVidia Tesla parallel graphics hardware (GPUs). GI using phenotypic tabu search with manually grown code can graft new features giving more than 100 fold speed up on a performance critical kernel without loss of accuracy. 
Genetically improved BarraCUDA
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 GCAT alignment benchmark. Expand
Genetic improvement of GPU software
The survey of genetic improvement of general purpose computing on graphics cards shows that with semi-automated approaches, enormous speed ups can sometimes be had by growing and grafting new code with genetic programming in combination with human input. Expand
Evolving AVX512 Parallel C Code Using GP
Using 512 bit Advanced Vector Extensions, previous development history and Intel documentation, BNF grammar based genetic improvement automatically ports RNAfold to AVX, giving up to a 1.77 foldExpand
Improving SSE parallel code with grow and graft genetic programming
RNAfold predicts the secondary structure of RNA molecules from their base sequence with a mixture of manual and automated genetic improvements to its C source and GGGP gives a combined speed up of 31.9%, with no loss of accuracy. Expand
Benchmarking BarraCUDA on Epigenetic DNA and nVidia Pascal GPUs
On longer, 150 base paired end noisy Cambridge Epigsnetix’s data, a Pascal GTX 1080 proc esses about 10000 strings per second, comparable with twin nVidia Tesla K40. Expand
Grow and Graft a Better CUDA pknotsRG for RNA Pseudoknot Free Energy Calculation
Grow and graft genetic programming greatly improves GPGPU dynamic programming software for predicting the minimum binding energy for folding of RNA molecules. The parallel code inserted into theExpand
Evolving better RNAfold C source code
Grow and graft genetic programming (GGGP) can automatically evolve an existing state-of-the art program to give more accurate predictions of the secondary structures adapted by RNA molecules usingExpand
Benchmarking Genetically Improved BarraCUDA on Epigenetic Methylation NGS datasets and nVidia GPUs
BarraCUDA uses CUDA graphics cards to map DNA reads to the human genome. Previously its software source code was genetically improved for short paired end next generation sequences. On longer noisyExpand
Genetic Improvement of Software for Multiple Objectives
This work reviews Genetic Improvement (GI) and SBSE research on evolving software and how it can grow and graft new functionality into legacy systems and parallel Bioinformatics GPGPU code. Expand
Genetic improvement of runtime and its fitness landscape in a bioinformatics application
An experiment on ProbAbel, a piece of bioinformatics software for Genome Wide Association (GWA) studies, achieves improvements in execution time without the loss of accuracy in output while also exploring the vast fitness landscape that the GI framework has to search. Expand


Genetically Improved Software
  • W. Langdon
  • Computer Science
  • Handbook of Genetic Programming Applications
  • 2015
An open source parallel StereoCamera image processing application is described in which GI optimisation gave a seven fold speedup on nVidia Tesla GPU hardware not even imagined when the original state-of-the-art CUDA GPGPU C++ code was written. Expand
Evolving a CUDA kernel from an nVidia template
This work demonstrates genetic interface programming (GIP) by automatically generating a parallel CUDA kernel with identical functionality to existing highly optimised ancient sequential C code (gzip), which is converted into a BNF grammar. Expand
Genetically Improved CUDA C++ Software
Genetic Programming GP may dramatically increase the performance of software written by domain experts. GP and autotuning are used to optimise and refactor legacy GPGPU Ci??code for modern parallelExpand
Optimizing Existing Software With Genetic Programming
We show that the genetic improvement of programs (GIP) can scale by evolving increased performance in a widely-used and highly complex 50000 line system. Genetic improvement of software for multipleExpand
BarraCUDA - a fast short read sequence aligner using graphics processing units
The implementation of BarraCUDA is described, a GPGPU sequence alignment software that is based on BWA, to accelerate the alignment of sequencing reads generated by these instruments to a reference DNA sequence to take advantage of the massive parallelism of GPU. Expand
Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class
This work uses genetic Improvement GI to evolve a faster version of a C++ program, a Boolean satisfiability SAT solver called MiniSAT, specialising it for a particular problem class, namely Combinatorial Interaction Testing CIT, using automated code transplantation. Expand
A Field Guide to Genetic Programming
A unique overview of this exciting technique is written by three of the most active scientists in GP, which starts from an ooze of random computer programs, and progressively refines them through processes of mutation and sexual recombination until high-fitness solutions emerge. Expand
Seeding Genetic Programming Populations
We show genetic programming (GP) populations can evolve under the influence of a Pareto multi-objective fitness and program size selection scheme, from “perfect” programs which match the trainingExpand
Improving 3D medical image registration CUDA software with genetic programming
Genetic Improvement (GI) is shown to optimise, in some cases by more than 35percent, a critical component of healthcare industry software across a diverse range of six nVidia graphics processingExpand
Babel Pidgin: SBSE Can Grow and Graft Entirely New Functionality into a Real World System
This work introduces a ‘grow and graft’ approach to Genetic Improvement (GI) that transplants new functionality into an existing system, and successfully grew and transplanted a new ‘Babel Fish’ linguistic translation feature into the Pidgin instant messaging system, creating a genetically improved system the authors call ’Babel Pidgins’. Expand