Strategies for Preparing Computer Science Students for the Multicore World

Total Page:16

File Type:pdf, Size:1020Kb

Strategies for Preparing Computer Science Students for the Multicore World Strategies for Preparing Computer Science Students for the Multicore World Richard Brown Elizabeth Shoop Joel Adams Curtis Clifton St. Olaf College (USA) Macalester College (USA) Calvin College (USA) Rose-Hulman Institute of [email protected] [email protected] [email protected] Technology (USA) [email protected] Mark Gardner Michael Haupt Peter Hinsbeeck Virginia Tech University (USA) Hasso-Plattner-Institut, University of Intel Corporation (Germany) [email protected] Potsdam (Germany) [email protected] [email protected] ABSTRACT for the foreseeable future. Nowadays, nearly all new computers provide at least two cores, and computers with 32 or more cores Multicore computers have become standard, and the number of can be constructed with commodity parts. In a few years, cores per computer is rising rapidly. How does the new demand “manycore” computers with hundreds or thousands of cores per for understanding of parallel computing impact computer science computer will become available [9]Error! Reference source not education? In this paper, we examine several aspects of this found.. question: (i) What parallelism body of knowledge do today’s Before the emergence of multi-core commodity computing students need to learn? (ii) How might these concepts and (approximately 2006), sequential software typically enjoyed practices be incorporated into the computer science curriculum? performance improvements as a direct consequence of hardware (iii) What resources will support computer science educators, performance improvements. Improvements came in both speed including non-specialists, to teach parallel computing? (iv) What and parallelism, in which multiple computational actions occur at systemic obstacles impede this change, and how might they be the same time. This parallelism within a CPU was largely out of overcome? We address these concerns as an initial framework for the view of a programmer, although the software that responding to the urgent challenge of injecting parallelism into programmers produced automatically benefited from it. But now, computer science curricula. programmers will have to write software that explicitly and Categories and Subject Descriptors correctly takes advantage of parallelism from multiple cores operating simultaneously, in order to obtain the hardware K.0 Computing Milieux/General; K.3.2 Computer Science speedups available on multi-core computers. Software products Education and systems that do not capitalize on the additional cores in a General Terms computer will be at a competitive disadvantage against those that Algorithm, Design, Performance, Reliability, Theory make effective use of multi-core parallelism. Programmers in the scientific and high-performance computing Keywords sectors have taken advantage of parallelism for decades, using Parallelism, Multi-core Computing specialized “supercomputer” hardware and/or networked clusters of computers. More recently, Internet-related companies have 1. INTRODUCTION become enormously successful by creating convenient ways to 1.1 The Multicore Revolution program in parallel using clusters, as in Google’s use of the map- We are motivated to teach more parallelism and concurrency in reduce programming model [38]. But with the arrival of multi- CS courses because of the necessary shift by hardware core computing, general consumer software products will now be manufacturers towards multi-core computer design. For over four programmed for parallelism. As we have seen with previous decades, hardware performance has improved at an exponential improvements in commodity hardware performance, we can rate, a remarkable feat that derives from ever increasing expect enhanced features requiring multi-core computing miniaturization of transistor components. Since transistors capabilities in coming versions of operating systems, productivity comprise the cores in a computer, i.e., the circuits within a software, web browsers, and other products. Other applications, computer’s central processing unit (CPU) that are capable of instead of capitalizing on increased performance, will take executing computer instructions, tinier transistors made it possible advantage of multi-core systems to offer the same level of service to create more and more powerful cores, in terms of both logical with lower power consumption. For example, mobile phones will capability and speed. This continued until the last decade, when soon have multi-core CPUs in order to operate at lower the industry began to encounter physical limitations on the speed frequencies and prolong battery life [119][108]. Thus, in every of a single core. Since that time, computer performance has computing sector, programmers and system designers must now improved primarily by increasing the number of cores per gain a deep understanding of parallel computing in order to obtain computer rather than the speed of a core. This trend will continue 1 greater or even the same performance from a multi-core computer Furthermore, in practice, implementation choices between virtual as single-core machine once offered. or physical parallelism, or multi-core vs. distributed computing This makes it urgent for computer science (CS) students to gain vs. a hybrid system, change quickly based on the resources broad exposure to concepts of parallelism. The parallel features available in a particular system. Thus, “parallel” as a generic term of a multi-core computing system represent a new kind of is useful even for practitioners and specialists. We note that even resource available for solving problems with computing. CS if the computing industry were not shifting to multi-core graduates who have studied parallelism will bring understanding computation at this time, we might now be conducting an ITiCSE of that technology to their careers, and employers will working-group strategic study in response to the explosion of increasingly demand it. In some countries, curricular change can distributed computing (e.g., Google’s use of map-reduce occur instantly through centralized decision-making; for example, computation [38]). as Intel’s Michael Wrinn points out, all CS students in China now Our document has a bias towards teaching principles of study parallelism, giving Chinese CS graduates a competitive parallelism using experiential learning. We affirm the research advantage in the global employment markets [126]. Broad-based literature endorsing active learning strategies, even though the curricular change is more challenging in countries where present-day tools students may use to get their hands-on curriculum decisions are made more locally. experience may soon pass away. We also believe that students who learn the most enduring parallelism principles available will 1.2 Strategies For Teaching Parallelism be best equipped for the imminent flow of new tools and Therefore, we formed our working group in order to develop techniques that will emerge during this new wave of parallel strategies for expediently and effectively incorporating parallelism computing. into undergraduate CS courses and curricula. It is not our purpose to formulate a call for bringing more parallelism into CS 1.3 Overview education, since industry and academic leaders have already made The following sections of this document consider strategies for that case compellingly [13][125][9]. Instead, our mission is to introducing parallelism in CS curricula by examining several consider how the CS education community can respond aspects of such strategies. strategically, productively, and as quickly as possible. In Section 2, we present a framework for expressing parallelism In order to explore our topic fully, our team includes not only CS content that integrates both an educator’s goals and a educators from many types of academic institutions, but also from practitioner’s objectives. In Section 3, we explore teaching and national research laboratories and from the hardware industry. learning practices, including the issue of when and where to teach Our disciplinary areas of expertise range from low-level hardware concepts of parallelism within a CS curriculum. In Section 4, we architecture to high-level virtual systems and programming examine goals for online sharing of content materials, teaching languages. The results of our study will hopefully spark further strategies, assignments, and feedback among a supportive discussion and expedited action within the international CS community of CS educators. In Section 5, we suggest two education community. guidelines for bringing about the timely systemic change of Since we seek to advance global change, we must choose an injecting parallelism into CS curricula, and briefly addresses some approach to our task that is neutral to differences in disciplinary of the challenges presented by such a transformation. We viewpoints and institutional nature when possible. For example, summarize our findings and suggest further strategic steps in we intend to highlight key concepts and issues with potential Section 6. relevance at many points in a CS curriculum, such as the notion of 2. TOWARD A PARALLELISM BODY OF scalability, believing that such pivotal concepts and issues are likely to apply in most curricular and institutional settings. Thus, KNOWLEDGE our silence on a particular topic or tool should not be interpreted Parallelism and related fields of study have a long and deep as disapproval. Likewise, we desire to make no assumptions tradition. In addition to the underlying lasting concepts, there are about
Recommended publications
  • BACHELOR PAPER Analysis of Mycroft and Rhasspy Open Source
    BACHELOR PAPER Term paper submitted in partial fulfillment of the requirements for the degree of Bachelor of Science in Engineering at the University of Applied Sciences Technikum Wien - Degree Program Smart Homes and Assistive Technologies Analysis of Mycroft and Rhasspy Open Source voice assistants By: Carlos Lumbreras Sádaba Supervisor 1: Ing. Martin Deinhofer, M.Sc. Vienna, 2020-22-06 Declaration of Authenticity “As author and creator of this work to hand, I confirm with my signature knowledge of the relevant copyright regulations governed by higher education acts (see Urheberrechtsgesetz/ Austrian copyright law as amended as well as the Statute on Studies Act Provisions / Examination Regulations of the UAS Technikum Wien as amended). I hereby declare that I completed the present work independently and that any ideas, whether written by others or by myself, have been fully sourced and referenced. I am aware of any consequences I may face on the part of the degree program director if there should be evidence of missing autonomy and independence or evidence of any intent to fraudulently achieve a pass mark for this work (see Statute on Studies Act Provisions / Examination Regulations of the UAS Technikum Wien as amended). I further declare that up to this date I have not published the work to hand nor have I presented it to another examination board in the same or similar form. I affirm that the version submitted matches the version in the upload tool.” Sesma, 2020-06-22 Place, Date Signature Kurzfassung Der technologische Fortschritt hat die Sprachsteuerung von Maschinen bzw. intelligenten Geräten für den Durchschnittskonsumenten zugänglich gemacht.
    [Show full text]
  • Ainix: an Open Platform for Natural Language Interfaces to Shell Commands
    AInix: An open platform for natural language interfaces to shell commands Turing Scholars Undergraduate Honors Thesis University of Texas at Austin David Gros Supervised By: Dr. Raymond Mooney Second Reader: Dr. Greg Durrett Departmental Reader: Dr. Robert van de Geijn May 2019 Contents 1 Abstract 3 2 Introduction 4 3 Background and Motivation 6 3.1 Relevant Terms and Concepts . .6 3.2 Currently Available Platforms and Tools . .6 3.2.1 Digital Assistant Platforms . .6 3.2.2 Semantic Parsing Frameworks . .7 3.2.3 Previous Natural Language to Shell Commands Work . .7 3.3 Why Unix Commands? . .8 3.3.1 Brief History of the Unix Shell Commands . .8 4 Platform Architecture 9 4.1 aish . 10 5 AInix Kernel Dataset 10 5.1 Key Features . 10 5.1.1 Many-to-many . 10 5.1.2 Replacers . 12 5.2 The Arche Release . 13 6 AInix Grammar Files 14 6.1 Challenges of Parsing Unix Commands . 16 6.2 Terminology . 16 6.3 Enabling Flexible Parsing . 17 6.4 Limitations . 18 7 Explored Models 19 7.1 Seq2Seq . 19 7.2 Grammar Guided Methods . 20 7.3 Retrieval Based Methods . 20 7.3.1 UNIX-focused contextual embedding . 21 7.3.2 Background . 21 7.3.3 Collecting a code-focused dataset . 21 7.3.4 CookieMonster Model . 22 7.3.4.1 CookieMonster Tokenization Scheme . 22 7.3.4.2 CookieMonster Architecture . 25 7.3.5 Nearest Neighbor Method . 25 1 8 Results and Discussion 26 8.1 Seq2Seq Results . 27 8.2 Grammar Guided Model Results .
    [Show full text]
  • Energy-Aware Interface for Memory Allocation in Linux
    Energy-Aware Interface for Memory Allocation in Linux Lars Rechter, Martin Jensen June 2021 10th Semester The Technical Faculty of IT and Design Department of Computer Science Selma Lagerlöfsvej 300 9220 Aalborg Øst https://www.cs.aau.dk Abstract: In this master thesis, we extend the Linux kernel to support grouping frequently ac- Title: Energy-Aware Interface for cessed (hot) and infrequently accessed Memory Allocation in Linux (cold) data on different memory hardware. By doing this, the memory hardware with Subject: Programming Technology cold data can reduce energy consumption Project period: by going into low power states. We man- Spring 2021 age this separation in the kernel by adding 01/02/2021 - 14/06/2021 an additional zone for cold data, which is adjustable at compile time. Processes can Group No: allocate memory in the cold zone with an pt103f21 extension to the mmap system call. We test the memory layout of our machine Group Members: with the benchmark STREAM, showing Lars Rechter that the modified kernel behaves as desired Martin Jensen in terms of memory separation. Addition- ally, we implement a proof of concept in- Supervisor: memory database to benchmark the power Bent Thomsen consumption and run time performance of Lone Leth Thomsen our modified kernel. The results show a Pages: 78 smaller overhead than expected, but no reduction in power usage. We attribute the unchanged power usage to the memory power management strategy of the mem- ory controller in our test machine. Publication of this report’s contents (including citation) without permission from the authors is prohibited. Summary Computers are faster and more common now than ever, rendering the need to optimise programs, specifically for speed, less prevalent.
    [Show full text]
  • Digole Serial Displays: Driving Digole’S Serial Display in UART, I2C, and SPI Modes with an ODROID-C1+  September 1, 2017
    ODROID-HC1 and ODROID-MC1: Aordable High-Performance And Cloud Computing At Home September 1, 2017 The ODROID-HC1 is a single board computer (SBC) which is an aordable solution for a network attached storage (NAS) server, and the ODROID-MC1 is a simple solution for those who need an aordable and powerful personal cluster. My ODROID-C2 Docker Swarm: Part 1 – Swarm Mode Features September 1, 2017 Docker Swarm mode provides cluster management and service orchestration capabilities including service discovery and service scaling, among other things, using overlay networks and an in-built load balancer respectively. ODROID-XU4 Mainline U-Boot September 1, 2017 Hardkernel is working on a new version of U-Boot for the ODROID-XU4, with many new features and improvements. ODROID Wall Display: Using An LCD Monitor And An ODROID To Show Helpful Information September 1, 2017 A wall monitor is an eective method of passively delivering a constant stream of information. Rather than purchasing a digital picture frame that is not only expensive, but is also small with limited functionality, why not use a computer monitor or TV screen with an ODROID to display photos, weather Linux Gaming: Fanboy Part 2 – I am a Sega Fanboy! September 1, 2017 In the 1980s and 1990s, Nintendo and Sega fought to dominate the console market. While both had similar products, there were still some major dierences. If you compare their earlier products, the Nintendo Entertainment System (NES) and Sega Master System (SMS), and Game Boy/Game Boy Color (GB/GBC) and Game Gear Home Assistant: Customization and Automations September 1, 2017 Advanced topics related to Home Assistant (HA) using in-depth steps, allowing you to maximize the use of Home Assistant, and also help with experimentation.
    [Show full text]
  • Deliverable 2.2 Digital Intelligent Assistant Core for Manufacturing Demonstrator – Version 1
    Grant: 957296 Call: H2020-ICT-2020-1 Topic: ICT-38-2020 Type: RIA Duration: 01.10.2020 – 30.09.2023 Deliverable 2.2 Digital intelligent assistant core for manufacturing demonstrator – version 1 Lead Beneficiary: BIBA Type of Deliverable: Demonstrator Dissemination Level: Public Submission Date: 14.07.2021 Version: 1.0 This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 957296. PUBLIC Versioning and contribution history Version Description Contributions 0.1 Initial version BIBA 0.3 Initial descriptions BIBA 0.4 Security mechanisms for Mycroft core and Mobile App UBI 0.7 Component descriptions added and scenario outlined BIBA 0.9 First complete draft BIBA 1.0 Final version BIBA Reviewers Name Organisation Konstantinos Grevenitis Holonix Disclaimer This document contains only the author's view and that the Commission is not responsible for any use that may be made of the information it contains. Copyright COALA Consortium 2020-2023 Page 2 of 28 PUBLIC Table of Contents 1 Introduction .....................................................................................................................6 1.1 Purpose and Objectives ...........................................................................................6 1.2 Approach ..................................................................................................................6 1.3 Relation to other WPs and Tasks .............................................................................6
    [Show full text]
  • D2.1: State-Of-The-Art Survey
    CARP D2.1: State-of-the-Art Survey Grant Agreement: 287767 Project Acronym: CARP Project Name: Correct and Efficient Accelerator Programming Instrument: Small or medium scale focused research project (STREP) Thematic Priority: Alternative Paths to Components and Systems Start Date: 1 December 2011 Duration: 36 months Document Type1: D (Deliverable) Document Distribution2: PU (Public) Document Code3: CARP-ICL-RP-004 Version: v1.15 Editor (Partner): J. Ketema (ICL) Contributors: ARM, ENS, ICL, MONO, REAL, RIGHT, RWTHA, UT Workpackage(s): WP2 Reviewer(s): A. Cohen (ENS), J. Dubreil (MONO), M. Huisman (UT) Due Date: 31 May 2012 Submission Date: 31 May 2012 Number of Pages: 97 1MD = management document; TR = technical report; D = deliverable; P = published paper; CD = communication/dissemination. 2PU = Public; PP = Restricted to other programme participants (including the Commission Services); RE = Restricted to a group specified by the consortium (including the Commission Services); CO = Confidential, only for members of the consortium (including the Commission Services). 3This code is constructed as described in the Project Handbook. Copyright c 2012 by the CARP Consortium. D2.1: State-of-the-ArtCARP Survey J. Ketema3 (Editor) D. Mansell1, T. Glauert1, A. Lokhmotov1 (Chapter 3) A. Cohen2 (Chapter 4) A. Betts3 C. Dehnert7 D. Distefano4 F. Gretz7 J.-P. Katoen7 A. Lokhmotov1 (Chapter 5) A.F. Donaldson3 D. Distefano4 M. Huisman8 C. Jansen7 J. Ketema3 M. Mihelciˇ c´8 (Chapter 6) E. Hajiyev5 D. Takacs5 T. Virolainen6 (Chapter 7) 1ARM 2ENS 3ICL 4MONO 5REAL 6RIGHT 7RWTHA 8UT REVISION HISTORY Date Version Author Modification 2 May 2012 1.0 J. Ketema (ICL) Initial setup of LATEX document 10 May 2012 1.1 J.
    [Show full text]
  • Linux Installation and Getting Started
    Linux Installation and Getting Started Copyright c 1992–1996 Matt Welsh Version 2.3, 22 February 1996. This book is an installation and new-user guide for the Linux system, meant for UNIX novices and gurus alike. Contained herein is information on how to obtain Linux, installation of the software, a beginning tutorial for new UNIX users, and an introduction to system administration. It is meant to be general enough to be applicable to any distribution of the Linux software. This book is freely distributable; you may copy and redistribute it under certain conditions. Please see the copyright and distribution statement on page xiii. Contents Preface ix Audience ............................................... ix Organization.............................................. x Acknowledgments . x CreditsandLegalese ......................................... xii Documentation Conventions . xiv 1 Introduction to Linux 1 1.1 About This Book ........................................ 1 1.2 A Brief History of Linux .................................... 2 1.3 System Features ......................................... 4 1.4 Software Features ........................................ 5 1.4.1 Basic commands and utilities ............................. 6 1.4.2 Text processing and word processing ......................... 7 1.4.3 Programming languages and utilities .......................... 9 1.4.4 The X Window System ................................. 10 1.4.5 Networking ....................................... 11 1.4.6 Telecommunications and BBS software .......................
    [Show full text]
  • Comparison of Voice Assistant Sdks for Embedded Linux Leon Anavi Konsulko Group [email protected] [email protected] ELCE 2018
    Comparison of Voice Assistant SDKs for Embedded Linux Leon Anavi Konsulko Group [email protected] [email protected] ELCE 2018 Konsulko Group Services company specializing in Embedded Linux and Open Source Software Hardware/software build, design, development, and training services Based in San Jose, CA with an engineering presence worldwide http://konsulko.com ELCE 2018, Comparison of Voice Assistant SDKs for Embedded Linux, Leon Anavi Agenda Introduction to smart speakers with voice assistants Overview of Amazon Alexa, Google Assistant and Mycroft SDK for integration in embedded Linux devices Showcases and conclusions ELCE 2018, Comparison of Voice Assistant SDKs for Embedded Linux, Leon Anavi Virtual assistants AliGenie Mirosoft Cortana Amazon Alexa Google Assistant Yandex Alice Mycroft Samsung Bixby Apple Siri Braina Voice Mate Clova More ... ELCE 2018, Comparison of Voice Assistant SDKs for Embedded Linux, Leon Anavi Technologies in Smart Speakers A.I. & Big Data Application Internet of Things Development ELCE 2018, Comparison of Voice Assistant SDKs for Embedded Linux, Leon Anavi Key Software Ingredients Artifcial Intelligence & Big Data Wake word detection Text to speech (TTS) Speech to text (STT) Board bring-up 3rd party applications ELCE 2018, Comparison of Voice Assistant SDKs for Embedded Linux, Leon Anavi Smart Speaker Market Public statistics from https://voicebot.ai/ ELCE 2018, Comparison of Voice Assistant SDKs for Embedded Linux, Leon Anavi Amazon Alexa Amazon Alexa Virtual assistant powered
    [Show full text]
  • LPI Certification 101 Exam Prep (Release 2), Part 3
    LPI certification 101 exam prep (release 2), Part 3 Presented by developerWorks, your source for great tutorials ibm.com/developerWorks Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Before you start......................................................... 2 2. System and network documentation ................................ 4 3. The Linux permissions model ........................................ 10 4. Linux account management .......................................... 18 5. Tuning the user environment......................................... 23 6. Summary and resources .............................................. 28 LPI certification 101 exam prep (release 2), Part 3 Page 1 of 29 ibm.com/developerWorks Presented by developerWorks, your source for great tutorials Section 1. Before you start About this tutorial Welcome to "Intermediate administration," the third of four tutorials designed to prepare you for the Linux Professional Institute's 101 (release 2) exam. This tutorial (Part 3) is ideal for those who want to improve their knowledge of fundamental Linux administration skills. We'll cover a variety of topics, including system and Internet documentation, the Linux permissions model, user account management, and login environment tuning. If you are new to Linux, we recommend that you start with Part 1 and Part 2. For some, much of this material will be new, but more experienced Linux users may find this tutorial to be a great way of "rounding out" their foundational Linux system administration skills. By the end of this series of tutorials (eight in all covering the LPI 101 and 102 exams), you will have the knowledge you need to become a Linux Systems Administrator and will be ready to attain an LPIC Level 1 certification from the Linux Professional Institute if you so choose.
    [Show full text]
  • Developing Chatbots for Mycroft and His Virtual Friends
    Developing Chatbots for Mycroft and his Virtual Friends Laurie Hannon Principal Consultant SoftSource Consulting Meet Mycroft Our new robot overlord Origin Story Origin Story Let’s define some terms…. Wake Word Hey Mycroft, Utterance …who is going to win the game between the St. Louis Cardinals and the Chicago Cubs? Intent Utterance Code . Chatbots . Web service Tools for building Mycroft Skills Linux Demo Mark I Deployment .SSH .GIT .Some files and dirs in different spots .All text interface .Test how utterances are heard .Test how responses sound So that was native development as intended…. But what if want to implement the same skill… for a different tech? Utterance Response Bot Framework Chatbot Microsoft Bot Framework Chatbot .Define Intents with Language Understanding portal .Implement intent handler in code .What does that code look like? What changes in our Mycroft code? .Use a Fallback skill .Fallback skill uses request library to make REST calls to chatbot web service .What does that code look like? Mycroft’s friend Alexa .Native development - Define invocation name in Alexa Console - Define intents in Alexa Console - Code AWS Lambda function Wake Word Alexa, Skill invocation ask the decider Intent to decide Utterance …who is going to win the game …who is going to win the game between the St. Louis between the American League Cardinals and the Chicago and the National League? Cubs? Utterance Response Bot Framework Chatbot What’s that code look like? .Alexa4Azure - Plus Microsoft Bot Framework Direct Line API - Calls exact same
    [Show full text]
  • Inteligentní Osobní Asistent Pro OS Windows Student: Jindřich Kuzma Vedoucí: Ing
    ZADÁNÍ BAKALÁŘSKÉ PRÁCE Název: Inteligentní osobní asistent pro OS Windows Student: Jindřich Kuzma Vedoucí: Ing. Stanislav Kuznetsov Studijní program: Informatika Studijní obor: Webové a softwarové inženýrství Katedra: Katedra softwarového inženýrství Platnost zadání: Do konce letního semestru 2018/19 Pokyny pro vypracování Vytvořte aplikaci pro OS Windows, která bude sloužit jako inteligentní osobní asistent(ka). Aplikace bude na základě zpráv v přirozeném jazyce (angličtina) spouštět naprogramované funkce. 1) Analyzujte existující řešení a možnosti knihoven. 2) Vyberte vhodné knihovny pro problematiku NLP a neuronových sítí. 3) Navrhněte aplikaci. 4) Implementujte aplikaci. 5) Otestujte aplikaci na základě případů užití. 6) Nasaďte aplikace na lokálním stroji. Seznam odborné literatury Dodá vedoucí práce. Ing. Michal Valenta, Ph.D. doc. RNDr. Ing. Marcel Jiřina, Ph.D. vedoucí katedry děkan V Praze dne 21. prosince 2017 Bakalářská práce Inteligentní osobní asistent pro OS Windows Jindřich Kuzma Katedra softwarového inženýrství Vedoucí práce: Ing. Stanislav Kuznetsov 10. května 2018 Poděkování V první řadě bych rád poděkoval Ing. Stanislavu Kuznetsovi za vedení mé bakalářské práce. Dále své rodině, kamarádům, spolubydlícímu a přítelkyni za podporu během celého studia. Prohlášení Prohlašuji, že jsem předloženou práci vypracoval(a) samostatně a že jsem uvedl(a) veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona. V Praze dne 10.
    [Show full text]
  • Hardware-Assisted Instruction Profiling and Latency
    Hardware-assisted instruction profiling and latency detection Suchakrapani Datt Sharma, Michel Dagenais Department of Computer and Software Engineering, École Polytechnique de Montréal, Montréal, Québec, Canada E-mail: [email protected] Published in The Journal of Engineering; Received on 27th April 2016; Accepted on 24th August 2016 Abstract: Debugging and profiling tools can alter the execution flow or timing, can induce heisenbugs and are thus marginally useful for debugging time critical systems. Software tracing, however advanced it may be, depends on consuming precious computing resources. In this study, the authors analyse state-of-the-art hardware-tracing support, as provided in modern Intel processors and propose a new technique which uses the processor hardware for tracing without any code instrumentation or tracepoints. They demonstrate the utility of their approach with contributions in three areas - syscall latency profiling, instruction profiling and software-tracer impact detection. They present improve- ments in performance and the granularity of data gathered with hardware-assisted approach, as compared with traditional software only tracing and profiling. The performance impact on the target system – measured as time overhead – is on average 2–3%, with the worst case being 22%. They also define a way to measure and quantify the time resolution provided by hardware tracers for trace events, and observe the effect of fine- tuning hardware tracing for optimum utilisation. As compared with other in-kernel tracers, they observed that hardware-based tracing has a much reduced overhead, while achieving greater precision. Moreover, the other tracing techniques are ineffective in certain tracing scenarios. 1 Introduction such as setting breakpoints, stepping instructions and analysing Modern systems are becoming increasingly complex to debug and registers – often directly on target devices connected to hosts diagnose.
    [Show full text]