GISMO: Genetic Improvement of Software for Multiple Objectives
|
|
Principal Investigator
Prof. Mark Harman,
CREST, UCL
Named Research Fellow
Dr. William B. Langdon,
CREST, UCL
Academic Collaborators
Marc Schoenauer,
INRIA, France
Andrea Arcuri,
Schlumberger, Norway
Industrial Collaborators
Motorola Labs, Basingstoke, UK.
IBM
nVidia
EPSRC Grant Ref:
EP/I033688/1
Summary pdf
|
Major components of GISMOE approach.
Left: system to be improved and its test suite.
Right: genetic programming optimises modifications
which originate from a grammar that describes the original system.
|
What is Genetic Improvement Programming (GIP)?
GIP evolves replacement software components that maximise achievement
of multiple objectives, while retaining the interfaces between the
components so-evolved and the surrounding system. The GISMO project
will develop theory, algorithms and techniques for GIP as a way to
automatically optimise multiple software engineering objectives such
as maximal throughput, fastest response time and most reliable
performance, while minimising power consumption, faults, memory use,
compiled code size, peak disk usage and disk transfers.
The term component should be interpreted in its widest context. It
refers to any piece of code that can
be identified as a subpart of the overall program or system with
well-defined interface to the encasing system. For example, we include
functions, files, modules and procedures, for which interfaces are
defined by parameters and shared global variables. We also include
smaller segments of contiguous code that perform a coherent
well-defined task or set of tasks, for which the interface is captured
by the defined and referenced variables of the segment of code. What
is important is that these pieces of code can be replaced by an
evolved component that preserves their functionality and interface,
while maximising achievement of challenging new multiple objectives.
The Problem Addressed by GISMO?
The emergent computing application paradigms require systems that are
not only correct but are also optimised for many different competing
non-functional requirements. Increasingly, we need to adapt existing
systems to cater for operating environments with challenging
non-functional properties. For instance, the migration from
stand-alone systems to large scale distributed systems brings with it
a need for optimisation of non-functional properties such as response
time and throughput. The increasing prevalence of smaller hand-held
systems such as communications devices, raises the importance of
non-functional properties such as power consumption and memory use.
Managing any one of these non-functional objectives is a challenge,
but managing several at once is a daunting prospect, even for the most
skilled and experience developer. The multiple objectives that have to
be optimised are often conflicting. For instance, one can often trade
speed of execution for compiled code size. Humans cannot be expected
to optimally balance such competing constraints and may miss
potentially valuable solutions.
The GISMO Solution?
The GISMO solution rests on two core observations:
- There is a wealth of relatively well-tested code upon which
organisations already rely.
- Evolutionary computation has proved able to balance many different
competing and potentially conflicting criteria.
We therefore seek to use evolutionary computation, not to evolve
entire systems but to replace components within existing systems with
evolved replacements. The goal of the evolution will be to optimise
for a new set of non-functional properties. These non-functional
properties will be mapped into fitness functions that will guide
evolution. The research challenge is to develop techniques that evolve
components that balance these objectives, in a scalable way, while
producing code that is useful and acceptable to the developer.
The GISMO project will address the scalability issue using parallel
computation. It will address the human acceptability issue using
interactive evolution.
Why the Project Will be Highly Transformative
Genetic programming has proved to be good at evolving small
code fragments for a single objective, while evolutionary computation
has proved effective at solving multiple objective problems. The GISMO
approach to scalability, human acceptance and multiple objectives are
all entirely novel for genetic programming. If the project is even
partly successful in its goal of automatically finding GIP-evolved
component replacements, this would be a major breakthrough. It would
significantly increase our ability to migrate systems to challenging
new operating environments and, simultaneously, dramatically reduce
the cost of doing so.
Is it feasible?
The PI and named research fellow, Bill Langdon, have demonstrated the
feasibility of the GIP approach. In our initial work we were able to
port a critical component of Unix gzip utility to a CUDA platform
[1].
The
GISMO project will employ Dr. Langdon as a named research fellow for
four years, in order to develop our new approach to software
development.
What are the GISMO Objectives?
To achieve its aims, the GISMO project will:
- Develop a theory of Genetic Interface Programming (GIP).
- Develop techniques for parallel GIP computation for scalability
and interactive GIP evolution for human involvement.
- Develop new algorithms for achieving single and multiple objective GIP.
- Evaluate qualitatively and quantitatively using benchmarks and
real world systems from the industrial partners.
Future Presentations
see
Presentations
-
Dagstuhl Seminar
Approaches and Applications of Inductive Programming
25-30 October
slides.
See seminar report, section 4.7, pp 100-101
doi:10.4230/DagRep.5.10.89
PDF.
Also ILP benchmarks
-
CS-DC'15 World e-conference
1 October 2015
Software is Not Fragile.
video
slides
paper etc.
- Keynote
SSBSE 2015,
Bergamo, Italy
5-7 September 2015.
slides
photographs
-
A better BarraCUDA,
GECCO 2015,
Madrid.
slides
-
A better pknots,
GI 2015,
Madrid.
slides
-
Genetically Improved BarraCUDA,
42nd
CREST Open Workshop.
slides
video
-
EuroGP panel discussion,
9 April 2015.
-
Seminar
Manchester University,
18 Feb 2015.
-
UK Many-Core Developer Conference
UKMAC 2014,
University of Cambridge,
15 Dec.
-
Seminar,
University of Limerick,
2 Dec 2014.
-
Seminar
Bath University,
11 Nov 2014.
-
NII Shonan Meeting
Computational Intelligence for Software Engineering
20-23 October 2014.
slides
-
Seminar
Department of Computer Science and Information Systems,
Birkbeck,
8 October 2014.
- Keynote
SYNASC 2014,
Timisoara
22-25 September 2014.
-
Mark Harman's
Keynote
SPLC 2014,
Florence
15-19 September 2014.
-
Babel Pidgin: SBSE can grow and graft entirely new functionality into a real world system,
Winner
SSBSE-2014 Challenge Track,
Brazil,
26-29 August 2014.
video
-
Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class,
Winner of Silver at GECCO 2014
Humie.
slides
-
Improving Source Code with Genetic Programming,
GECCO 2014
(1 page summary).
-
Improving 3D Medical Image Registration CUDA Software with Genetic Programming,
GECCO 2014,
Vancouver, 12-16 July 2014.
slides
-
Mark Harman's
Keynote
SEAMS 2014,
Hyderabad, 2-3 June 2014.
slides (5MB)
-
CREST Annual Review,
UCL,
19-20 May 2014.
-
Genetically Improved CUDA C++ Software,
EuroGP
23-25 April 2014.
Slides
Videos
-
Justyna Petke,
Using Genetic Improvement & Code Transplants to Specialise a C++ Program to a Problem Class
EuroGP
23-25 April 2014.
Slides
- Seminar,
Chalmers University of Technology,
28 Feb 2014.
- UKMAC 2013,
UK Manycore Developer Conference, 16 Dec 2013
(poster).
-
Seminar at
INRIA, Saclay, Ile-de-France,
29th October 2013.
- Keynote
Artificial Evolution 2013
Bordeaux,
23rd October 2013.
- Keynote
WCRE 2013
Koblenz,
14-17 October 2013.
Slides on YouTube.
- CREST Open Workshop:
Genetic Programming for Software Engineering
14-15 October 2013.
Slides
miniSat,
videos, etc.
- Keynote
SICSA
(Scottish Informatics and Computer Science Alliance),
Edinburgh,
17 September 2013
-
SSBSE 2013
Leningrad,
24-26 August 2013.
Justyna Petke,
Slides
- Keynote
GECCO 2013
Amsterdam,
8 July 2013.
German radio broadcast 7 July 2013.
-
GECCO 2013
Amsterdam,
6 July 2013
- Theory of Evolutionary Algorithms
Dagstuhl Seminar,
"Program Landscapes may be Smoother than you Expected",
5 July 2013.
Report on Dagstuhl Seminar
13271.
- Keynote
CSBSE 2013,
Dalian, China, 8-9 June 2013.
- Seminar,
20 May 2013,
Department of Electronics, University of York.
Slides
- Genetic improvement of software: a case study,
Justyna Petke,
DAASE/COW workshop on
Dynamic Adaptive Automated Search Based Software Engineering,
22-23 April 2013,
UCL.
Slides
- Seminar,
15 March 2013,
Computing Science and Mathematics,
University of Stirling.
- The GISMOE challenge: Constructing the Pareto Program Surface Using Genetic Programming to Find Better Programs,
5th February 2013,
Microsoft Research
- Genetic Programming Optimising a Large Tool: the Evolution of Computer
Programming,
5th February 2013,
Microsoft Research
- Presentation at
The 22th CREST Open Workshop
on
Engineering Optimisation,
30th October 2012.
- Seminar at
University of Birmingham,
22nd October 2012.
- Very short introduction to GISMOE at
DAASE project startup meeting
15th October 2012.
- Presentation in Holland at the
CWI
(on
RN/12/09)
11th October 2012.
- Mark Harman's
keynote
in Essen, Germany
at
the 27th IEEE/ACM International Conference on Automated Software Engineering
(ASE 2012)
3-7 September 2012
(paper,
reference).
- Keynote at
Mendel 2012
18th International Conference on Soft Computing,
27-29 June, in the Czech Republic, Brno
(slides,
paper,
reference).
- Evolving nVidia GPU parallel source code,
Workshop: Managing and Optimising Multiplicity Computing,
22-23 March 2012
(slides,
video;
CEC 2010 paper,
reference).
-
Presentation to
PASTE 2011,
5th September 2011,
Szeged, Hungary.
Videos
Radio
Print Media
Publications
-
Optimising Existing Software with Genetic Programming,
William B. Langdon and Mark Harman,
IEEE Transactions on Evolutionary Computation,
Feb 2015, 19(1), 118-135.
DOI
Draft.
Celebration photo.
Sue Black interview
-
Improving CUDA DNA Analysis Software with Genetic Programming,
William B. Langdon and Brian Yee Hong Lam and Justyna Petke and Mark Harman,
GECCO 2015.
pp1063-1070.
DOI
PDF.
slides
Sue Black interview
-
Improving 3D Medical Image Registration CUDA Software with Genetic Programming,
William B. Langdon and Marc Modat and Justyna Petke and Mark Harman.
In
Christian Igel,
et al.
eds.,
ACM
DOI
PDF.
-
Genetically Improved CUDA C++ Software,
W. B. Langdon and M. Harman.
In
EuroGP-2014,
Miguel Nicolau and Krzysztof Krawiec and Malcolm Heywood
eds.,
LNCS, Springer.
PDF
Slides.
-
Using Genetic Improvement & Code Transplants to Specialise a C++ Program to a Problem Class,
Justyna Petke and Mark Harman and William B. Langdon and Westley Weimer.
In
EuroGP-2014,
Miguel Nicolau and Krzysztof Krawiec and Malcolm Heywood
eds.,
LNCS, Springer.
Winner Humie Award
PDF
Slides
-
Grow and Serve: Growing Django Citation Services Using SBSE,
Yue Jia and Mark Harman and William B. Langdon and Alexandru Marginean,
In SSBSE Challenge,
Shin Yoo and Leandro Minku Eds.,
SSBSE 2015,
Bergamo, Italy.
PDF
DOI
-
Babel Pidgin: SBSE can grow and graft entirely new functionality into a real world system,
Mark Harman and Yue Jia and William B. Langdon.
In SSBSE 2014, LNCS 8636, 247-252,
Fortaleza, Brazil, Springer.
Winner SSBSE-2014 Challenge Track.
PDF
DOI
video
-
Genetic Improvement of Software for Multiple Objectives,
W. B. Langdon.
In
SSBSE 2015,
Symposium on Search-Based Software Engineering,
Bergamo, Italy,
September 5-7, 2015,
pp12-28.
Invited Keynote.
Springer.
PDF
DOI.
-
Genetic Improvement of Programs,
William B. Langdon.
In
SYNASC 2014,
16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, Timisoara, 2014,
pp14-19.
Post-proceedings.
Invited Keynote.
IEEE.
PDF
DOI.
-
Software is Not Fragile,
William B. Langdon and Justyna Petke.
In
CS-DC 2015,
Complex Systems 2015 World e-Conference,
30 September - 1 October 2015,
Invited paper.
Springer.
PDF
presentation.
-
Search based software engineering for software product line engineering: a survey and directions for future work,
Mark Harman and Yue Jia and Jens Krinke and W. B. Langdon and Justyna Petke and Yuanyuan Zhang,
In
SPLC 2014, pp5-18,
Invited Keynote,
ACM.
PDF
DOI
-
Genetic Improvement for Adaptive Software Engineering,
Mark Harman and Yue Jia and William B. Langdon and Justyna Petke and Iman Hemati Moghadam and Shin Yoo and Fan Wu,
In
SEAMS-2014,
Gregor Engels
ed.,
Invited Keynote.
PDF
-
Genetic Programming for Reverse Engineering,
Mark Harman, William B. Langdon and
Westley Weimer,
WCRE 2013 Keynote.
Koblenz, 14-17 October,
PDF
-
The GISMOE challenge: Constructing the Pareto Program Surface Using Genetic Programming to Find Better Programs,
Mark Harman, William B. Langdon, Yue Jia, David R. White, Andrea Arcuri and John A. Clark,
ASE 2012 Keynote.
PDF
DOI
-
The GISMOE Architecture,
Yue Jia and
Mark Harman and
Bill Langdon.
CSBSE 2013 Keynote
PDF.
-
Evolving a CUDA Kernel from an nVidia Template,
W.B. Langdon
and
M. Harman.
In
CIGPU
(WCCI) 2010,
pages 2376-2383,
18-23 July, Barcelona.
PDF
more...
-
Applying Genetic Improvement to MiniSAT,
Justyna Petke,
William B. Langdon and Mark Harman,
SSBSE 2013,
LNCS 8084, pp257-262.
PDF
DOI
-
Grow and Graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation,
William B. Langdon and and Mark Harman,
in GI 2015,
pp805-810.
DOI
PDF
Slides
code
-
Which is faster: Bowtie2GP > Bowtie > Bowtie2 > BWA,
W. B. Langdon,
GECCO 2013 late breaking abstract.
PDF
(Linux 64bit executable, BT2 human genome index)
more...
-
Genetically Improved Software,
William B. Langdon,
in
Handbook of Genetic Programming Applications,
Amir H. Gandomi, Amir H. Alavi and Conor Ryan,
Editors.
Chapter 8, pp 181-220
DOI
Preprint.
-
Exact Mean Absolute Error of Baseline Predictor, MARP0,
William B. Langdon and Javier Dolado and Federica Sarro and Mark Harman,
Information and Software Technology,
73 (May 2016) pages 16-18.
DOI:10.1016/j.infsof.2016.01.003
PDF
-
Evaluation of Estimation Models using the Minimum Interval of Equivalence
Jose Javier Dolado and Daniel Rodriguez and Mark Harman and William B. Langdon and Federica Sarro
Applied Soft Computing,
Accepted
Free Code
Support
At the start of the project
nVidia
gave two
Tesla
C2050
to the project.
This was followed by
a 2496 core
Tesla K20
and most recently
nVidia
donated
two
Tesla K40,
which are
being used in this genetic improvement research.
Meetings
-
Meeting
with Marc Schoenauer,
INRIA, France,
20th October 2011.
- Meeting with Marc Schoenauer,
INRIA, France,
22 March 2012.
- Meeting
with Andrea Arcuri,
Schlumberger, Norway,
21-22 May 2012.
- Meeting/Feedback on RN/12/09
[2]
with Andrea Arcuri,
Schlumberger, Norway,
28-30 September 2012.
- Meeting with
Darrell Whitley,
1 Feb 2013.
- Meeting with
Robert Feldt,
28 Feb 2013.
- Meeting with
with Andrea Arcuri,
Schlumberger, Norway,
27 January 2014.
W.B.Langdon
16 March 2011
(last update 4 Aug 2020).