Multi-core programming presents developers with a dramatic paradigm shift.
Where the conceptual models of sequential programming largely supported the decoupling
of source from underlying architecture, it is now unwise to develop new
patterns, abstractions and parallel software in complete isolation from issues of modern
hardware utilization. Challenging issues historically associated with complex
systems code are now compounded within the parallel domain. These issues are
manifested at all stages of software development including design, development, testing
and maintenance. Programmers currently lack the essential tools to even partially
automate reasoning techniques, resource utilization and system configuration management.
Current trial and error strategies lack a systematic approach that will scale to
growing multi-core and multi-processor environments. In fact, current algorithm and
data layout conceptual models applied to design, implementation and pedagogy often
conflict with effective parallelization strategies. This disertation calls for a rethinking,
rebuilding and retooling of conceptual models, taking into account opportunities to
introduce parallelism for multi-core architectures from the ground up. In order to
establish new conceptual models, we must first 1) identify inherent complexities in
multi-core development, 2) establish support strategies to make handling them more explicit and 3) evaluate the impact of these strategies in terms of proposed software
development practices and tool support. / Graduate
Identifer | oai:union.ndltd.org:uvic.ca/oai:dspace.library.uvic.ca:1828/3539 |
Date | 31 August 2011 |
Creators | Berg, Celina |
Contributors | Coady, Yvonne |
Source Sets | University of Victoria |
Language | English, English |
Detected Language | English |
Type | Thesis |
Rights | Available to the World Wide Web |
Page generated in 0.0019 seconds