Font Size: a A A

Optimizing software through fully understanding the underlying architecture & strengthening the compiler

Posted on:2014-10-29Degree:M.SType:Thesis
University:University of Colorado at DenverCandidate:Mezher, Ahmed EskanderFull Text:PDF
GTID:2458390005493038Subject:Computer Science
Abstract/Summary:
Software developers are trying to write more efficient and faster programs. Increasing speed and efficiency not only depends on software programming knowledge, but also on understanding of the underlying computer architecture and compiler. Many programmers do not consider the machine architecture when they write code. Knowing the architecture specifications of the computer before writing code can influence program efficiency and speed. Also, optimizing compilers have a significant impact on the speed of program execution. The GCC compiler is a well-known compiler that has advanced techniques to optimize code. However, GCC compiler has several weaknesses in certain areas such as optimizing arithmetic operations, optimizing function calls, optimizing loops and providing full automatic parallelization. Those weaknesses can make programs run slower. This thesis helps developers to write more efficient software by presenting the weaknesses and strengths of the machine architecture and building tools to improve the weaknesses of the GCC compiler. In this thesis we show the negative impact of not considering the architecture specifications when programs are written to motivate software developers to pay attention to the architecture specifications of the machine. Several tools are designed to improve the weaknesses in the GCC compiler. Our tools work together with the GCC compiler to help developers design more efficient code. Also, our tools can work on different compiler architecture, are not limited to specific compiler architecture. We tested our tools to optimize real C applications such as Strassen.cpp, Bubble Sort.cpp and Selection Sort.cpp and we successfully optimized them. Therefore, by using our tools together with the GCC compiler, programs will be more efficient and faster. Through understanding the weaknesses and strengths of the underlying computer architecture, and using our tools together with the GCC compiler, developers can design more efficient software.
Keywords/Search Tags:Together with the GCC compiler, Architecture, Software, Developers, Efficient, Underlying, Optimizing, Tools
Related items