About Me

I am a Reader (Associate Professor) in the School of Informatics at the University of Edinburgh, where I am a member of the CArD group of the Edinburgh ARM Centre of Excellence.

Working with me

If you are interested in working with me, e.g. as PhD or MRes student, please get in touch. Fully funded places are available in the Edinburgh Centre for Doctoral Training in Pervasive Parallelism!

Research interests

I am broadly interested in software transformation, mostly for performance optimisation and parallelisation, but I have also looked at various techniques to e.g. reduce code size on embedded processors. Many transformations a compiler can apply are closely coupled to some kind of analysis determining whether the transformation is safe, i.e. it doesn’t break the program, and profitable, i.e. the program runs faster as a result of applying the transformation. Static analyses, which do not execute the program, but reason about it using some fancy maths, are often conservative and return statements such as “don’t know” or “maybe”. Obviously, this is not helpful for program transformation. Instead, we could either improve static analyses, but this is tricky (and often in fact intractable), or we could incorporate dynamic information obtained from actually running the program. And this is what I am interested in! Of course, there are lots of interesting problems to solve, e.g. how can we make this dynamic analysis safe and make sure we don’t miss some corner case, or how do we make it fast as we don’t want to spend a lot of time analysing the program at runtime when all we want to do is to actually reduce the program’s execution time.

All of this has a number of applications, for example to drive better code optimisations applied by a compiler, to enable more aggressive parallelisation of sequential legacy code or to improve performance of just-in-time compilers in dynamic binary translators (also known as instruction set simulators or emulators).

Short biography

  • Since Aug. ’11: Reader (US equiv. Associate Professor)
    School of Informatics, University of Edinburgh
  • Sept. ’04 – July ’11: Lecturer (US equiv. Assistant Professor)
    School of Informatics, University of Edinburgh
  • Sept. ’03 – Aug. ‘04: Research Associate
    School of Informatics, University of Edinburgh
  • Oct. ’00 – May ‘04: PhD in Computer Science
    School of Informatics, University of Edinburgh
  • Oct. ’99 – Sept. ‘00: MSc in Computer Science
    School of Informatics, University of Edinburgh
  • Oct. ’92 – Sept. ‘99: Dipl.-Inf. in Computer Science
    Fachbereich Informatik, Universität Dortmund

PhD Studentships

The School has a number of competitive studentships for PhD study. I am interested in taking on PhD students to work on the following areas:

  • Dynamic Program Analysis and Transformation, including (Semi-)Automatic Parallelisation of Legacy Applications, and Identification of Structured Parallelism, including Algorithmic Skeletons
  • Code Generation and Optimisation, especially for Embedded Platforms
  • Just-in-Time Compilation
  • Instruction Set Simulation, including Dynamic Binary Translation and Full-System Simulation
  • Performance Estimation in Simulators
  • Hardware/Software Design Space Exploration

Please do contact me for further information on any of these areas. If you are sending me an informal enquiry, please put the term “PhD Application” in the title of the email. Please also include a CV and a brief statement of research interest. Informal enquiries do not constitute an application, and I ignore all unpersonalised emails (if you are serious about a PhD, you send individual enquiries not mass mailed ones). To apply you should use the usual University of Edinburgh application. However I do recommend that you back up any application with an informal enquiry. January 1 is considered to be a first cutoff for applications. Though I do accept applications after that date, I do recommend you try to apply before that date if you can as it makes it easier to get funding.

 

Research Group

Virtually all my work is the result of a collaborative group effort and would not be possible without the various people working with me. This includes mostly PhD students and Post-Doctoral Researchers, but also MSc and undergraduate students and colleagues across ICSA.

PostDocs and Students

Post-Doctoral Researchers

  • Harry Wagstaff – Dynamic Binary Translation, Architecture Description Languages, and High Speed Simulation
  • Tom Spink – Multi-Core In-Memory Database on a Chip (McDoC)

