PyCompArch: python-based modules for exploring computer architecture concepts

2015 
As computer architecture integrates multiple concepts such as microarchitecture, design, the hardware-software interface, compilers, and operating systems, there is an always increasing need to develop new methods for learning and exploring the field. Parallelism in computer systems is a key focus in computer architecture and some core parallel concepts include Amdahl's law, efficiency, and overhead. While there are a number of ways to examine these topics in traditional lectures and assignments, a unique way is to leverage Python-based programming environments that allow students to independently explore concepts and their governing parameters. This paper presents the highlights of PyCompArch Python module developed using the IPython Notebook environment to help the study of concepts in computer architecture. Python is a widely used general-purpose, high-level programming language, but traditionally the language does not play a leading role in the education of computer architecture. IPython Notebooks allow developers to interactively run Python code cells and to construct Python codes that execute on remote servers that eliminate any system requirements of the individual. In this way, the environment supports web-based remote "in the cloud" code development that can be modified during lectures or in homework assignments. The PyCompArch module supports a number of ways to help individuals learn concepts of parallelism related to computer architecture as well as explore experiments in computer performance and control. For example, PyCompArch supports the evaluation of performance of real-world benchmarks such as Open Computer Vision (OpenCV) and dynamic frequency scaling (DFS) in Raspberry Pi systems. Overall, the PyCompArch supports student learning and development of experiments in computer architecture.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    3
    References
    0
    Citations
    NaN
    KQI
    []