  DNA sequencing is revolutionising the field of medicine. DNA sequencers, the
machines which perform DNA sequencing, have evolved from the size of a fridge
to that of a mobile phone over the last two decades. The cost of sequencing a
human genome also has reduced from billions of dollars to hundreds of dollars.
Despite these improvements, DNA sequencers output hundreds or thousands of
gigabytes of data that must be analysed on computers to discover meaningful
information with biological implications. Unfortunately, the analysis
techniques have not kept the pace with rapidly improving sequencing
technologies. Consequently, even today, the process of DNA analysis is
performed on high-performance computers, just as it was a couple of decades
ago. Such high-performance computers are not portable. Consequently, the full
utility of an ultra-portable sequencer for sequencing in-the-field or at the
point-of-care is limited by the lack of portable lightweight analytic
techniques. This thesis proposes computer architecture-aware optimisation of
DNA analysis software. DNA analysis software is inevitably convoluted due to
the complexity associated with biological data. Modern computer architectures
are also complex. Performing architecture-aware optimisations requires the
synergistic use of knowledge from both domains, (i.e, DNA sequence analysis and
computer architecture). This thesis aims to draw the two domains together. In
this thesis, gold-standard DNA sequence analysis workflows are systematically
examined for algorithmic components that cause performance bottlenecks.
Identified bottlenecks are resolved through architecture-aware optimisations at
different levels, i.e., memory, cache, register and processor. The optimised
software tools are used in complete end-to-end analysis workflows and their
efficacy is demonstrated by running on prototypical embedded systems.