PhD Students

  • Stan Manilov – Analysis and Transformation of Legacy Code
  • Alexandr Maramzim – CDT Pervasive Parallelism (MSc stage)
  • Kuba Kaszyk – Accurate Simulation of Mobile GPUs
  • Chris Vasiladiotis – Parallelisation Using Commutativity Analysis
  • Chad Verbowski – Data Center Optimizations

Former PostDocs and Students

 

Publications

Most of my publications can be found on either Google Scholar or my ACM author page. However, if you prefer an overview by publication category and in chronological order you may wish to browse through the list below, which I try to keep reasonably up-to-date.

Book Chapters

  1. Björn Franke.
    C Compilers and Code Optimization for DSPs.
    In: Shuvra Bhattacharyya, Ed Deprette, Jarmo Takala, and Rainer Leupers (editors): Handbook on Signal Processing Systems, Springer Verlag, New York, 2013.

  2. Björn Franke.
    C Compilers and Code Optimization for DSPs.
    In: Shuvra Bhattacharyya, Ed Deprette, Jarmo Takala, and Rainer Leupers (editors): Handbook on Signal Processing Systems, Springer Verlag, New York, 2010.

  3. Nigel Topham, Björn Franke, Daniel Jones and Daniel Powell.
    Adaptive High-speed Processor Simulation.
    In: Olivier Temam and Rainer Leupers (editors): Processor and System-On-Chip Simulation, Springer Verlag, New York, 2010.

Conference Proceedings

  1. Björn Franke, Youfeng Wu and Fabrice Rastello.
    Proceedings of the 2016 International Symposium on Code Generation and Optimization (CGO’16), Barcelona, Spain. March 12 – 18, 2016.

  2. Björn Franke.
    Proceedings of the 24th International Conference on Compiler Construction (CC 2015), Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, London, UK, April 11-18, 2015.

  3. Björn Franke and Jingling Xue.
    Proceedings of the SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems 2013, LCTES ’13, Seattle, WA, USA, June 20-21, 2013.

Journal Articles

  1. Stanislav Manilov, Björn Franke, Anthony Magrath, Cedric Andrieu
    Free Rider: A Source-Level Transformation Tool for Retargeting Platform-Specific Intrinsic Functions.
    ACM Transactions on Embedded Computing Systems (TECS), Volume 16, Issue 2, January 2017.

  2. Tom Spink, Harry Wagstaff, Björn Franke
    Hardware-Accelerated Cross-Architecture Full-System Virtualization.
    ACM Transactions on Architecture and Code Optimization (TACO), Volume 13 Issue 4, December 2016.

  3. Zheng Wang, Georgios Tournavitis, Björn Franke, Michael F. P. O’Boyle.
    Integrating profile-driven parallelism detection and machine-learning-based mapping.
    ACM Transactions on Architecture and Code Optimization (TACO), Volume 11, Issue 1, February 2014.

  4. O. Almer, I. Böhm, T. Edler von Koch, B. Franke, S. Kyle, V. Seeker, C. Thompson, and N. Topham.
    A Parallel Dynamic Binary Translator for Efficient Multi-Core Simulation.
    International Journal of Parallel Programming, April 2013, Volume 41, Issue 2, pp 212-235.

  5. Alastair Murray and Björn Franke.
    Adaptive Source-Level Data Assignment to Dual Memory Banks.
    ACM Transactions on Embedded Computing Systems (TECS), Volume 11S, Issue 1, June 2012.

  6. Björn Franke.
    Statistical Performance Modeling in Functional Instruction Set Simulators.
    ACM Transactions on Embedded Computing Systems (TECS), Volume 11S, Issue 1, June 2012.

  7. Richard V. Bennett, Alastair Murray, Björn Franke and Nigel Topham.
    Code Transformation and Instruction Set Extensions.
    ACM Transactions on Embedded Computing Systems (TECS), Vol. 8, Issue 4, July 2009.

  8. Björn Franke and Michael O’Boyle.
    A Complete Compiler Approach to Auto-Parallelizing C Programs for Multi-DSP Systems.
    IEEE Transactions on Parallel and Distributed Systems (TPDS),  Vol. 16, No. 3, pp 234-245, March 2005.

  9. Björn Franke and Michael O’Boyle.
    Array Recovery and High-Level Transformations for DSP Applications.
    ACM Transactions on Embedded Computing Systems (TECS),  Vol. 2, Issue 2, pp 132-162, May 2003.

