Parallelism in Python
|
|
- Noreen Fletcher
- 5 years ago
- Views:
Transcription
1 Multithreading or Multiprocessing? Mathematics Department Mercyhurst University May 5, 2017
2 Table of Contents 1 Parallel Computing 2 3
3 Understanding Parallelism in Programming Before we go into Python specifically... We need to understand parallel computing As a concept A brief history of it
4 Serial Computing In a time long, long ago, there was only serial processing CPUs only had a single core One instruction/calculation at a time Extremely slow Imagine if the DMV only had a single employee
5 Parallel Computing Definition Parallel computing is a type of computation that runs multiple instructions and calculations simultaneously Modern computing thrives in no small part due to this Additional CPUs and cores add a second dimension of sorts Lighter tasks no longer stuck behind larger tasks Allows simultaneous programs to communicate Allows for increasingly complex programming
6 Serial vs. Parallel Computing Figure: An analogy of serial computing vs parallel computing as shown by poorly drawn highways
7 Threading Definition A thread is a series of instructions that can be managed independently by an operating system s scheduler Multiple threads can exist within a single process Often share resources Efficient usage of resources Easy communication with other threads
8 Threading and CPUs The operating system s scheduler allocates resources Allocates CPU time Moves threads to different CPUs/cores Threads can be placed on different cores on the fly Multiple threads can still run on a single core Asynchronous Not truly parallel
9 Multithreading Diagram Main Thread First Thread Second Thread Third Thread Figure: Example diagram of a multithreaded program
10 Programming with Threads Common way of implementing parallel computing Languages that support concurrent threads C family of languages (C/C++/C#) Java Rust Scala Python supports multithreading, however...
11 Multithreading in Python Threads in Python are not concurrent Does not matter if there are multiple processors Threads can still run asynchronously Not truly parallel Only gives the illusion of concurrency
12 CPython Interpreter Definition An interpreter is a program that executes a high-level language without previously compiling it Nonconcurrency is a problem with the default CPython Interpreter Other Python interpreters include Jython IronPython PyPy Alternative interpreters have their downsides
13 Global Interpreter Lock The Global Interpreter Lock (GIL) prevents threads from running simultaneously CPython s memory management is not safe for threads GIL has become a bottleneck for multithreaded programs
14 Burn the GIL! Many have tried to kill the GIL...
15 Burn the GIL! Many have tried to kill the GIL... none have succeeded
16 Burn the GIL! Many have tried to kill the GIL... none have succeeded In 1999, Greg Stein implemented the "free threading" patch to Python 1.5
17 Burn the GIL! Many have tried to kill the GIL... none have succeeded In 1999, Greg Stein implemented the "free threading" patch to Python 1.5 Enabled concurrent threads via finer locking of resources
18 Burn the GIL! Many have tried to kill the GIL... none have succeeded In 1999, Greg Stein implemented the "free threading" patch to Python 1.5 Enabled concurrent threads via finer locking of resources Single thread performance suffered 40% decrease in speed Patch was rejected and lost to the passage of time
19 Burn the GIL! Many have tried to kill the GIL... none have succeeded In 1999, Greg Stein implemented the "free threading" patch to Python 1.5 Enabled concurrent threads via finer locking of resources Single thread performance suffered 40% decrease in speed Patch was rejected and lost to the passage of time Figure: Greg Stein: A for effort
20 Multiprocessing One of the most common ways to bypass the GIL Creates entirely different processes instead of threads Separate space in memory Slower to create than a thread More difficult to communicate with each other Otherwise, functions similarly to threads
21 Multiprocessing cont. Utilization of multiple cores is a major selling point Consistency of the multiprocessing model also helps Processes are more clearly defined Threads differ between implementations Leaves a lot of legwork up to the operating system s scheduler
22 Let s Do! Python 3 with the following libraries: threading multiprocessing Using a quad core CPU Two benchmarks: CPU intensive task Lighter asynchronous task
23 Generating Threads def create_threads(num_thread, thread_target=none): if thread_target: objs = [threading.thread(target=thread_target) for i in range(num_thread)] else: objs = [threading.thread() for i in range(num_thread)] return objs Figure: Function to generate thread object list
24 Generating Processes def create_processes(num_process, process_target=none): if process_target: objs = [multiprocessing.process(target=process_targe for i in range(num_process)] else: objs = [multiprocessing.process() for i in range(num_process)] return objs Figure: Function to generate process object list
25 Benchmark 1 def large_exp(): begin = time.time() x = 1000** print("integer Length:", len(str(x)), end=" ") end = time.time() print("time:", end - begin, "\n") Figure: Function for CPU intensive benchmark
26 Benchmark 1: Threading thread_objs = create_threads(4, large_exp) for obj in thread_objs: obj.start() Figure: Benchmark 1: Threading
27 Benchmark 1: Threading Results Thread 1 Thread 2 Thread 3 Thread 4 Total Time Figure: Benchmark 1: Threading Results
28 Benchmark 1: Multiprocessing process_objs = create_processes(4, large_exp) for obj in process_objs: obj.start() Figure: Benchmark 1: Multiprocessing
29 Benchmark 1: Multiprocessing Results Process 1 Process 2 Process 3 Process 4 Total Time Figure: Benchmark 1: Multiprocessing Results
30 Benchmark 2 def smaller_exp(): begin = time.time() x = 1000**20000 print("integer Length:", len(str(x)), end=" ") end = time.time() print("time:", end - begin, "\n") Figure: Function for light benchmark
31 Benchmark 2: Threading thread_objs = create_threads(4, smaller_exp) for obj in thread_objs: obj.start() Figure: Benchmark 2: Threading
32 Benchmark 2: Threading Results Thread 1 Thread 2 Thread 3 Thread 4 Total Time Figure: Benchmark 2: Threading Results
33 Benchmark 2: Multiprocessing process_objs = create_processes(4, smaller_exp) for obj in process_objs: obj.start() Figure: Benchmark 2: Multiprocessing
34 Benchmark 2: Multiprocessing Results Process 1 Process 2 Process 3 Process 4 Total Time Figure: Benchmark 2: Multiprocessing Results
35 Key Findings Multiprocessing performed better overall Parallel computing Utilized four cores Speed in light tasks may have been due to CPU Speed made difference in object spawn times negligible Created a bottleneck elsewhere
36 GIL Going Forward Multithreading still has its uses Easier communication between objects Less resources used because of shared resources Multiprocessing likely to remain primary GIL workaround GIL will continue to be one of Python s hardest problems
37 GIL Going Forward Multithreading still has its uses Easier communication between objects Less resources used because of shared resources Multiprocessing likely to remain primary GIL workaround GIL will continue to be one of Python s hardest problems Figure: David Beazley: The hero Python deserves
38 Thank you. Any questions?
CPython cannot into threads
GIL CPython cannot into threads 1992 PyPy Jython CPython IronPython Brython PyPy Jython CPython IronPython Brython PyPy Jython CPython IronPython Brython CPython cannot into threads CPython cannot into
More informationCIS192 Python Programming
CIS192 Python Programming Graphical User Interfaces Robert Rand University of Pennsylvania December 03, 2015 Robert Rand (University of Pennsylvania) CIS 192 December 03, 2015 1 / 21 Outline 1 Performance
More informationA Python for Future Generations. Ronacher
A Python for Future Generations Armin @mitsuhiko Ronacher Hi, I'm Armin... and I do Open Source, lots of Python and SaaS Flask Sentry and here is where you can find me twitter.com/@mitsuhiko github.com/mitsuhiko
More informationEmbracing the Global Interpreter Lock (GIL)
Embracing the Global Interpreter Lock (GIL) David Beazley http://www.dabeaz.com October 6, 2011 PyCodeConf 2011, Miami 1 Let's Love the GIL! After blowing up the GIL at PyCon'2010, I thought it needed
More informationDiscussion CSE 224. Week 4
Discussion CSE 224 Week 4 Midterm The midterm will cover - 1. Topics discussed in lecture 2. Research papers from the homeworks 3. Textbook readings from Unit 1 and Unit 2 HW 3&4 Clarifications 1. The
More informationmultiprocessing and mpi4py
multiprocessing and mpi4py 02-03 May 2012 ARPA PIEMONTE m.cestari@cineca.it Bibliography multiprocessing http://docs.python.org/library/multiprocessing.html http://www.doughellmann.com/pymotw/multiprocessi
More informationCSE 410: Systems Programming
CSE 410: Systems Programming Concurrency Ethan Blanton Department of Computer Science and Engineering University at Buffalo Logical Control Flows The text defines a logical control flow as: [A] series
More informationPython for Earth Scientists
Python for Earth Scientists Andrew Walker andrew.walker@bris.ac.uk Python is: A dynamic, interpreted programming language. Python is: A dynamic, interpreted programming language. Data Source code Object
More informationAdministrivia. HW1 due Oct 4. Lectures now being recorded. I ll post URLs when available. Discussing Readings on Monday.
Administrivia HW1 due Oct 4. Lectures now being recorded. I ll post URLs when available. Discussing Readings on Monday. Keep posting discussion on Piazza Python Multiprocessing Topics today: Multiprocessing
More informationParallel Python using the Multiprocess(ing) Package
Parallel Python using the Multiprocess(ing) Package K. 1 1 Department of Mathematics 2018 Caveats My understanding of Parallel Python is not mature, so anything said here is somewhat questionable. There
More informationmultiprocessing HPC Python R. Todd Evans January 23, 2015
multiprocessing HPC Python R. Todd Evans rtevans@tacc.utexas.edu January 23, 2015 What is Multiprocessing Process-based parallelism Not threading! Threads are light-weight execution units within a process
More informationJS Event Loop, Promises, Async Await etc. Slava Kim
JS Event Loop, Promises, Async Await etc Slava Kim Synchronous Happens consecutively, one after another Asynchronous Happens later at some point in time Parallelism vs Concurrency What are those????
More informationCourse Structure of Python Training: UNIT - 1: COMPUTER FUNDAMENTALS. Computer Fundamentals. Installation of Development Tools:
Course Structure of Python Training: UNIT - 1: COMPUTER FUNDAMENTALS Computer Fundamentals o What is a Computer? o Computation vs calculation Microprocessors and Memory Concepts o Discussion on register,
More informationCS 31: Intro to Systems Threading & Parallel Applications. Kevin Webb Swarthmore College November 27, 2018
CS 31: Intro to Systems Threading & Parallel Applications Kevin Webb Swarthmore College November 27, 2018 Reading Quiz Making Programs Run Faster We all like how fast computers are In the old days (1980
More informationCore Development > PEP Index > PEP Addition of the multiprocessing package to the standard library
Core Development > PEP Index > PEP 371 -- Addition of the multiprocessing package to the standard library PEP: 371 Title: Version: 70469 Addition of the multiprocessing package to the standard library
More informationOperating Systems Fundamentals. What is an Operating System? Focus. Computer System Components. Chapter 1: Introduction
Operating Systems Fundamentals Overview of Operating Systems Ahmed Tawfik Modern Operating Systems are increasingly complex Operating System Millions of Lines of Code DOS 0.015 Windows 95 11 Windows 98
More informationMultitasking and Multithreading on a Multiprocessor With Virtual Shared Memory. Created By:- Name: Yasein Abdualam Maafa. Reg.
Multitasking and Multithreading on a Multiprocessor With Virtual Shared Memory Created By:- Name: Yasein Abdualam Maafa. Reg. No: 153104024 1 1. Introduction 2. Multitasking & its advantages 3. Multithreading
More informationGFS-python: A Simplified GFS Implementation in Python
GFS-python: A Simplified GFS Implementation in Python Andy Strohman ABSTRACT GFS-python is distributed network filesystem written entirely in python. There are no dependencies other than Python s standard
More informationPyPy - How to not write Virtual Machines for Dynamic Languages
PyPy - How to not write Virtual Machines for Dynamic Languages Institut für Informatik Heinrich-Heine-Universität Düsseldorf ESUG 2007 Scope This talk is about: implementing dynamic languages (with a focus
More informationLe L c e t c ur u e e 7 To T p o i p c i s c t o o b e b e co c v o e v r e ed e Multithreading
Course Name: Advanced Java Lecture 7 Topics to be covered Multithreading Thread--An Introduction Thread A thread is defined as the path of execution of a program. It is a sequence of instructions that
More informationCONCURRENT DISTRIBUTED TASK SYSTEM IN PYTHON. Created by Moritz Wundke
CONCURRENT DISTRIBUTED TASK SYSTEM IN PYTHON Created by Moritz Wundke INTRODUCTION Concurrent aims to be a different type of task distribution system compared to what MPI like system do. It adds a simple
More informationExploring Parallelism in. Joseph Pantoga Jon Simington
Exploring Parallelism in Joseph Pantoga Jon Simington Why bring parallelism to Python? - We love Python (and you should, too!) - Interacts very well with C / C++ via python.h and CPython - Rapid development
More informationIntroduction to Programming: Variables and Objects. HORT Lecture 7 Instructor: Kranthi Varala
Introduction to Programming: Variables and Objects HORT 59000 Lecture 7 Instructor: Kranthi Varala What is a program? A set of instructions to the computer that perform a specified task in a specified
More informationLET ME SLEEP ON IT. Improving concurrency in unexpected ways. Nir Soffer PyCon Israel 2017
LET ME SLEEP ON IT Improving concurrency in unexpected ways Nir Soffer PyCon Israel 2017 $ whoami Taming the Vdsm beast since 2013 Tinkering with Python since 2003 Free software enthusiast
More informationIntroduction to Computer Systems and Operating Systems
Introduction to Computer Systems and Operating Systems Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered 1. Computer History 2. Computer System
More informationDebugging of CPython processes with gdb
Debugging of CPython processes with gdb KharkivPy January 28th, 2017 by Roman Podoliaka, Development Manager at Mirantis twitter: @rpodoliaka blog: http://podoliaka.org slides: http://podoliaka.org/talks/
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 information1. Compile Time Error:
1. Compile Time Error: A successful compilation simply returns silently. Hence your aim should be that your program is so agreeable with the compiler that the compiler happily returns silently. If you
More informationChapter 1: Introduction
Chapter 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming Batched Systems Time-Sharing Systems Personal-Computer Systems Parallel Systems Distributed Systems Real -Time
More informationBEAMJIT, a Maze of Twisty Little Traces
BEAMJIT, a Maze of Twisty Little Traces A walk-through of the prototype just-in-time (JIT) compiler for Erlang. Frej Drejhammar 130613 Who am I? Senior researcher at the Swedish Institute
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 informationPERFORMANCE ANALYSIS AND OPTIMIZATION OF SKIP LISTS FOR MODERN MULTI-CORE ARCHITECTURES
PERFORMANCE ANALYSIS AND OPTIMIZATION OF SKIP LISTS FOR MODERN MULTI-CORE ARCHITECTURES Anish Athalye and Patrick Long Mentors: Austin Clements and Stephen Tu 3 rd annual MIT PRIMES Conference Sequential
More informationCIS192 Python Programming
CIS192 Python Programming Profiling and Parallel Computing Harry Smith University of Pennsylvania November 29, 2017 Harry Smith (University of Pennsylvania) CIS 192 November 29, 2017 1 / 19 Outline 1 Performance
More informationIntroduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016
Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges
More informationList of lectures. Lecture content. Concurrent computing. TDDA69 Data and Program Structure Concurrent Computing Cyrille Berger
List of lectures TDDA69 Data and Program Structure Concurrent Computing Cyrille Berger 1Introduction and Functional Programming 2Imperative Programming and Data Structures 3Parsing 4Evaluation 5Object
More informationFile Checksums in Python: The Hard Way
File Checksums in Python: The Hard Way Shane Kerr Amsterdam Python Meetup Group 2018-04-25 Data Hoarding I hate losing data. I don t trust the cloud. Disks are big now! But...
More informationApproaches to Parallel Computing
Approaches to Parallel Computing K. Cooper 1 1 Department of Mathematics Washington State University 2019 Paradigms Concept Many hands make light work... Set several processors to work on separate aspects
More informationPROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18
PROCESS VIRTUAL MEMORY CS124 Operating Systems Winter 2015-2016, Lecture 18 2 Programs and Memory Programs perform many interactions with memory Accessing variables stored at specific memory locations
More informationCS 31: Introduction to Computer Systems : Threads & Synchronization April 16-18, 2019
CS 31: Introduction to Computer Systems 22-23: Threads & Synchronization April 16-18, 2019 Making Programs Run Faster We all like how fast computers are In the old days (1980 s - 2005): Algorithm too slow?
More informationIntroduction to Concurrency. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 4 01/21/2010
Introduction to Concurrency Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 4 01/21/2010 University of Colorado, 2010 1 Credit where Credit is Due 2 Some text and images for this
More informationParallel Computing Ideas
Parallel Computing Ideas K. 1 1 Department of Mathematics 2018 Why When to go for speed Historically: Production code Code takes a long time to run Code runs many times Code is not end in itself 2010:
More informationEliminating Global Interpreter Locks in Ruby through Hardware Transactional Memory
Eliminating Global Interpreter Locks in Ruby through Hardware Transactional Memory Rei Odaira, Jose G. Castanos and Hisanobu Tomari IBM Research and University of Tokyo April 8, 2014 Rei Odaira, Jose G.
More informationWhy do we care about parallel?
Threads 11/15/16 CS31 teaches you How a computer runs a program. How the hardware performs computations How the compiler translates your code How the operating system connects hardware and software The
More informationLecture 8. Introduction to Python! Lecture 8
Lecture 8 Introduction to Python Lecture 8 Summary Python exceptions Processes and Threads Programming with Threads Python Exceptions In Python, there are two distinguishable kinds of errors: syntax errors
More informationSoftware Development. Integrated Software Environment
Software Development Integrated Software Environment Source Code vs. Machine Code What is source code? Source code and object code refer to the "before" and "after" versions of a computer program that
More informationComputer Fundamentals: Operating Systems, Concurrency. Dr Robert Harle
Computer Fundamentals: Operating Systems, Concurrency Dr Robert Harle This Week The roles of the O/S (kernel, timeslicing, scheduling) The notion of threads Concurrency problems Multi-core processors Virtual
More informationLOCKLESS ALGORITHMS. Lockless Algorithms. CAS based algorithms stack order linked list
Lockless Algorithms CAS based algorithms stack order linked list CS4021/4521 2017 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College Dublin 2-Jan-18 1 Obstruction, Lock and Wait
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 informationOperating System Structure
CSE325 Principles of Operating Systems Operating System Structure David Duggan dduggan@sandia.gov January 24, 2013 A View of Operating System Services 1/24/13 CSE325 - OS Structure 2 Operating System Design
More informationLecture 24: Multiprocessing Computer Architecture and Systems Programming ( )
Systems Group Department of Computer Science ETH Zürich Lecture 24: Multiprocessing Computer Architecture and Systems Programming (252-0061-00) Timothy Roscoe Herbstsemester 2012 Most of the rest of this
More informationPython in the Cling World
Journal of Physics: Conference Series PAPER OPEN ACCESS Python in the Cling World To cite this article: W Lavrijsen 2015 J. Phys.: Conf. Ser. 664 062029 Recent citations - Giving pandas ROOT to chew on:
More informationEffective Performance Measurement and Analysis of Multithreaded Applications
Effective Performance Measurement and Analysis of Multithreaded Applications Nathan Tallent John Mellor-Crummey Rice University CSCaDS hpctoolkit.org Wanted: Multicore Programming Models Simple well-defined
More informationChapter 4: Threads. Operating System Concepts 8 th Edition,
Chapter 4: Threads, Silberschatz, Galvin and Gagne 2009 Chapter 4: Threads Overview Multithreading Models Thread Libraries 4.2 Silberschatz, Galvin and Gagne 2009 Objectives To introduce the notion of
More informationA Faster Parallel Algorithm for Analyzing Drug-Drug Interaction from MEDLINE Database
A Faster Parallel Algorithm for Analyzing Drug-Drug Interaction from MEDLINE Database Sulav Malla, Kartik Anil Reddy, Song Yang Department of Computer Science and Engineering University of South Florida
More informationQuestions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process
Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation Why are threads useful? How does one use POSIX pthreads? Michael Swift 1 2 What s in a process? Organizing a Process A process
More informationLock handling Library
Lock handling Library This library provides access to hardware and software locks for use in concurrent C programs. In general it is not safe to use these to marshall within XC due to the assumptions XC
More informationVulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics
Vulkan: Scaling to Multiple Threads Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics www.imgtec.com Introduction Who am I? Kevin Sun Working at Imagination Technologies Take responsibility
More informationCS 220: Introduction to Parallel Computing. Introduction to CUDA. Lecture 28
CS 220: Introduction to Parallel Computing Introduction to CUDA Lecture 28 Today s Schedule Project 4 Read-Write Locks Introduction to CUDA 5/2/18 CS 220: Parallel Computing 2 Today s Schedule Project
More informationNative POSIX Thread Library (NPTL) CSE 506 Don Porter
Native POSIX Thread Library (NPTL) CSE 506 Don Porter Logical Diagram Binary Memory Threads Formats Allocators Today s Lecture Scheduling System Calls threads RCU File System Networking Sync User Kernel
More informationSoftware within building physics and ground heat storage. HEAT3 version 7. A PC-program for heat transfer in three dimensions Update manual
Software within building physics and ground heat storage HEAT3 version 7 A PC-program for heat transfer in three dimensions Update manual June 15, 2015 BLOCON www.buildingphysics.com Contents 1. WHAT S
More informationHigh Performance Python Micha Gorelick and Ian Ozsvald
High Performance Python Micha Gorelick and Ian Ozsvald Beijing Cambridge Farnham Koln Sebastopol Tokyo O'REILLY 0 Table of Contents Preface ix 1. Understanding Performant Python 1 The Fundamental Computer
More informationOverview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory
SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice
More informationThreads. Computer Systems. 5/12/2009 cse threads Perkins, DW Johnson and University of Washington 1
Threads CSE 410, Spring 2009 Computer Systems http://www.cs.washington.edu/410 5/12/2009 cse410-20-threads 2006-09 Perkins, DW Johnson and University of Washington 1 Reading and References Reading» Read
More informationPython Implementation Strategies. Jeremy Hylton Python / Google
Python Implementation Strategies Jeremy Hylton Python / Google Python language basics High-level language Untyped but safe First-class functions, classes, objects, &c. Garbage collected Simple module system
More informationTECHNICAL WHITEPAPER. Performance Evaluation Java Collections Framework. Performance Evaluation Java Collections. Technical Whitepaper.
Performance Evaluation Java Collections Framework TECHNICAL WHITEPAPER Author: Kapil Viren Ahuja Date: October 17, 2008 Table of Contents 1 Introduction...3 1.1 Scope of this document...3 1.2 Intended
More informationHotPy (2) Binary Compatible High Performance VM for Python. Mark Shannon
HotPy (2) Binary Compatible High Performance VM for Python Mark Shannon Who am I? Mark Shannon PhD thesis on building VMs for dynamic languages During my PhD I developed: GVMT. A virtual machine tool kit
More informationLinked Lists and Abstract Data Structures A brief comparison
Linked Lists and Abstract Data A brief comparison 24 March 2011 Outline 1 2 3 4 Data Data structures are a key idea in programming It s just as important how you store the data as it is what you do to
More informationExecutive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.
Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck
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 informationTutorial 1 Answers. Question 1
Tutorial 1 Answers Question 1 Complexity Software in it what is has to do, is often essentially complex. We can think of software which is accidentally complex such as a large scale e-commerce system (simple
More informationVirtual machines (e.g., VMware)
Case studies : Introduction to operating systems principles Abstraction Management of shared resources Indirection Concurrency Atomicity Protection Naming Security Reliability Scheduling Fairness Performance
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 informationComputer Organization & Assembly Language Programming
Computer Organization & Assembly Language Programming CSE 2312 Lecture 11 Introduction of Assembly Language 1 Assembly Language Translation The Assembly Language layer is implemented by translation rather
More informationAALib::Framework concepts
AALib::Framework concepts Asynchronous Action Library AALib PyAALib JyAALib Tutorial and Techniques by R. A. Pieritz Asynchronous Asynchrony, in the general meaning, is the state of not being synchronized.
More informationRACS: Extended Version in Java Gary Zibrat gdz4
RACS: Extended Version in Java Gary Zibrat gdz4 Abstract Cloud storage is becoming increasingly popular and cheap. It is convenient for companies to simply store their data online so that they don t have
More informationParallelism and Concurrency. Motivation, Challenges, Impact on Software Development CSE 110 Winter 2016
Parallelism and Concurrency Motivation, Challenges, Impact on Software Development CSE 110 Winter 2016 About These Slides Due to the nature of this material, this lecture was delivered via the chalkboard.
More informationHow Scalable is your SMB?
How Scalable is your SMB? Mark Rabinovich Visuality Systems Ltd. What is this all about? Visuality Systems Ltd. provides SMB solutions from 1998. NQE (Embedded) is an implementation of SMB client/server
More informationSoftware. CPU implements "machine code" instructions. --Each machine code instruction is extremely simple. --To run, expanded to about 10 machine code
Software Software - code that runs on the hardware I'm going to simplify things a bit here CPU implements "machine code" instructions --Each machine code instruction is extremely simple --e.g. add 2 numbers
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 informationBenchmark Performance Results for Pervasive PSQL v11. A Pervasive PSQL White Paper September 2010
Benchmark Performance Results for Pervasive PSQL v11 A Pervasive PSQL White Paper September 2010 Table of Contents Executive Summary... 3 Impact Of New Hardware Architecture On Applications... 3 The Design
More informationVERITAS Storage Foundation 4.0 for Oracle
J U N E 2 0 0 4 VERITAS Storage Foundation 4.0 for Oracle Performance Brief OLTP Solaris Oracle 9iR2 VERITAS Storage Foundation for Oracle Abstract This document details the high performance characteristics
More informationModule 1: Introduction
Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming Batched Systems Time-Sharing Systems Personal-Computer Systems Parallel Systems Distributed Systems Real -Time
More informationCS263: Runtime Systems Lecture: High-level language virtual machines
CS263: Runtime Systems Lecture: High-level language virtual machines Today: A Review of Object-oriented features Chandra Krintz UCSB Computer Science Department Virtual machines (VMs) Terminology Aka managed
More informationThin Locks: Featherweight Synchronization for Java
Thin Locks: Featherweight Synchronization for Java D. Bacon 1 R. Konuru 1 C. Murthy 1 M. Serrano 1 Presented by: Calvin Hubble 2 1 IBM T.J. Watson Research Center 2 Department of Computer Science 16th
More informationJAVA CONCURRENCY FRAMEWORK. Kaushik Kanetkar
JAVA CONCURRENCY FRAMEWORK Kaushik Kanetkar Old days One CPU, executing one single program at a time No overlap of work/processes Lots of slack time CPU not completely utilized What is Concurrency Concurrency
More informationOperating System. Chapter 4. Threads. Lynn Choi School of Electrical Engineering
Operating System Chapter 4. Threads Lynn Choi School of Electrical Engineering Process Characteristics Resource ownership Includes a virtual address space (process image) Ownership of resources including
More informationSeminar on Languages for Scientific Computing Aachen, 6 Feb Navid Abbaszadeh.
Scientific Computing Aachen, 6 Feb 2014 navid.abbaszadeh@rwth-aachen.de Overview Trends Introduction Paradigms, Data Structures, Syntax Compilation & Execution Concurrency Model Reference Types Performance
More informationCS 326: Operating Systems. Process Execution. Lecture 5
CS 326: Operating Systems Process Execution Lecture 5 Today s Schedule Process Creation Threads Limited Direct Execution Basic Scheduling 2/5/18 CS 326: Operating Systems 2 Today s Schedule Process Creation
More informationAn Introduction to Software Engineering. David Greenstein Monta Vista High School
An Introduction to Software Engineering David Greenstein Monta Vista High School Software Today Software Development Pre-1970 s - Emphasis on efficiency Compact, fast algorithms on machines with limited
More informationECE 574 Cluster Computing Lecture 8
ECE 574 Cluster Computing Lecture 8 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 16 February 2017 Announcements Too many snow days Posted a video with HW#4 Review HW#5 will
More informationEfficient String Concatenation in Python
Efficient String Concatenation in Python An assessment of the performance of several methods Source : http://www.skymind.com/~ocrow/python_string/ Introduction Building long strings in the Python progamming
More informationWhy I still develop synchronous web in the asyncio era. April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy
Why I still develop synchronous web in the asyncio era April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy Who am I? I m Gio! pronounced as Joe trust me, I m a physicist :) code principally
More informationCUDA GPGPU Workshop 2012
CUDA GPGPU Workshop 2012 Parallel Programming: C thread, Open MP, and Open MPI Presenter: Nasrin Sultana Wichita State University 07/10/2012 Parallel Programming: Open MP, MPI, Open MPI & CUDA Outline
More informationSSH Deploy Key Documentation
SSH Deploy Key Documentation Release 0.1.1 Travis Bear February 03, 2014 Contents 1 Overview 1 2 Source Code 3 3 Contents 5 3.1 Alternatives................................................ 5 3.2 Compatibility...............................................
More informationAgenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2
Lecture 3: Processes Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Process in General 3.3 Process Concept Process is an active program in execution; process
More informationScala Actors. Scalable Multithreading on the JVM. Philipp Haller. Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland
Scala Actors Scalable Multithreading on the JVM Philipp Haller Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland The free lunch is over! Software is concurrent Interactive applications
More informationCSE 374 Programming Concepts & Tools
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 22 Shared-Memory Concurrency 1 Administrivia HW7 due Thursday night, 11 pm (+ late days if you still have any & want to use them) Course
More informationScalable Concurrent Hash Tables via Relativistic Programming
Scalable Concurrent Hash Tables via Relativistic Programming Josh Triplett September 24, 2009 Speed of data < Speed of light Speed of light: 3e8 meters/second Processor speed: 3 GHz, 3e9 cycles/second
More information(b) External fragmentation can happen in a virtual memory paging system.
Alexandria University Faculty of Engineering Electrical Engineering - Communications Spring 2015 Final Exam CS333: Operating Systems Wednesday, June 17, 2015 Allowed Time: 3 Hours Maximum: 75 points Note:
More informationDesigning experiments Performing experiments in Java Intel s Manycore Testing Lab
Designing experiments Performing experiments in Java Intel s Manycore Testing Lab High quality results that capture, e.g., How an algorithm scales Which of several algorithms performs best Pretty graphs
More information