Tuesday, November 9, 2010
University of Strathclyde

Abstract: Computer hardware moves forward with increases of speed, more complicated processor design and more in built parallelism. Software also moves forward in complexity, paradigms and ease use of use. Sometimes the software struggles to keep up with the hardware. But the problems we have in programming remain the same with poor programming access to memory, deadlocked message passing, spaghetti code and lack of balance between compute and i/o. There is also a continuing dilemma of whether to write and tune for a specific architecture or rely on programming techniques and directives to achieve the required performance. With the use of standard tools and practices, one can make code clear, efficient, easily debuggable and modular with modularity including the identification of critical sections to be tuned or written in machine specific languages.