Conference Papers

  1. Harry Wagstaff, Bruno Bodin, Tom Spink and Björn Franke.
    SimBench: A Portable Benchmarking Methodology for Full-System Simulators.
    To Appear In: Proceedings of the International Symposium on Performance Analysis of Systems and Software (ISPASS), 2017.

  2. Bruno Bodin, Luigi Nardi, M Zeeshan Zia, Harry Wagstaff, Govind Sreekar Shenoy, Murali Emani, John Mawer, Christos Kotselidis, Andy Nisbet, Mikel Lujan, Björn Franke, Paul Kelly and Michael O’Boyle.
    Integrating Algorithmic Parameters into Benchmarking and Design Space Exploration in Dense 3D Scene Understanding.
    In: Proceedings of the 25th Conference on Parallel Architectures and Compilation Techniques (PACT’16), Haifa, Israel, September 11-15, 2016.

  3. Tom Spink, Harry Wagstaff, and Björn Franke.
    Efficient Asynchronous Interrupt Handling in a Full-System Instruction Set Simulator.
    Proceedings of the 2016 Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES’16), Santa Barbara, California, USA, June 13-14, 2016.

  4. Luna Backes, Alejandro Rico and Björn Franke.
    Experiences in Speeding Up Computer Vision Applications on Mobile Computing Platforms.
    Proceedings of the International Symposium on Systems, Architectures, Modeling, and Simulation (SAMOS XV), Samos, Greece, July 20-23, 2015.

  5. Tom Spink, Harry Wagstaff, Björn Franke and Nigel Topham.
    Efficient Dual-ISA Support in a Retargetable, Asynchronous Dynamic Binary Translator.
    Proceedings of the International Symposium on Systems, Architectures, Modeling, and Simulation (SAMOS XV), Samos, Greece, July 20-23, 2015.

  6. Stanislav Manilov, Björn Franke, Anthony Magrath, Cedric Andrieu.
    Free Rider: A Tool for Retargeting Platform-Specific Intrinsic Functions.
    Proceedings of the 2015 Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES’15), Portland, Oregon, USA, June 18-19, 2015.

  7. Stephen Kyle, Hugh Leather, Björn Franke, Dave Butcher, Stuart Monteith.
    Application of Domain-aware Binary Fuzzing to Aid Android Virtual Machine Testing.
    Proceedings of the 11th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE’15), Istanbul, Turkey, March 14-15, 2015.

  8. Volker Seeker, Pavlos Petoumenos, Hugh Leather, Björn Franke.
    Measuring QoE of Interactive Workloads and Characterising Frequency Governors on Mobile Devices.
    Proceedings of the 2014 IEEE International Symposium on Workload Characterization (IISWC’15), Raleigh, North Carolina, USA, October 2014.

  9. Harry Wagstaff, Tom Spink, Björn Franke.
    Automated ISA Branch Coverage Analysis and Test Case Generation for Retargetable Instruction Set Simulators.
    Proceedings of the International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES 2014), New Dehli, India, October 2014.

  10. Tom Spink, Harry Wagstaff, Björn Franke, Nigel Topham.
    Efficient Code Generation in a Region-Based Dynamic Binary Translator.
    Proceedings of the ACM SIGPLAN Conference on Languages, Compilers and Tools for Embedded Systems (LCTES 2014), Edinburgh, June 2014.

  11. Tobias J.K. Edler von Koch, Björn Franke, Pranav Bhandarkar, Anshuman Dasgupta.
    Exploiting Function Similarity for Code Size Reduction.
    Proceedings of the ACM SIGPLAN Conference on Languages, Compilers and Tools for Embedded Systems (LCTES 2014), Edinburgh, June 2014.

  12. Zheng Wang, Daniel Christopher Powell, Björn Franke, Michael F.P. O’Boyle.
    Exploitation of GPUs for the Parallelisation of Probably Parallel Legacy Code.
    Proceedings of the 23rd International Conference on Compiler Construction (ETAPS CC), 5-13 April 2014, Grenoble, France.

  13. Tobias J.K. Edler von Koch and Björn Franke.
    Variability of Data Dependences and Control Flow.
    Proceedings of the 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS 2014), March 23-25, 2014.

  14. Harry Wagstaff and Björn Franke.
    Early Partial Evaluation in a JIT-compiled, Retargetable Instruction Set Simulator Generated from a High-Level Architecture Description.
    Proceedings of the 50th Design Automation Conference (DAC 2013), Austin, TX, June 2013.

  15. Tobias Edler von Koch and Björn Franke.
    Limits of Region-Based Dynamic Binary Parallelization.
    Proceedings of the 2013 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE’13), Houston, TX, March 2013.

  16. Alastair Murray and Björn Franke.
    Compiling for Automatically Generated Instruction Set Extensions.
    Proceedings of the 2012 International Symposium on Code Generation and Optimization. San Jose, US, March 31 – April 4, 2012.

  17. K.Sundararajan, V.Porpodas, T.Jones, N.Topham and B.Franke.
    Cooperative Partitioning: Energy-Efficient Cache Partitioning for High-Performance CMPs.
    Proceedings of the 18th International Symposium on High Performance Computer Architecture (HPCA’12), New Orleans, US, February 25-29, 2012.

  18. Stephen C. Kyle, Igor Böhm, Björn Franke, Hugh Leather, Nigel P. Topham.
    Efficiently parallelizing instruction set simulation of embedded multi-core processors using region-based just-in-time dynamic binary translation.
    Proceedings of the Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES’12), Beijing, China, June 12-13, 2012.

  19. Oscar Almer, Igor Böhm, Tobias Edler von Koch, Björn Franke, Stephen Kyle, Volker Seeker, Christopher Thompson and Nigel Topham.
    Scalable Multi-Core Simulation Using Parallel Dynamic Binary Translation.
    Proceedings of the International Symposium on Systems, Architectures, Modeling, and Simulation (SAMOS’11), Samos, Greece, July 19-22, 2011.

  20. Oscar Almer, Miles Gould, Björn Franke, Nigel P. Topham.
    Selecting the Optimal System: Automated Design of Application-Specific Systems-on-Chip. Proceedings of NoCArc@MICRO 2011.

  21. Igor Böhm, Tobias Edler von Koch, Björn Franke and Nigel Topham.
    Generalized Just-In-Time Trace Compilation using a Parallel Task Farm in a Dynamic Binary Translator.
    Proceedings of the ACM SIGPLAN 2011 Conference on Programming Language Design and Implementation (PLDI’11), San Jose, CA, June 2011.

  22. Oscar Almer, Nigel Topham, and Björn Franke.
    A Learning-based Approach to the Automated Design of MPSoC Networks.
    Proceedings of ARCS 2011 – Architecture of Computing Systems, 22-25 February 2011, Como, Italy.

  23. Georgios Tournavitis and Björn Franke.
    Semi-Automatic Extraction and Exploitation of Hierarchical Pipeline Parallelism Using Profiling Information.
    Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT ’10), Vienna, Austria, September 11-15, 2010.

  24. Igor Böhm, Björn Franke and Nigel Topham.
    Cycle-Accurate Performance Modelling in an Ultra-Fast Just-In-Time Dynamic Binary Translation Instruction Set Simulator.
    Proceedings of the International Symposium on Systems, Architectures, Modeling, and Simulation (SAMOS’10), Samos, Greece, July 19-22, 2010.

  25. Tobias Edler von Koch, Igor Böhm, and Björn Franke.
    Integrated Instruction Selection and Register Allocation for Compact Code Generation Exploiting Freeform Mixing of 16- and 32-bit Instructions.
    Proceedings of the International Symposium on Code Generation and Optimization (CGO), Toronto, Canada, 2010.

  26. Damon Fenacci, Björn Franke, and John Thomson.
    Workload Characterization Supporting the Development of Domain-Specific Compiler Optimizations Using Decision Trees for Data Mining.
    Proceedings of the 13th International Workshop on Software & Compilers for Embedded Systems, SCOPES, 2010.

  27. John Thomson, Michael O’Boyle, Grigori Fursin and Björn Franke.
    Reducing Training Time and Calculating Confidence in a Machine Learning-based Compiler.
    Proceedings of 22nd International Workshop on Languages and Compilers for Parallel Computers (LCPC’09), Newark, Delaware, 2009.

  28. Daniel Powell and Björn Franke.
    Using Continuous Statistical Machine Learning to Enable High-Speed Performance Prediction in Hybrid Instruction-/Cycle-Accurate Instruction Set Simulators.
    Proceedings of the International Conference on Hardware/Software Codesign and System Synthesis (CODES-ISSS), Grenoble, 2009.

  29. Georgios Tournavitis, Zheng Wang, Björn Franke and Michael O’Boyle.
    Towards a Holistic Approach to Auto-Parallelization: Integrating Profile-Driven Parallelism Detection and Machine-Learning Based Mapping.
    Proceedings of the ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI), Dublin, 2009.

  30. Alastair Murray and Björn Franke.
    Using Genetic Programming for Source-Level Data Assignment to Dual Memory Banks.
    Proceedings of the 3rd Workshop on Statistical and Machine Learning Approaches to Architecture and Compilation (SMART’09), Paphos, Cyprus, 2009.

  31. Oscar Almer, Richard Bennett, Igor Böhm, Alastair Murray, Xinhao Qu, Marcela Zuluaga, Björn Franke, Nigel Topham.
    An End-to-End Design Flow for Automated Instruction Set Extension and Complex Instruction Selection based on GCC.
    Proceedings of the First International Workshop on GCC Research Opportunities (GROW09), Paphos, Cyprus, 2009.

  32. Georgios Tournavitis and Björn Franke.
    Towards Automatic Profile-Driven Parallelization of Embedded Multimedia Applications. 
    Proceedings of the 2nd Workshop on Programmability Issues for Multi-Core Computers (MULTIPROG), Paphos, Cyprus, 2009.

  33. Jonathan Frye and Björn Franke.
    PDP – Pen Driven Programming.
    Proceedings of the BCS Human-Computer Interaction (HCI 2008) Conference, September 2008, Liverpool, United Kingdom.

  34. Björn Franke.
    Fast Cycle-Approximate Instruction Set Simulation.
    Proceedings of the Workshop on Software & Compilers for Embedded Systems (SCOPES 2008), March 2008, Munich, Germany.

  35. Alastair Murray and Björn Franke.
    Fast Source-Level Data Assignment to Dual Memory Banks.
    Proceedings of the Workshop on Software & Compilers for Embedded Systems (SCOPES 2008), March 2008, Munich, Germany.

  36. Shun Long, Grigori Fursin, and Björn Franke.
    A Cost-Aware Parallel Workload Allocation Approach Based on Machine Learning Techniques.
    Proceedings of the 2007 IFIP International Conference on Network and Parallel Computing (NPC 2007), September 2007, Dalian, China.

  37. Richard Bennett, Alastair Murray, Björn Franke, and Nigel Topham.
    Combining Source-to-Source Transformations and Processor Instruction Set Extension for the Automated Design-Space Exploration of Embedded Systems.
    Proceedings of ACM SIGPLAN/SIGBED 2007 Conference on Languages Compilers, and Tools for Embedded Systems (LCTES ‘07), June 2007, San Diego, USA.

  38. Christophe Dubach, John Cavazos, Björn Franke, Michael O’Boyle, Grigori Fursin, and Olivier Temam.
    Fast Compiler Optimisation Evaluation Using Code-Feature Based Performance Prediction.
    Proceedings of the ACM International Conference on Computing Frontiers, May 2007, Ischia, Italy.

  39. Edwin Bonilla, John Cavazos, Björn Franke, Michael O’Boyle, John Thomson, and Chris Williams.
    Using Machine Learning to Focus Iterative Optimization.
    Proceedings of the 4th Annual International Symposium on Code Generation and Optimization (CGO), March 2006, New York, USA.

  40. Björn Franke, Michael O’Boyle, John Thomson, and Grigori Fursin.
    Probabilistic Source-Level Optimisation of Embedded Programs.
    Proceedings of the 2005 Conference on Languages, Compilers and Tools for Embedded Systems (LCTES’05), June 15 – 17, 2005, Chicago, IL, USA.

  41. Björn Franke and Michael O’Boyle.
    Combining Program Recovery, Auto-Parallelisation and Locality Analysis for C Programs on Multi-Processor Embedded Systems.
    Proceedings of the 11th Workshop on Compilers for Parallel Computers (CPC 2004), July 7 – 9, 2004, Chiemsee, Germany.

  42. Björn Franke and Michael O’Boyle.
    Combining Program Recovery, Auto-Parallelisation and Locality Analysis for C Programs on Multi-Processor Embedded Systems.
    Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques (PACT’03), September 27 – October 01, 2003, New Orleans, Louisiana.

  43. Björn Franke and Michael O’Boyle.
    Compiler Parallelization of C programs for Multi-core DSPs with Multiple Address Spaces.
    Proceedings of the 1st IEEE/ACM/IFIP international conference on Hardware/Software Codesign & System Synthesis (CODES-ISSS 2003), October 01 – 03, 2003, Newport Beach, CA, USA.

  44. Björn Franke and Michael O’Boyle.
    Array Recovery and High Level Transformations for DSP Applications.
    Proceedings of the 10th International Workshop on Compilers for Parallel Computers (CPC 2003), January 8-10, 2003, Amsterdam, The Netherlands.

  45. Björn Franke and Michael O’Boyle.
    An Empirical Evaluation of High Level Transformations for Embedded Processors.
    Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES), November 16-17, 2001, Atlanta, Georgia, USA.

  46. Björn Franke and Michael O’Boyle.
    Compiler Transformation of Pointers to Explicit Array Accesses in DSP Applications.
    In: Reinhard Wilhelm (Ed.), LNCS 2027, pp. 69-85, Proceedings of ETAPS Compiler Construction 2001, April 2-6, 2001, Genova, Italy.

  47. Björn Franke and Michael O’Boyle.
    Towards Automatic Parallelisation for Multiprocessor DSPs.
    Proceedings of the 5th International Workshop on Software and Compilers for Embedded Systems (SCOPES), March 20-22, 2001, St. Goar, Germany.

  48. Björn Franke and Michael O’Boyle.
    Automatic Array Access Recovery in Pointer based DSP Codes.
    Proceedings of 2nd Workshop on Media Processors and DSPs, 33rd International Symposium on Microarchitecture, December 2000, Monterey, California.

