revolutionising the process of software development
play

Revolutionising the process of software development Justyna Petke C - PowerPoint PPT Presentation

Revolutionising the process of software development Justyna Petke C entre for R esearch in E volution, S earch and T esting University College London CREST Genetic Improvement of Software Justyna Petke C entre for R esearch in E volution, S


  1. Revolutionising the process of software development Justyna Petke C entre for R esearch in E volution, S earch and T esting University College London CREST

  2. Genetic Improvement of Software Justyna Petke C entre for R esearch in E volution, S earch and T esting University College London CREST

  3. Thank you Yue Jia Alexandru Marginean Mark Harman CREST

  4. What does the word “Computer” mean? Oxford Dictionary “a person who makes calculations, especially with a calculating machine.” Wikipedia “The term "computer", in use from the mid 17th century, meant "one who computes": a person performing mathematical calculations.” CREST Genetic Improvement Justyna Petke

  5. What does the word “Computer” mean? Oxford Dictionary “a person who makes calculations, especially with a calculating machine.” Wikipedia “The term "computer", in use from the mid 17th century, meant "one who computes": a person performing mathematical calculations.” CREST Genetic Improvement Justyna Petke

  6. Who are the programmers CREST Genetic Improvement Justyna Petke

  7. Who are the programmers CREST Genetic Improvement Justyna Petke

  8. Who are the programmers CREST Genetic Improvement Justyna Petke

  9. Who are the programmers it’s always been people CREST Genetic Improvement Justyna Petke

  10. Who are the programers it’s always been people CREST Genetic Improvement Justyna Petke

  11. Who are the programers lots of people CREST Genetic Improvement Justyna Petke

  12. Why people? human computers seem quaint today will human programmers seem quaint tomorrow ? CREST Genetic Improvement Justyna Petke

  13. programming is changing CREST Genetic Improvement Justyna Petke

  14. Functional Non-Functional Requirements Requirements Requirements Requirements CREST Genetic Improvement Justyna Petke

  15. Functional Non-Functional Requirements Requirements Execution Time Memory functionality of the Program Bandwidth Energy Size CREST Genetic Improvement Justyna Petke

  16. Software Design Process CREST Genetic Improvement Justyna Petke

  17. Software Design Process CREST Genetic Improvement Justyna Petke

  18. Software Design Process CREST Genetic Improvement Justyna Petke

  19. Software Design Process CREST Genetic Improvement Justyna Petke

  20. Software Design Process CREST Genetic Improvement Justyna Petke

  21. Multiplicity Multiple Devices Multiple Platforms Conflicting Objectives CREST Genetic Improvement Justyna Petke

  22. Which requirements must be human coded ? Non-Functional Functional Requirements Requirements humans have to define these CREST Genetic Improvement Justyna Petke

  23. Which requirements are essential to human ? Non-Functional Functional Requirements Requirements humans have to we can optimise define these these CREST Genetic Improvement Justyna Petke

  24. Can it work ? CREST Genetic Improvement Justyna Petke

  25. Software Uniqueness 500,000,000 LoC one has to write approximately 6 statements before one is writing unique code CREST Genetic Improvement Justyna Petke

  26. Software Uniqueness M. Gabel and Z. Su. 500,000,000 LoC A study of the uniqueness of source code. (FSE 2010) “ one has to write approximately 6 statements The space of candidate before one is writing unique code programs is far smaller ” than we might suppose. CREST Genetic Improvement Justyna Petke

  27. Software Robustness after one line changes up to 89% of programs that compile run without error CREST Genetic Improvement Justyna Petke

  28. Software Robustness W. B .Langdon and J. Petke Software is Not Fragile. (CS-DC 2015) “ after one line changes up to 89% of programs Software engineering that compile run without error artefacts are more robust ” than is often assumed. CREST Genetic Improvement Justyna Petke

  29. Non-Functional Requirements How can we optimise these ? CREST Genetic Improvement Justyna Petke

  30. Genetic Improvement http://www.cs.ucl.ac.uk/staff/ucacbbl/gismo/ CREST Genetic Improvement Justyna Petke

  31. Which requirements are essential to human ? Non-Functional Functional Requirements Requirements humans have to we can optimise define these these CREST Genetic Improvement Justyna Petke

  32. Genetic Improvement Framework Sensitivity Progra Analysis Search Software Improved ms Software Test data Fitness Non-functional property Test CREST Genetic Improvement Justyna Petke

  33. Efficiency Improvement Sensitivity Progra Progra Progra Bowtie Progra Analysis Bowtie GP ms ms ms 2 ms Improv Test data Fitness 70 times faster Non-functional 30+ interventions property Test 7 after clean up slight semantic improvement W. B. Langdon and M. Harman Optimising Existing Software with Genetic Programming. Transactions on Evolutionary Computation (TEC) 2015 CREST Genetic Improvement Justyna Petke

  34. Mutation Source file Line (type) Orig. code New code replaced bt2_io.cpp 622 (for2) i < offsLenSampled i < this->_nPat replaced sa_rescomb.cpp 50 (for2) i < satup_->offs.size() 0 Runtime reduction from 12 days to 4 hours disabled sa_rescomb.cpp 69 (for2) j < satup_->offs.size() vh = aligner_swsse_ee_u8 replaced 707 _mm_max_epu8(vh, vmax = vlo; .cpp vf); aligner_swsse_ee_u8 deleted 766 pvFStore += 4; .cpp vh = aligner_swsse_ee_u8 _mm_store_si128(pv replaced 772 _mm_max_epu8(vh, .cpp HStore, vh); vf); ve = aligner_swsse_ee_u8 deleted 778 _mm_max_epu8(ve, .cpp vh); CREST Genetic Improvement Justyna Petke

  35. Efficiency Improvement Sensitivity Progra Progra Progra Progra Analysis CUDA GP CUDA ms ms ms ms Improv Test data Fitness Non-functional property Test W.B. Langdon , B.Y.H. Lam , J. Petke & M. Harman Improving CUDA DNA Analysis Software with Genetic Programming Genetic and Evolutionary Computation Conference (GECCO) 2015 CREST Genetic Improvement Justyna Petke

  36. Efficiency Improvement Challenge : Use genetic improvement to improve program efficiency of a state-of-the-art bioinformatics program for DNA sequence mapping called BarraCUDA, consisting of 8,000+ lines of code. Results : The improved version of BarraCUDA is up to 3x faster than the original on large real-world datasets. The new version has been adopted into development and has been downloaded over 1,000 times so far. Ported by IBM to one of their super computers and adopted by Lab7. W.B. Langdon , B.Y.H. Lam , J. Petke & M. Harman Improving CUDA DNA Analysis Software with Genetic Programming Genetic and Evolutionary Computation Conference (GECCO) 2015 CREST Genetic Improvement Justyna Petke

  37. Genetic Improvement Framework Sensitivity Progra Analysis Search Software Improved ms Software Test data Fitness Non-functional property Test CREST Genetic Improvement Justyna Petke

  38. Software Specialisation with Transplants Sensitivity Progra Analysis Search ms Test data Fitness Non-functional property Test CREST Genetic Improvement Justyna Petke

  39. CREST CREST Genetic Improvement Justyna Petke Justyna Petke

  40. Question Can we improve the efficiency of an already highly-optimised piece of software using genetic programming? Genetic Improvement Justyna Petke

  41. Motivation for choosing a SAT solver Bounded Model Checking Planning Software Verification Automatic Test Pattern Generation Combinational Equivalence Checking Combinatorial Interaction Testing and many other applications.. Genetic Improvement Justyna Petke

  42. Motivation for choosing a SAT solver MiniSAT -hack track in SAT solver competitions - good source for software transplants Genetic Improvement Justyna Petke

  43. Contributions Introduction of multi-donor software transplantation Use of genetic improvement as means to specialise software Genetic Improvement Justyna Petke

  44. Contributions Introduction of multi-donor software transplantation Use of genetic improvement as means to specialise software Genetic Improvement Justyna Petke

  45. Software Specialisation with Transplants v1 MiniSat Sensitivity Progra Progra Progra v2 Progra Analysis MiniSat GP ms ms MiniSat ms ms Improv Test v3 data MiniSat Fitness Non-functional property Test Justyna Petke, Mark Harman, William B. Langdon and Westley Weimer Using Genetic Improvement & Code Transplants to Specialise a C++ program to a Problem Class European Conference on Genetic Programming (EuroGP) 2014 CREST Genetic Improvement Justyna Petke

  46. Program Representation Changes at the level of lines of source code Each individual is composed of a list of changes Specialised grammar used to preserve syntax Genetic Improvement Justyna Petke

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend