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, 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. 

Figures and Tables from this paper

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.

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.

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 fold

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.

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.

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 the

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 using

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 noisy

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.

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.



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.

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.

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 parallel

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 multiple

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.

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.

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.

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 training

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 processing

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’.