Theses

  1. Björn Franke.
    Compilation Techniques for High-Performance Embedded Systems with Multiple Processors.
    Ph.D. Thesis, School of Informatics, University of Edinburgh, 2004.

  2. Björn Franke.
    Program Analyses and Transformations Exploiting Parallelism in DSPs.
    M.Sc. Thesis, Department of Computer Science, University of Edinburgh, 2000.

  3. Björn Franke.
    Analysen und Methoden optimierender Compiler zur Steigerung der Effizienz von Speicherzugriffen in eingebetteten Systemen.
    Diplomarbeit, Fachbereich Informatik, Universität Dortmund, 1999.

Teaching

I will be on a sabbatical throughout the academic year 2017/18. As such I won’t be teaching any classes.

Current Teaching

I am teaching two courses in the 2016/17 academic year:

Past Teaching

Over the years I have been teaching numerous courses including:

  • Compiling Techniques
  • Compiler Optimisation
  • Distributed Systems
  • Embedded Systems
  • C Programming Concepts and Skills

Course Design

Together with my colleague Paul Patras I have been designing our new course “Internet of Things, Security, and the Cloud”. This course is intended to replace our existing Embedded Systems course, which I co-designed with Michael O’Boyle several years ago, from 2017/18 onwards.

Teaching Administration

I am in the second year of my term as Director of Teaching of the School of Informatics. My terms as DoT will come to an end in August 2017.