Going With the (Data) Flow
|
|
- Shannon Watkins
- 6 years ago
- Views:
Transcription
1 1 of 6 1/6/2015 1:00 PM Going With the (Data) Flow Publish Date: May 20, 2013 Table of Contents 1. Natural Data Dependency and Artificial Data Dependency 2. Parallelism in LabVIEW 3. Overuse of Flat Sequence Structures 4. Making Things Worse With Stacked Sequence Structures 5. The Better Way: State Machines Engineering and scientific applications are primarily concerned with turning real-world signals into meaningful information for the purposes of measurement and control. As a result, data from hardware drives the behavior of these systems making a language built around the data itself a natural expression of how these systems should behave. Graphical data flow is the primary way to describe the behavior of an NI LabVIEW system. As implied by the name, these graphical diagrams literally depict the flow of information between functions, which in LabVIEW are called VIs. A VI executes when it receives all required inputs and afterward produces output data that is then passed to the next node in the dataflow path. The movement of data through the nodes determines the execution order of the VIs and functions on the block diagram. Visual Basic, ANSI C++, JAVA, and many other traditional programming languages follow a control flow model of program execution. In control flow, the sequential order of program elements determines the execution order of a program, as opposed to the data itself. In LabVIEW, the flow of data rather than the sequential order of commands determines the execution order of block diagram elements. Consequently, LabVIEW developers can create block diagrams that have simultaneous operations. For example, two For Loops can run simultaneously and display the results on the front panel, as shown in the following block diagram. Figure 1. Dataflow execution allows parallel operations in LabVIEW. Creating multithreaded applications using control flow languages is also pos sible, but the one-dimensional nature of the code makes it difficult to understand and debug operations that are happening in two dimensions. Graphical code allows you to lay out parallel operations in parallel and dataflow semantics protect against hard-to-find bugs caused by race conditions. 1. Natural Data Dependency and Artificial Data Dependency The control flow model of execution is instruction driven. Dataflow execution is data driven, or data dependent. A node that receives data from another node always executes after the other node completes execution. This is called natural data dependency. Block diagram nodes not connected by wires can execute in any order. You can use flow-through parameters such as reference numbers or error clusters to control execution order when natural data dependency does not exist. When flow-through parameters are not available, you can use a Sequence structure to control execution order like a VI, the contents of a Sequence structure will not execute until data has arrived at any input terminals/tunnels. This can create an artificial data dependency in which the receiving node does not actually use the data received. Instead, the receiving node uses the arrival of data to trigger its execution.
2 2 of 6 1/6/2015 1:00 PM [+] Enlarge Image Figure 2. Artificial data dependency was created by using the Flat Sequence structure and error wires for benchmarking code. For more information on dataflow programming, access the self-paced online training (ni.com/self-paced-training) for LabVIEW Core 1 on Dataflow. Self-paced online training is free with every LabVIEW purchase or for users currently on the Standard Service Program (ni.com/ssp). 2. Parallelism in LabVIEW With LabVIEW, you can easily create multitasking and multithreaded systems using data flow. Multitasking refers to the ability of the operating system to quickly switch between tasks, giving the appearance of simultaneously executing those tasks. Older operating systems traditionally dedicated a single task per an entire application, such as Microsoft Excel or LabVIEW. Each application runs for a small time slice before yielding to the next application. Another form of scheduling is called cooperative multitasking, where the operating system relies on running applications to yield control of the processor to the operating system at regular intervals. More modern operating systems use preemptive multitasking, where the operating system can take control of the processor at any instant, regardless of the state of the application currently running. With preemptive multitasking, only one application thread runs at a time but processor speeds and thereby thread-swaps happen so fast that applications appear to be running simultaneously. Preemptive multitasking guarantees better response to the user and higher data throughput, but can be a risk for critical applications that are running. In applications where timing is critical, you can ensure that your applications won t be interrupted by moving from a general-purpose operating system to a deterministic real-time operating system. Real-time operating systems give you ultimate control of task scheduling. Multithreading extends the idea of multitasking into applications, so that specific operations within a single application can be subdivided into individual threads, each of which can theoretically run in parallel. Then, the operating system can divide processing time not only among different applications, but also among each thread within an application. For example, in a LabVIEW multithreaded program, the application might be divided into three threads a user interface thread, a data acquisition thread, and an instrument control thread each of which can operate independently. Thus, multithreaded applications can have multiple tasks running in parallel along with other applications. Multicore programming refers to two or more processors in one computer (or a single processor with multiple cores that share a cache), each of which can simultaneously run a separate thread. A multithreaded application can have separate threads executing concurrently on multiple processors. In the LabVIEW multithreaded example, the data acquisition thread could run on one processor while the user interface thread runs on another processor. The extra cores allow multithreaded applications to potentially run faster. One of the major benefits of using LabVIEW is that it automatically multithreads an application into various tasks, which are then load balanced by the operating system across available cores. As more cores are added to your computing platform, LabVIEW applications can often run faster without any extra programming. On the other hand, enabling multithreading in lower level languages such as ANSI C requires a lot more development time. Figure 3. The measurement or control application is divided into tasks, which can be automatically balanced across CPUs. When using real-time operating systems, you can even assign core affinity, which processor a certain code portion will run on, by using the Timed Loop or Timed Sequence structures. Both structures have an input terminal for core affinity. For more information on timing in LabVIEW, access the self-paced online training (ni.com/self-paced-training) for LabVIEW Core 1 on Timing Functions. 3. Overuse of Flat Sequence Structures You can use Flat Sequence structures to control the execution order of a block diagram. Flat Sequence structures have frames that operate in numerical order much like a film reel that flows from frame to frame. At the beginning of each frame s execution, all the inputs wired to the frame are passed to items within the frame. At the end of each frame s execution, outputs can be passed onto the next frame or outside the structure. It is not possible though to stop execution part way through the sequence and it is also not possible to revisit specific frames throughout the process. Developers familiar with sequential programming are prone to using the Flat Sequence structure when they are just learning LabVIEW to explicitly control execution. In LabVIEW, introducing forced execution control can lead to lower performance. When used in moderation, the Flat Sequence structure is a useful tool but it can constrain optimal performance when used inappropriately. Tasks that can operate in
3 3 of 6 1/6/2015 1:00 PM parallel are forced to operate serially when the Flat Sequence structure is overused. The Flat Sequence structure may also be used unnecessarily when it is added to code that is already operating serially because of data flow. This doesn t necessarily limit the performance but the extra code is not needed and risks reducing the readability. [+] Enlarge Image Figure 4. Flat Sequence structure is inappropriately used because data flow already has this code executing serially. Most experienced LabVIEW developers find that they do not need to use the Flat Sequence structure once they have a firm understanding of data flow. For more information on the Flat Sequence structure and its use, access the self-paced online training (ni.com/self-paced-training) for LabVIEW Core 1 on Using Sequential Programming. 4. Making Things Worse With Stacked Sequence Structures Stacked Sequence structures operate identically to Flat Sequence structures in that there are frames that execute in a predefined order. The main difference is that the Stacked Sequence structure shows only a single frame at a time. This might be a benefit if you need to save space on your block diagram, but it decreases the readability of the block diagram. Although similar, Case structures guarantee that only a single frame is executed every time it s called, as determined by the input terminal, whereas people reading code that uses stacked structures need to scroll through each frame (or state) to understand the overall functionality. Another difference between Stacked Sequence structures and Flat Sequence structures is that to pass information between frames on a Stacked Sequence structure, you have to use a sequence local. Sequence locals also decrease the code readability as the locals can be on only one side of the frame. Most LabVIEW code is read left to right and if you have inputs coming from the right side of a frame (which the right side of the frame might have made sense in the frame before for its outputs), then it makes the code harder to read. Figure 5. Sequence locals pass references and error clusters between frames. The main downside to using Stacked Sequence structures is the same as Flat Sequence structures. The structures are not flexible in that you can t revisit previous frames during execution and execution can be stopped only by completing every frame. This flexibility can come with a better architecture and most developers evolve from using Flat or Stacked Sequence structures to using state machines. For more information on stacked structures like Case structures, access the self-paced online training (ni.com/self-paced-training) for LabVIEW Core 1 on Case Structures. 5. The Better Way: State Machines A state machine is a mathematical model of computation that describes states in a logical execution. Each state is determined by parameters based on conditions defined by the architect. Most commonly, this can be thought of as a flowchart. Based on a series on inputs, execution goes through the flowchart passing from state to state.
4 4 of 6 1/6/2015 1:00 PM Figure 6. This is an example flowchart for a furnace. This is a flexible approach because you can revisit states many times throughout the execution and execution can cease during any state. You can find state machine architectures in most programming languages. LabVIEW state machines consist of a While Loop to continue the execution, a Case structure to define the different states, an enumerated constant that changes the states, and a shift register to drive the conditions between the states. [+] Enlarge Image Figure 7. This is a simple state machine template from LabVIEW. The state machine is preferred over using Flat or Stacked Sequence structures because you can easily add more states as functionality or system requirements change while maintaining the positives of switching between states and ceasing execution during any state. Process testing is a common application of state machines. Each segment of the process is represented by a state. Depending on the result of each state s test, a different state may be called. This can happen continually, performing in-depth analysis of the process being tested. For more information on state machines and its uses, access the self-paced online training (ni.com/self-paced-training) for LabVIEW Core 1 on Understanding State Programming and LabVIEW Core 2 on Simple State Machine. LabVIEW was built to make engineers and scientists more successful at tackling the world s tough challenges. The benefit of having a large programming community of engineers and scientists is that they like to share their knowledge with others. If you have your own LabVIEW rookie mistake that you would like to share, add your voice by visiting bit.ly/lvrookiemistakes. This article is part of a series on the Top 5 LabVIEW Rookie Mistakes. Subscribe to NI News to keep up with the series. Customer Reviews
5 5 of 6 1/6/2015 1:00 PM Customer Reviews 1 Review Submit your review
6 6 of 6 1/6/2015 1:00 PM
Benefits of Programming Graphically in NI LabVIEW
1 of 8 12/24/2013 2:22 PM Benefits of Programming Graphically in NI LabVIEW Publish Date: Jun 14, 2013 0 Ratings 0.00 out of 5 Overview For more than 20 years, NI LabVIEW has been used by millions of engineers
More informationBenefits of Programming Graphically in NI LabVIEW
Benefits of Programming Graphically in NI LabVIEW Publish Date: Jun 14, 2013 0 Ratings 0.00 out of 5 Overview For more than 20 years, NI LabVIEW has been used by millions of engineers and scientists to
More informationLabVIEW Programming for a Multicore Environment. Stefan Kreuzer Applications Engineer National Instruments
LabVIEW Programming for a Multicore Environment Stefan Kreuzer Applications Engineer National Instruments Agenda Overview of LabVIEW Multithreading Parallel Programming Techniques Real-Time Considerations
More informationLabVIEW programming II
FYS3240-4240 Data acquisition & control LabVIEW programming II Spring 2018 Lecture #3 Bekkeng 14.01.2018 Dataflow programming With a dataflow model, nodes on a block diagram are connected to one another
More informationni.com/training Quizzes LabVIEW Core 1 ni.com/training Courses Skills learned: LabVIEW environment Certifications Skills tested: LabVIEW environment
LabVIEW Core 1 What You Need To Get Started LabVIEW Core 1 Course Manual LabVIEW Core 1 Exercise Manual LabVIEW Core 1 Course CD Multifunction DAQ device GPIB interface DAQ Signal Accessory, wires, and
More informationParallel Programming Multicore systems
FYS3240 PC-based instrumentation and microcontrollers Parallel Programming Multicore systems Spring 2011 Lecture #9 Bekkeng, 4.4.2011 Introduction Until recently, innovations in processor technology have
More informationLabVIEW programming II
FYS3240 PC-based instrumentation and microcontrollers LabVIEW programming II Spring 2016 Lecture #3 Bekkeng 18.01.2016 Dataflow programming With a dataflow model, nodes on a block diagram are connected
More informationOVERVIEW OF DIFFERENT APPLICATION SERVER MODELS
OVERVIEW OF DIFFERENT APPLICATION SERVER MODELS Before you start Objectives: learn what is application server, what is thin-client and what is fat-client, and about different types of application server
More informationIn examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured
System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected
More informationLabVIEW Basics I: Introduction Course
www.ni.com/training LabVIEW Basics I Page 1 of 4 LabVIEW Basics I: Introduction Course Overview The LabVIEW Basics I course prepares you to develop test and measurement, data acquisition, instrument control,
More informationImproving the Performance of your LabVIEW Applications
Improving the Performance of your LabVIEW Applications 1 Improving Performance in LabVIEW Purpose of Optimization Profiling Tools Memory Optimization Execution Optimization 2 Optimization Cycle Benchmark
More informationSoftware Synthesis from Dataflow Models for G and LabVIEW
Software Synthesis from Dataflow Models for G and LabVIEW Hugo A. Andrade Scott Kovner Department of Electrical and Computer Engineering University of Texas at Austin Austin, TX 78712 andrade@mail.utexas.edu
More informationPROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8
PROCESSES AND THREADS THREADING MODELS CS124 Operating Systems Winter 2016-2017, Lecture 8 2 Processes and Threads As previously described, processes have one sequential thread of execution Increasingly,
More information10/17/ Gribble, Lazowska, Levy, Zahorjan 2. 10/17/ Gribble, Lazowska, Levy, Zahorjan 4
Temporal relations CSE 451: Operating Systems Autumn 2010 Module 7 Synchronization Instructions executed by a single thread are totally ordered A < B < C < Absent synchronization, instructions executed
More informationStudent Name:.. Student ID... Course Code: CSC 227 Course Title: Semester: Fall Exercises Cover Sheet:
King Saud University College of Computer and Information Sciences Computer Science Department Course Code: CSC 227 Course Title: Operating Systems Semester: Fall 2016-2017 Exercises Cover Sheet: Final
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 10 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 Chapter 6: CPU Scheduling Basic Concepts
More informationLabVIEW Core 1. What You Need To Get Started. File Locations. The course installer places the course files in the following location: ni.
LabVIEW Core 1 What You Need To Get Started LabVIEW Core 1 Course Manual (online) LabVIEW Core 1 Exercise Manual (online) LabVIEW Core 1 Course CD (preloaded on S Share) Multifunction DAQ device File Locations
More informationAn Overview of LabVIEW Design Patterns
An Overview of LabVIEW Design Patterns Ryan Roggow Singletrack Integration (original presentations by Derrick Snyder Product Marketing Manager NI Data Acquisition and Eric Cunningham NI Field Engineer)
More informationFoundational Design Patterns for Moving Beyond One Loop
Foundational Design Patterns for Moving Beyond One Loop Raja Pillai Technical Consultant Agenda Why move beyond one loop? What is a design pattern? Why learn communication mechanisms? Functional global
More informationConcurrent Programming Synchronisation. CISTER Summer Internship 2017
1 Concurrent Programming Synchronisation CISTER Summer Internship 2017 Luís Nogueira lmn@isep.ipp.pt 2 Introduction Multitasking Concept of overlapping the computation of a program with another one Central
More informationGrand Central Dispatch
A better way to do multicore. (GCD) is a revolutionary approach to multicore computing. Woven throughout the fabric of Mac OS X version 10.6 Snow Leopard, GCD combines an easy-to-use programming model
More informationMultiprocessor and Real- Time Scheduling. Chapter 10
Multiprocessor and Real- Time Scheduling Chapter 10 Classifications of Multiprocessor Loosely coupled multiprocessor each processor has its own memory and I/O channels Functionally specialized processors
More informationCSE 451: Operating Systems Winter Lecture 7 Synchronization. Steve Gribble. Synchronization. Threads cooperate in multithreaded programs
CSE 451: Operating Systems Winter 2005 Lecture 7 Synchronization Steve Gribble Synchronization Threads cooperate in multithreaded programs to share resources, access shared data structures e.g., threads
More informationMulti-core Architectures. Dr. Yingwu Zhu
Multi-core Architectures Dr. Yingwu Zhu What is parallel computing? Using multiple processors in parallel to solve problems more quickly than with a single processor Examples of parallel computing A cluster
More informationCMSC 433 Programming Language Technologies and Paradigms. Concurrency
CMSC 433 Programming Language Technologies and Paradigms Concurrency What is Concurrency? Simple definition Sequential programs have one thread of control Concurrent programs have many Concurrency vs.
More informationSolving the Data Transfer Bottleneck in Digitizers
Solving the Data Transfer Bottleneck in Digitizers With most modern PC based digitizers and data acquisition systems a common problem is caused by the fact that the ADC technology usually runs in advance
More informationOperating Systems. Synchronization
Operating Systems Fall 2014 Synchronization Myungjin Lee myungjin.lee@ed.ac.uk 1 Temporal relations Instructions executed by a single thread are totally ordered A < B < C < Absent synchronization, instructions
More informationCS418 Operating Systems
CS418 Operating Systems Lecture 9 Processor Management, part 1 Textbook: Operating Systems by William Stallings 1 1. Basic Concepts Processor is also called CPU (Central Processing Unit). Process an executable
More informationParallelism. Parallel Hardware. Introduction to Computer Systems
Parallelism We have been discussing the abstractions and implementations that make up an individual computer system in considerable detail up to this point. Our model has been a largely sequential one,
More informationCPU Scheduling. Daniel Mosse. (Most slides are from Sherif Khattab and Silberschatz, Galvin and Gagne 2013)
CPU Scheduling Daniel Mosse (Most slides are from Sherif Khattab and Silberschatz, Galvin and Gagne 2013) Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU I/O Burst Cycle Process
More informationLast Class: CPU Scheduling. Pre-emptive versus non-preemptive schedulers Goals for Scheduling: CS377: Operating Systems.
Last Class: CPU Scheduling Pre-emptive versus non-preemptive schedulers Goals for Scheduling: Minimize average response time Maximize throughput Share CPU equally Other goals? Scheduling Algorithms: Selecting
More informationECE519 Advanced Operating Systems
IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor
More informationChapter 07: Instruction Level Parallelism VLIW, Vector, Array and Multithreaded Processors. Lesson 06: Multithreaded Processors
Chapter 07: Instruction Level Parallelism VLIW, Vector, Array and Multithreaded Processors Lesson 06: Multithreaded Processors Objective To learn meaning of thread To understand multithreaded processors,
More informationCSE 451: Operating Systems Winter Lecture 7 Synchronization. Hank Levy 412 Sieg Hall
CSE 451: Operating Systems Winter 2003 Lecture 7 Synchronization Hank Levy Levy@cs.washington.edu 412 Sieg Hall Synchronization Threads cooperate in multithreaded programs to share resources, access shared
More informationCapacity Planning for Application Design
WHITE PAPER Capacity Planning for Application Design By Mifan Careem Director - Solutions Architecture, WSO2 1. Introduction The ability to determine or forecast the capacity of a system or set of components,
More informationARM Simulation using C++ and Multithreading
International Journal of Innovative Technology and Exploring Engineering (IJITEE) ARM Simulation using C++ and Multithreading Suresh Babu S, Channabasappa Baligar Abstract: - This project is to be produced
More informationExample: CPU-bound process that would run for 100 quanta continuously 1, 2, 4, 8, 16, 32, 64 (only 37 required for last run) Needs only 7 swaps
Interactive Scheduling Algorithms Continued o Priority Scheduling Introduction Round-robin assumes all processes are equal often not the case Assign a priority to each process, and always choose the process
More informationFrequently asked questions from the previous class survey
CS 370: OPERATING SYSTEMS [THREADS] Shrideep Pallickara Computer Science Colorado State University L7.1 Frequently asked questions from the previous class survey When a process is waiting, does it get
More informationSuggestions for Stream Based Parallel Systems in Ada
Suggestions for Stream Based Parallel Systems in Ada M. Ward * and N. C. Audsley Real Time Systems Group University of York York, England (mward,neil)@cs.york.ac.uk Abstract Ada provides good support for
More informationIntroduction to Asynchronous Programming Fall 2014
CS168 Computer Networks Fonseca Introduction to Asynchronous Programming Fall 2014 Contents 1 Introduction 1 2 The Models 1 3 The Motivation 3 4 Event-Driven Programming 4 5 select() to the rescue 5 1
More informationCertified LabVIEW Architect Recertification Exam Test Booklet
Certified LabVIEW Architect Recertification Exam Test Booklet Note: The use of the computer or any reference materials is NOT allowed during the exam. Instructions: If you did not receive this exam in
More informationTHE CPU SPENDS ALMOST ALL of its time fetching instructions from memory
THE CPU SPENDS ALMOST ALL of its time fetching instructions from memory and executing them. However, the CPU and main memory are only two out of many components in a real computer system. A complete system
More informationCS533 Concepts of Operating Systems. Jonathan Walpole
CS533 Concepts of Operating Systems Jonathan Walpole Overview Background Criticism of Threads Defense of Threads Compiler Support for Threads Evaluation Conclusion Background: Events Small, static number
More informationSoftware Concepts. It is a translator that converts high level language to machine level language.
Software Concepts One mark questions: 1. What is a program? It is a set of instructions given to perform a task using a programming language. 2. What is hardware? It is defined as physical parts of the
More informationDesigning and debugging real-time distributed systems
Designing and debugging real-time distributed systems By Geoff Revill, RTI This article identifies the issues of real-time distributed system development and discusses how development platforms and tools
More informationChapter 1 Computer System Overview
Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Seventh Edition By William Stallings Objectives of Chapter To provide a grand tour of the major computer system components:
More informationCPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University
Operating Systems (Fall/Winter 2018) CPU Scheduling Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review Motivation to use threads
More informationVirtualizing Agilent OpenLAB CDS EZChrom Edition with VMware
Virtualizing Agilent OpenLAB CDS EZChrom Edition with VMware Technical Overview Abstract This technical overview describes the considerations, recommended configurations, and host server requirements when
More informationUnderstanding Dual-processors, Hyper-Threading Technology, and Multicore Systems
Understanding Dual-processors, Hyper-Threading Technology, and Multicore Systems This paper will provide you with a basic understanding of the differences among several computer system architectures dual-processor
More informationMotivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4
Motivation Threads Chapter 4 Most modern applications are multithreaded Threads run within application Multiple tasks with the application can be implemented by separate Update display Fetch data Spell
More informationParallelism Marco Serafini
Parallelism Marco Serafini COMPSCI 590S Lecture 3 Announcements Reviews First paper posted on website Review due by this Wednesday 11 PM (hard deadline) Data Science Career Mixer (save the date!) November
More informationAn Overview of MIPS Multi-Threading. White Paper
Public Imagination Technologies An Overview of MIPS Multi-Threading White Paper Copyright Imagination Technologies Limited. All Rights Reserved. This document is Public. This publication contains proprietary
More informationThreads SPL/2010 SPL/20 1
Threads 1 Today Processes and Scheduling Threads Abstract Object Models Computation Models Java Support for Threads 2 Process vs. Program processes as the basic unit of execution managed by OS OS as any
More informationScheduling in the Supermarket
Scheduling in the Supermarket Consider a line of people waiting in front of the checkout in the grocery store. In what order should the cashier process their purchases? Scheduling Criteria CPU utilization
More informationProcesses (Tasks) and operating systems. Why multiple processes? Example: engine control
Processes (Tasks) and operating systems Motivation for processes. The process abstraction. Context switching. Multitasking. Processes and UML. Operating systems Why multiple processes? Processes help us
More informationDesigning Component-Based Architectures with Rational Rose RealTime
Designing Component-Based Architectures with Rational Rose RealTime by Reedy Feggins Senior System Engineer Rational Software Rose RealTime is a comprehensive visual development environment that delivers
More informationComputational Process Networks a model and framework for high-throughput signal processing
Computational Process Networks a model and framework for high-throughput signal processing Gregory E. Allen Ph.D. Defense 25 April 2011 Committee Members: James C. Browne Craig M. Chase Brian L. Evans
More informationEECS Berkeley EE249 LabVIEW Framework. Hugo A. Andrade Principal Architect LabVIEW Platform & Real Time Group
EECS Berkeley EE249 LabVIEW Framework Hugo A. Andrade Principal Architect LabVIEW Platform & Real Time Group Agenda Overview of NI Tools LabVIEW Intro Framework Parallel programming From multi-core to
More informationCSE 120 Principles of Operating Systems
CSE 120 Principles of Operating Systems Spring 2018 Lecture 15: Multicore Geoffrey M. Voelker Multicore Operating Systems We have generally discussed operating systems concepts independent of the number
More informationMain Points of the Computer Organization and System Software Module
Main Points of the Computer Organization and System Software Module You can find below the topics we have covered during the COSS module. Reading the relevant parts of the textbooks is essential for a
More informationProcesses and Threads Implementation
Processes and Threads Implementation 1 Learning Outcomes An understanding of the typical implementation strategies of processes and threads Including an appreciation of the trade-offs between the implementation
More informationWHY PARALLEL PROCESSING? (CE-401)
PARALLEL PROCESSING (CE-401) COURSE INFORMATION 2 + 1 credits (60 marks theory, 40 marks lab) Labs introduced for second time in PP history of SSUET Theory marks breakup: Midterm Exam: 15 marks Assignment:
More informationENGR 1000, Introduction to Engineering Design
ENGR 1000, Introduction to Engineering Design Unit 2: Data Acquisition and Control Technology Lesson 2.1: Programming Line Outputs for the NI USB-6008 in LabVIEW Hardware: 12 VDC power supply Several lengths
More informationClearSpeed Visual Profiler
ClearSpeed Visual Profiler Copyright 2007 ClearSpeed Technology plc. All rights reserved. 12 November 2007 www.clearspeed.com 1 Profiling Application Code Why use a profiler? Program analysis tools are
More informationni.com Preparing for the CLAD Exam
Preparing for the CLAD Exam Breaking Data Flow Situation: Run 2 Loops simultaneously with 1 Stop Button Wiring the Stop Button from one Loop to the other will NOT work. Solution: Use a Local Variable Drawbacks:
More informationComparing UFS and NVMe Storage Stack and System-Level Performance in Embedded Systems
Comparing UFS and NVMe Storage Stack and System-Level Performance in Embedded Systems Bean Huo, Blair Pan, Peter Pan, Zoltan Szubbocsev Micron Technology Introduction Embedded storage systems have experienced
More informationParallelism and Concurrency. COS 326 David Walker Princeton University
Parallelism and Concurrency COS 326 David Walker Princeton University Parallelism What is it? Today's technology trends. How can we take advantage of it? Why is it so much harder to program? Some preliminary
More informationCS370 Operating Systems
CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2019 Lecture 8 Scheduling Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ POSIX: Portable Operating
More informationMessaging Framework Module Guide
Application Note Renesas Synergy Platform R11AN0096EU0102 Rev.1.02 Introduction This module guide will enable you to effectively use a module in your own design. Upon completion of this guide, you will
More information740: Computer Architecture Memory Consistency. Prof. Onur Mutlu Carnegie Mellon University
740: Computer Architecture Memory Consistency Prof. Onur Mutlu Carnegie Mellon University Readings: Memory Consistency Required Lamport, How to Make a Multiprocessor Computer That Correctly Executes Multiprocess
More informationCS5460: Operating Systems
CS5460: Operating Systems Lecture 5: Processes and Threads (Chapters 3-4) Context Switch Results lab2-15 gamow home 3.8 us 1.6 us 1.0 us VirtualBox on lab2-25 VirtualBox on gamow VirtualBox on home 170
More informationLecture 17: Threads and Scheduling. Thursday, 05 Nov 2009
CS211: Programming and Operating Systems Lecture 17: Threads and Scheduling Thursday, 05 Nov 2009 CS211 Lecture 17: Threads and Scheduling 1/22 Today 1 Introduction to threads Advantages of threads 2 User
More informationDATABASE SCALABILITY AND CLUSTERING
WHITE PAPER DATABASE SCALABILITY AND CLUSTERING As application architectures become increasingly dependent on distributed communication and processing, it is extremely important to understand where the
More informationMajor OS Achievements. Chris Collins. 15 th October 2006
Major OS Achievements 1 Running head: MAJOR OS ACHIEVEMENTS Major OS Achievements Chris Collins 15 th October 2006 Major OS Achievements 2 Introduction This paper discusses several major achievements in
More informationWhat s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable
What s An OS? Provides environment for executing programs Process abstraction for multitasking/concurrency scheduling Hardware abstraction layer (device drivers) File systems Communication Do we need an
More informationYi Shi Fall 2017 Xi an Jiaotong University
Threads Yi Shi Fall 2017 Xi an Jiaotong University Goals for Today Case for Threads Thread details Case for Parallelism main() read_data() for(all data) compute(); write_data(); endfor main() read_data()
More informationProgramming for the LabVIEW Real-Time Module Using LabWindows/CVI
Application Note 182 Programming for the LabVIEW Real-Time Module Using LabWindows/CVI Introduction This document discusses using LabWindows/CVI to interface with RT Series hardware and to write DLLs to
More informationVIRTUALIZATION PERFORMANCE: VMWARE VSPHERE 5 VS. RED HAT ENTERPRISE VIRTUALIZATION 3
VIRTUALIZATION PERFORMANCE: VMWARE VSPHERE 5 VS. RED HAT ENTERPRISE VIRTUALIZATION 3 When you invest in a virtualization platform, you can maximize the performance of your applications and the overall
More informationCPU Scheduling: Objectives
CPU Scheduling: Objectives CPU scheduling, the basis for multiprogrammed operating systems CPU-scheduling algorithms Evaluation criteria for selecting a CPU-scheduling algorithm for a particular system
More informationECE 202 LAB 1 INTRODUCTION TO LABVIEW
Version 1.2 Page 1 of 16 BEFORE YOU BEGIN EXPECTED KNOWLEDGE ECE 202 LAB 1 INTRODUCTION TO LABVIEW You should be familiar with the basics of programming, as introduced by courses such as CS 161. PREREQUISITE
More informationDesigning Next-Generation Data- Centers with Advanced Communication Protocols and Systems Services. Presented by: Jitong Chen
Designing Next-Generation Data- Centers with Advanced Communication Protocols and Systems Services Presented by: Jitong Chen Outline Architecture of Web-based Data Center Three-Stage framework to benefit
More informationTasks. Task Implementation and management
Tasks Task Implementation and management Tasks Vocab Absolute time - real world time Relative time - time referenced to some event Interval - any slice of time characterized by start & end times Duration
More informationSynchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011
Synchronization CS61, Lecture 18 Prof. Stephen Chong November 3, 2011 Announcements Assignment 5 Tell us your group by Sunday Nov 6 Due Thursday Nov 17 Talks of interest in next two days Towards Predictable,
More informationJava Concurrency in practice Chapter 9 GUI Applications
Java Concurrency in practice Chapter 9 GUI Applications INF329 Spring 2007 Presented by Stian and Eirik 1 Chapter 9 GUI Applications GUI applications have their own peculiar threading issues To maintain
More informationWHITE PAPER NGINX An Open Source Platform of Choice for Enterprise Website Architectures
ASHNIK PTE LTD. White Paper WHITE PAPER NGINX An Open Source Platform of Choice for Enterprise Website Architectures Date: 10/12/2014 Company Name: Ashnik Pte Ltd. Singapore By: Sandeep Khuperkar, Director
More informationComputer System Overview
Computer System Overview Introduction A computer system consists of hardware system programs application programs 2 Operating System Provides a set of services to system users (collection of service programs)
More informationVon Neumann architecture. The first computers used a single fixed program (like a numeric calculator).
Microprocessors Von Neumann architecture The first computers used a single fixed program (like a numeric calculator). To change the program, one has to re-wire, re-structure, or re-design the computer.
More informationIntroduction to Real-Time Systems and Multitasking. Microcomputer Architecture and Interfacing Colorado School of Mines Professor William Hoff
Introduction to Real-Time Systems and Multitasking Real-time systems Real-time system: A system that must respond to signals within explicit and bounded time requirements Categories Soft real-time system:
More informationCHAPTER-1: INTRODUCTION TO OPERATING SYSTEM:
CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM: TOPICS TO BE COVERED 1.1 Need of Operating System 1.2 Evolution of os 1.3 operating system i. Batch ii. iii. iv. Multiprogramming Time sharing Real time v.
More informationMODERNIZATION C++ Bjarne Stroustrup, creator of C++
C++ MODERNIZATION New releases of the C++ language maintain incredibly strong backwards compatibility, making it easy to keep older C++ code working properly as standards march forward. This makes C++
More informationIntroduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015
Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges
More informationMultiprocessor and Real-Time Scheduling. Chapter 10
Multiprocessor and Real-Time Scheduling Chapter 10 1 Roadmap Multiprocessor Scheduling Real-Time Scheduling Linux Scheduling Unix SVR4 Scheduling Windows Scheduling Classifications of Multiprocessor Systems
More informationIntroduction to LabVIEW
University College of Southeast Norway Introduction to LabVIEW Hans-Petter Halvorsen, 2016-09-07 http://home.hit.no/~hansha Preface This document explains the basic concepts of LabVIEW. You find additional
More informationMulti-threaded, discrete event simulation of distributed computing systems
Multi-threaded, discrete event simulation of distributed computing systems Iosif C. Legrand California Institute of Technology, Pasadena, CA, U.S.A Abstract The LHC experiments have envisaged computing
More informationComputer Science 4500 Operating Systems
Computer Science 4500 Operating Systems Module 6 Process Scheduling Methods Updated: September 25, 2014 2008 Stanley A. Wileman, Jr. Operating Systems Slide 1 1 In This Module Batch and interactive workloads
More informationThreads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011
Threads Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011 Threads Effectiveness of parallel computing depends on the performance of the primitives used to express
More informationOPERATING SYSTEM CONCEPTS UNDERSTAND!!! IMPLEMENT!!! ANALYZE!!!
OPERATING SYSTEM CONCEPTS UNDERSTAND!!! IMPLEMENT!!! Processor Management Memory Management IO Management File Management Multiprogramming Protection and Security Network Management UNDERSTAND!!! IMPLEMENT!!!
More informationProcesses and Non-Preemptive Scheduling. Otto J. Anshus
Processes and Non-Preemptive Scheduling Otto J. Anshus Threads Processes Processes Kernel An aside on concurrency Timing and sequence of events are key concurrency issues We will study classical OS concurrency
More informationObject Oriented Programming. Week 10 Part 1 Threads
Object Oriented Programming Week 10 Part 1 Threads Lecture Concurrency, Multitasking, Process and Threads Thread Priority and State Java Multithreading Extending the Thread Class Defining a Class that
More informationConcurrency. Glossary
Glossary atomic Executing as a single unit or block of computation. An atomic section of code is said to have transactional semantics. No intermediate state for the code unit is visible outside of the
More information