Compiler optimizations

Trace scheduling

Trace scheduling is an optimization technique developed by Josh Fisher used in compilers for computer programs. A compiler often can, by rearranging its generated machine instructions for faster execution, improve program performance. It increases ILP (Instruction Level Parallelism) along the important execution path by statically predicting frequent execution path. Trace scheduling is one of many known techniques for doing so. A trace is a sequence of instructions, including branches but not including loops, that is executed for some input data. Trace scheduling uses a basic block scheduling method to schedule the instructions in each entire trace, beginning with the trace with the highest frequency. It then adds compensation code at the entry and exit of each trace to compensate for any effects that out-of-order execution may have had. This can result in large increases in code sizes and poor or erratic performance if program's behavior varies significantly with the input. Trace scheduling was originally developed for Very Long Instruction Word, or VLIW machines, and is a form of global code motion. It works by converting a loop to long straight-line code sequence using loop unrolling and static branch prediction. This process separates out "unlikely" code and adds handlers for exits from trace. The goal is to have the most common case executed as a sequential set of instructions without branches. (Wikipedia).

Video thumbnail

Scheduling: The List Processing Algorithm Part 1

This lesson explains and provides an example of the list processing algorithm to make a schedule given a priority list. Site: http://mathispower4u.com

From playlist Scheduling

Video thumbnail

Introduction to Scheduling

This lesson introduces the topic of scheduling and define basic scheduling vocabulary. Site: http://mathispower4u.com

From playlist Scheduling

Video thumbnail

Scheduling: The List Processing Algorithm Part 2

This lesson explains and provides an example of the list processing algorithm to create a digraph and make a schedule. Site: http://mathispower4u.com

From playlist Scheduling

Video thumbnail

Process Scheduling

An animation showing the main features of a process scheduling system including the ready queue, blocked queue, high level scheduler and low level scheduler. It explains the principle of a round robin scheduling algorithm.

From playlist Operating Systems

Video thumbnail

Scheduling: The Critical Path Algorithm Version 1 (Part 1)

This lesson explains how to create a priority list using version 1 of the critical path algorithm. Site: http://mathispower4u.com

From playlist Scheduling

Video thumbnail

Into to the Mathematics of Scheduling

Terminology explained includes preference schedule, digraphs, tasks, arcs, processors, and timelines.

From playlist Discrete Math

Video thumbnail

What is Job Scheduling | Error Hamdling Concept | Data Warehousing Tutorial | Edureka

***** Data Warehousing & BI Training: https://www.edureka.co/data-warehousing-and-bi ***** The allocation of system resources to various tasks, known as job scheduling, is a major assignment of the operating system. The system maintains prioritized queues of jobs waiting for CPU time and

From playlist Data Warehousing Tutorial Videos

Video thumbnail

Scheduling: The Decreasing Time Algorithm

This lesson explains how to use the decreasing time algorithm to create a priority list and then a schedule. Site: http://mathispower4u.com

From playlist Scheduling

Video thumbnail

Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started

Ftrace’s most powerful feature is the function tracer (and function graph tracer which is built from it). But to have this enabled on production systems, it had to have its overhead be negligible when disabled. As the function tracer uses gcc’s profiling mechanism, which adds a call to “mc

From playlist Kernel Recipes 2019

Video thumbnail

Searching and Sorting Algorithms (part 4 of 4)

Introductory coverage of basic searching and sorting algorithms, as well as a rudimentary overview of Big-O algorithm analysis. Part of a larger series teaching programming at http://codeschool.org

From playlist Searching and Sorting Algorithms

Video thumbnail

Kernel Recipes 2017 - Understanding the Linux Kernel via Ftrace - Steven Rostedt

Ftrace is the official tracer of the Linux kernel. It has been apart of Linux since 2.6.31, and has grown tremendously ever since. Ftrace’s name comes from its most powerful feature: function tracing. But the ftrace infrastructure is much more than that. It also encompasses the trace event

From playlist Kernel Recipes 2017

Video thumbnail

Kernel Recipes 2022 - Ftrace update

A lot of neat little features has been added to the ftrace tracing subsystem. This will go over what those are. From synthetic events to event probes. New triggers and even user events. If you don’t know what these are, then this talk will explain them to you. Steven Rostedt Slides avali

From playlist Kernel Recipes 2022

Video thumbnail

Stanford Seminar - KUtrace 2020

Dick Sites February 5, 2020 Observation tools for understanding occasionally-slow performance in large-scale distributed transaction systems are not keeping up with the complexity of the environment. The same applies to large database systems, to real-time control systems in cars and airp

From playlist Stanford EE380-Colloquium on Computer Systems - Seminar Series

Video thumbnail

Kernel Recipes 2019 - Formal modeling made easy

Modeling parts of Linux has become a recurring topic. For instance, the memory model, the model for PREEMPT_RT synchronization, and so on. But the term “formal model” causes panic for most of the developers. Mainly because of the complex notations and reasoning that involves formal languag

From playlist Kernel Recipes 2019

Video thumbnail

Observing NodeJS

Understanding what is really happening within your Node.js processes can be... Difficult. I'll pull back the curtain and demonstrate tools and techniques for observing Node.js. EVENT: CascadiaJS 2018 SPEAKER: James Snell PERMISSIONS: Original video was published with the Creative Com

From playlist JavaScript

Video thumbnail

Stanford Seminar - Making the Invisible Visible: Observing Complex Software Dynamics

Dick Sites March 9 Dick discusses key topics in his recent book "Understanding Software Dynamics". Over his career he has taken a particular interest in complex software performance and determining why things can be slow. He will cover examples for each of the seven reasons code may not b

From playlist Stanford EE380-Colloquium on Computer Systems - Seminar Series

Video thumbnail

Embedded Recipes 2018 - Finding sources of latency in your system - Steven Rostedt

Having just an RTOS is not enough for a real-time system. The hardware must be deterministic as well as the applications that run on the system. When you are missing deadlines, the first thing that must be done is to find what is the source of the latency that caused the issue. It could be

From playlist Embedded Recipes 2018

Video thumbnail

ElixirConf 2016 - Debugging Techniques in Elixir by Erich Kist

Debugging Techniques in Elixir by Erich Kist Show some results in the standard output is the first experience in how to debug your code. What is the next step? Probably, the first answer that you found was: start the observer. After some minutes with an awesome feeling, you asked yourself

From playlist ElixirConf 2016

Video thumbnail

Kernel Recipes 2015 - Linux kernel IO subsystem - by Jan Kara

Understanding how Linux kernel IO subsystem works is a key to analysis of a wide variety of issues occurring when running a Linux system. This talk is aimed at helping Linux users understand what is going on and how to get more insight into what is happening. First we present an overview

From playlist Kernel Recipes 2015

Video thumbnail

What Is Gain Scheduling? | Control Systems in Practice

Often, the best control system is the simplest. When the system you’re trying to control is highly nonlinear, this can lead to very complex controllers. This video continues our discussion on control systems in practice by talking about a simple form of nonlinear control: gain scheduling.

From playlist Control Systems in Practice

Related pages

Instruction scheduling | Loop unrolling