Python, C++ and SWIG
|
|
|
- Jacob Jenkins
- 10 years ago
- Views:
Transcription
1 Robin Dunn Software Craftsman O Reilly Open Source Convention July 21 25, 2008 Slides available at
2 Python & C++ Comparisons Each is a general purpose programming language, applicable to all sorts of application domains client/server GUI/WUI database computational business games etc. But each language also has its own set of strengths and weaknesses
3 Python & C++ Comparisons C++ statically typed compiled complex close to the metal fast at runtime long edit/compile/run cycles typically lots of code needed to solve a problem plenty of ways to shoot yourself in the foot Python dynamically typed interpreted simple higher level slow, but usually fast enough quick edit/run cycles typically 5-10 times less code to solve same problem your foot is much more safe
4 Python & C++ Comparisons In the end it all boils down to Speed Since C++ is close to the metal the compiled code has little runtime overhead and can be very quick executing. For many situations however there are much slower bottlenecks than the CPU so the speed of C++ isn't as valuable as you might think for these tasks. Productivity Because of the simpler language, dynamic typing (plus duck typing ) and high level language support of advanced container and other types, much less code is needed and the programmer can be much more productive. Python has no need for pointers, templates, macro preprocessor, explicit memory allocation, etc. Common anecdotal rule: one Python programmer can do in 2 months what 2 C++ programmers are not able to finish in one year.
5 Best of Both? So is it possible to have the speed of C/C++ where it's needed, and the productivity, flexibility, ease of maintenance, and joy of using Python, all in the same application?
6 Best of Both? Yes! Python is designed from the beginning to be extensible in C The calling code doesn't need to know if the module is Python or C code Enables porting modules to C on an as-needed basis after prototyping and profiling, without disturbing the rest of the application Can be anything from simple wrappers around C library functions to very Python-esque things like new class types, etc.
7 Python C API Broad and comprehensive APIs Used by extension modules to provide the glue between the Python code and the C/C++ code. Can deal with Python objects at an abstract level (e.g. anything that can act like a number) Or at a concrete level, (e.g. when you know you have an integer object) Can also raise Python exceptions call Python functions/methods manipulate lists, dictionaries, etc. And so on.
8 Extension modules Compiled and linked as a shared object file or DLL Placed on the Python path Used with the normal Python import statement Python uses the platform's normal APIs for dynamic loading Python calls a known initialization function, which creates the module object and all of its content You can then use the module the same as if it was written in Python instead of C.
9 Extension Modules You still have to deal with the negative aspects of C/C++, (complex code, memory allocations, longer edit/compile/run cycles, etc.) but: It is for a relatively small portion of the whole application, just where speed or time critical things matter Usually can be a self contained library Usually can be easily unit tested to help maintain reliability, because the unit testing can happen from the Python side Productivity gains of using Python for the rest of the application greatly outweigh extra work needed for making an extension module.
10 Basic Architecture Python Code for Application Python Bytecode Interpreter C/C++ Extension Module(s) Python C API OS and Hardware
11 What's the Downside? Writing large extension modules by hand can be mindnumbingly tedious and error-prone grunt work The process Write a Python wrapper function for every C function you want to access Convert input parameters Call target function Check for errors/exceptions Convert return value Create Python versions of C constants Provide access to C variables, structures, and C++ classes Write an initialization function Imagine repeating that for a huge library with thousands of functions Imagine propagating API changes in the target library by hand through the extension module code and the Python wrapper code
12 SWIG Simplified Wrapper Interface Generator Automates a huge amount of the work for extension modules, eliminating most of the time and tedium for development of extensions Facilitates the gluing of C/C++ libs to Python, allowing you to partition the application to the languages that can best handle each kind of task, building on strengths instead of living with weaknesses
13 SWIG A compiler that reads C/C++ declarations and writes C code implementing the extension Support for wrapping C structures and C++ classes, in addition to standalone functions, constants, etc. Also supports extensions for languages other than Python Understands the C++ class hierarchy and can do appropriate type checking of input parameters, etc. Can generate code for use with C++ templates Can generate code that allows overriding C++ virtual methods in Python classes
14 SWIG Many things work out of the box with no extra work, but SWIG also provides many ways to customize or add to the generated code %typemap: controls what C code is generated in wrapper functions that receive or return objects of certain types %extend: Can add new methods to a wrapped class that don't necessarily exist in the C++ class %inline: Add new C functions that will automatically be wrapped %pythoncode: Emit custom python code into the wrapper for the current class, or append or prepend it to the Python proxy function Etc.
15 SWIG Includes a full C/C++ preprocessor, with some SWIG extensions for richer macros, etc. Can use macros and conditional compilation directives in the interface declaration files SWIG can understand the real headers for the library, and as long as they are clean it can sometimes make sense to use them directly with no extra work needed.
16 SWIG SWIG can either generate a bare extension module full of wrapped functions Or a combination of an extension module and a Python module with Proxy classes. This is the best option for wrapping C++ classes by providing a natural mapping to Python classes Offers lots of options for customizing or tweaking the API by emitting additional Python code Can also easily create a class-based API from wrappers of plain C functions The only attribute in the Python proxy is an object that contains a pointer to the real C++ object
17 SWIG themodule.i SWIG themodule.py _themodule.so themodule_wrap.cpp thelibrary C/C++
18 Why to not use SWIG Code generated by SWIG is not the best that an extension module can be. Classes are flattened to a collection of wrapped functions, with the OO-ness added back on by the Proxy classes. A hand-coded extension module would probably just use extension types (classes) instead The flexibility and generality of SWG generated code leads to some inefficiencies that could be avoided with hand-coding Like probably any code generator, the code is messy and not much fun to read, but luckily you seldom need to do so
19 Why use SWIG SWIG saves massive amounts of time and effort wxpython is 1.6 MLOC, 90-95% generated by SWIG, and not only maintained, but actively developed by one person Allows developers to partition the application into the languages best suited to performing each task, without needing to spend relatively large amounts of time on the glue code Developers can spend more time on the parts of the code that really matter
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Using EDA Databases: Milkyway & OpenAccess
Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1 Outline History Choice Of Scripting
Chapter 3.2 C++, Java, and Scripting Languages. The major programming languages used in game development.
Chapter 3.2 C++, Java, and Scripting Languages The major programming languages used in game development. C++ C used to be the most popular language for games Today, C++ is the language of choice for game
Source Code Translation
Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven
Enterprise Mobile Application Development: Native or Hybrid?
Enterprise Mobile Application Development: Native or Hybrid? Enterprise Mobile Application Development: Native or Hybrid? SevenTablets 855-285-2322 [email protected] http://www.seventablets.com
The Plan Today... System Calls and API's Basics of OS design Virtual Machines
System Calls + The Plan Today... System Calls and API's Basics of OS design Virtual Machines System Calls System programs interact with the OS (and ultimately hardware) through system calls. Called when
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Creating Dynamics User Model Dynamic Linked Library (DLL) for Various PSS E Versions
Siemens Energy, Inc. Power Technology Issue 111 Creating Dynamics User Model Dynamic Linked Library (DLL) for Various PSS E Versions Krishnat Patil Staff Software Engineer [email protected] Jay
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
Driving force. What future software needs. Potential research topics
Improving Software Robustness and Efficiency Driving force Processor core clock speed reach practical limit ~4GHz (power issue) Percentage of sustainable # of active transistors decrease; Increase in #
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
PCI vs. PCI Express vs. AGP
PCI vs. PCI Express vs. AGP What is PCI Express? Introduction So you want to know about PCI Express? PCI Express is a recent feature addition to many new motherboards. PCI Express support can have a big
Xcode Project Management Guide. (Legacy)
Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project
Object Oriented Database Management System for Decision Support System.
International Refereed Journal of Engineering and Science (IRJES) ISSN (Online) 2319-183X, (Print) 2319-1821 Volume 3, Issue 6 (June 2014), PP.55-59 Object Oriented Database Management System for Decision
Mark Bennett. Search and the Virtual Machine
Mark Bennett Search and the Virtual Machine Agenda Intro / Business Drivers What to do with Search + Virtual What Makes Search Fast (or Slow!) Virtual Platforms Test Results Trends / Wrap Up / Q & A Business
Adding scalability to legacy PHP web applications. Overview. Mario Valdez-Ramirez
Adding scalability to legacy PHP web applications Overview Mario Valdez-Ramirez The scalability problems of legacy applications Usually were not designed with scalability in mind. Usually have monolithic
Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga
Programming models for heterogeneous computing Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga Talk outline [30 slides] 1. Introduction [5 slides] 2.
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
Techniques and Strategies for Data-driven design in Game Development. Scott Shumaker Outrage Games
Techniques and Strategies for Data-driven design in Game Development Scott Shumaker Outrage Games Motivations Many games are never completed Many completed games are not financially successful These failures
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
Abstract. Description
Project title: Bloodhound: Dynamic client-side autocompletion features for the Apache Bloodhound ticket system Name: Sifa Sensay Student e-mail: [email protected] Student Major: Software Engineering
A Comparison of Programming Languages for Graphical User Interface Programming
University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange University of Tennessee Honors Thesis Projects University of Tennessee Honors Program 4-2002 A Comparison of Programming
Python for Series 60 Platform
F O R U M N O K I A Getting Started with Python for Series 60 Platform Version 1.2; September 28, 2005 Python for Series 60 Platform Copyright 2005 Nokia Corporation. All rights reserved. Nokia and Nokia
Chapter 5: Operating Systems Part 1
Name Period Chapter 5: Operating Systems Part 1 1. What controls almost all functions on a computer? 2. What operating systems will be discussed in this chapter? 3. What is meant by multi-user? 4. Explain
Effective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
Visual Basic Programming. An Introduction
Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
Base One's Rich Client Architecture
Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.
How to Choose the Right Data Storage Format for Your Measurement System
1 How to Choose the Right Data Storage Format for Your Measurement System Overview For many new measurement systems, choosing the right data storage approach is an afterthought. Engineers often end up
Here s how to choose the right mobile app for you.
Here s how to choose the right mobile app for you. There is no arguing with statistics. The future of the web is mobile. Tablet shipments are increasing exponentially and within two years consumer broadband
SLANGTNG - SOFTWARE FOR STOCHASTIC STRUCTURAL ANALYSIS MADE EASY
Meccanica dei Materiali e delle Strutture Vol. 3 (2012), no.4, pp. 10-17 ISSN: 2035-679X Dipartimento di Ingegneria Civile, Ambientale, Aerospaziale, Dei Materiali DICAM SLANGTNG - SOFTWARE FOR STOCHASTIC
WHITE PAPER. TimeScape.NET. Increasing development productivity with TimeScape, Microsoft.NET and web services TIMESCAPE ENTERPRISE SOLUTIONS
TIMESCAPE ENTERPRISE SOLUTIONS WHITE PAPER Increasing development productivity with TimeScape, Microsoft.NET and web services This white paper describes some of the major industry issues limiting software
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
CS-XXX: Graduate Programming Languages. Lecture 25 Multiple Inheritance and Interfaces. Dan Grossman 2012
CS-XXX: Graduate Programming Languages Lecture 25 Multiple Inheritance and Interfaces Dan Grossman 2012 Multiple Inheritance Why not allow class C extends C1,C2,...{...} (and C C1 and C C2)? What everyone
Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server
Chapter 3 Database Architectures and the Web Transparencies Database Environment - Objectives The meaning of the client server architecture and the advantages of this type of architecture for a DBMS. The
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
Cover sheet. How do you create a backup of the OS systems during operation? SIMATIC PCS 7. FAQ November 2013. Service & Support. Answers for industry.
Cover sheet How do you create a backup of the OS systems during operation? SIMATIC PCS 7 FAQ November 2013 Service & Support Answers for industry. Question This entry originates from the Service & Support
A TOOL FOR SUPPORTING THE PROCESS OF PROPERTY MANAGEMENT AND THE CREATION OF TECHNICAL DRAWINGS
Nenad Bojčetić Dragan Žeželj Mario Štorga ISSN 1333-1124 A TOOL FOR SUPPORTING THE PROCESS OF PROPERTY MANAGEMENT AND THE CREATION OF TECHNICAL DRAWINGS Summary UDK 744:004.4 CAD applications play a major
WordPress Optimization
WordPress Optimization markkelnar WP Engine @renderandserve [email protected] wpengine.com/optimizing-wordpress WordCamp Atlanta 2012 Who is this guy? Head of Technology, System Administration, database,
Notepad++ The COMPSCI 101 Text Editor for Windows. What is a text editor? Install Python 3
Notepad++ The COMPSCI 101 Text Editor for Windows The text editor that we will be using in the Computer Science labs for creating our Python programs is called Notepad++ and http://notepad-plus-plus.org
Lesson 1 Introduction to Rapid Application Development using Visual Basic
Lesson 1 Introduction to Rapid Application Development using Visual Basic RAD (Rapid Application Development) refers to a development life cycle designed to give much faster development and higher-quality
Introduction (Apps and the Android platform)
Introduction (Apps and the Android platform) CE881: Mobile and Social Application Programming Simon Lucas & Spyros Samothrakis January 13, 2015 1 / 38 1 2 3 4 2 / 38 Course Structure 10 weeks Each week:
OPC COMMUNICATION IN REAL TIME
OPC COMMUNICATION IN REAL TIME M. Mrosko, L. Mrafko Slovak University of Technology, Faculty of Electrical Engineering and Information Technology Ilkovičova 3, 812 19 Bratislava, Slovak Republic Abstract
Cambridge International AS and A Level Computer Science
Topic support guide Cambridge International AS and A Level Computer Science 9608 For examination from 2017 Topic 3.4.2 Virtual machine Cambridge International Examinations retains the copyright on all
Thin@ System Architecture V3.2. Last Update: August 2015
Thin@ System Architecture V3.2 Last Update: August 2015 Introduction http://www.thinetsolution.com Welcome to Thin@ System Architecture manual! Modern business applications are available to end users as
How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
A deeper look at Inline functions
A deeper look at Inline functions I think it s safe to say that all Overload readers know what C++ inline functions are. When we declare a function or member function as inline we are trying to avoid the
Matrox Imaging White Paper
Vision library or vision specific IDE: Which is right for you? Abstract Commercial machine vision software is currently classified along two lines: the conventional vision library and the vision specific
Introduction. Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications
Introduction Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications 1 Computer Software Architecture Application macros and scripting - AML,
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications Joshua Ellul [email protected] Overview Brief introduction to Body Sensor Networks BSN Hardware
How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself
How do Users and Processes interact with the Operating System? Users interact indirectly through a collection of system programs that make up the operating system interface. The interface could be: A GUI,
Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61
F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Organization of Programming Languages CS320/520N. Lecture 05. Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.
Organization of Programming Languages CS320/520N Razvan C. Bunescu School of Electrical Engineering and Computer Science [email protected] Names, Bindings, and Scopes A name is a symbolic identifier used
NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases
NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases Background Inspiration: postgresapp.com demo.beatstream.fi (modern desktop browsers without
CHAPTER 4 ESSENTIAL DATA STRUCTRURES
CHAPTER 4 ESSENTIAL DATA STRUCTURES 72 CHAPTER 4 ESSENTIAL DATA STRUCTRURES In every algorithm, there is a need to store data. Ranging from storing a single value in a single variable, to more complex
Optimally Manage the Data Center Using Systems Management Tools from Cisco and Microsoft
White Paper Optimally Manage the Data Center Using Systems Management Tools from Cisco and Microsoft What You Will Learn Cisco is continuously innovating to help businesses reinvent the enterprise data
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
Fourth generation techniques (4GT)
Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some
SAP HANA - Main Memory Technology: A Challenge for Development of Business Applications. Jürgen Primsch, SAP AG July 2011
SAP HANA - Main Memory Technology: A Challenge for Development of Business Applications Jürgen Primsch, SAP AG July 2011 Why In-Memory? Information at the Speed of Thought Imagine access to business data,
Writing standalone Qt & Python applications for Android
Writing standalone Qt & Python applications for Android Martin Kolman Red Hat & Faculty of Informatics, Masaryk University http://www.modrana.org/om2013 [email protected] 1 Overview Writing Android
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada [email protected] Micaela Serra
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM
Bern University of Applied Sciences Engineering and Information Technology Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM By Franz Meyer Version 1.0 February 2011 Virtualization Architecture
Using C to Access Data Stored in Program Space Memory on the TMS320C24x DSP
Application Report SPRA380 April 2002 Using C to Access Data Stored in Program Space Memory on the TMS320C24x DSP David M. Alter DSP Applications - Semiconductor Group ABSTRACT Efficient utilization of
The Bus (PCI and PCI-Express)
4 Jan, 2008 The Bus (PCI and PCI-Express) The CPU, memory, disks, and all the other devices in a computer have to be able to communicate and exchange data. The technology that connects them is called the
Revolutionized DB2 Test Data Management
Revolutionized DB2 Test Data Management TestBase's Patented Slice Feature Provides a Fresh Solution to an Old Set of DB2 Application Testing Problems The challenge in creating realistic representative
Optimizing Ext4 for Low Memory Environments
Optimizing Ext4 for Low Memory Environments Theodore Ts'o November 7, 2012 Agenda Status of Ext4 Why do we care about Low Memory Environments: Cloud Computing Optimizing Ext4 for Low Memory Environments
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
In-memory Tables Technology overview and solutions
In-memory Tables Technology overview and solutions My mainframe is my business. My business relies on MIPS. Verna Bartlett Head of Marketing Gary Weinhold Systems Analyst Agenda Introduction to in-memory
Software Development for Embedded GNU Radio Applications
Software Development for Embedded GNU Radio Applications Philip Balister [email protected] Open SDR May 28, 2015 1 Embedded SW Development 2 OpenEmbedded 3 Develop Software 4 Creating a Finished Product
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.
Professional SlickEdif John Hurst IC..T...L i 1 8 О 7» \ WILEY \! 2 0 0 7 " > Wiley Publishing, Inc. Acknowledgments Introduction xiii xxv Part I: Getting Started with SiickEdit Chapter 1: Introducing
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping
AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference
Programming in Python. Basic information. Teaching. Administration Organisation Contents of the Course. Jarkko Toivonen. Overview of Python
Programming in Python Jarkko Toivonen Department of Computer Science University of Helsinki September 18, 2009 Administration Organisation Contents of the Course Overview of Python Jarkko Toivonen (CS
Object Instance Profiling
Object Instance Profiling Lubomír Bulej 1,2, Lukáš Marek 1, Petr Tůma 1 Technical report No. 2009/7, November 2009 Version 1.0, November 2009 1 Distributed Systems Research Group, Department of Software
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
Upping the game. Improving your software development process
Upping the game Improving your software development process John Ferguson Smart Principle Consultant Wakaleo Consulting Email: [email protected] Web: http://www.wakaleo.com Twitter: wakaleo Presentation
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
sys socketcall: Network systems calls on Linux
sys socketcall: Network systems calls on Linux Daniel Noé April 9, 2008 The method used by Linux for system calls is explored in detail in Understanding the Linux Kernel. However, the book does not adequately
Lua as a business logic language in high load application. Ilya Martynov [email protected] CTO at IPONWEB
Lua as a business logic language in high load application Ilya Martynov [email protected] CTO at IPONWEB Company background Ad industry Custom development Technical platform with multiple components Custom
MAGENTO HOSTING Progressive Server Performance Improvements
MAGENTO HOSTING Progressive Server Performance Improvements Simple Helix, LLC 4092 Memorial Parkway Ste 202 Huntsville, AL 35802 [email protected] 1.866.963.0424 www.simplehelix.com 2 Table of Contents
GTask Developing asynchronous applications for multi-core efficiency
GTask Developing asynchronous applications for multi-core efficiency February 2009 SCALE 7x Los Angeles Christian Hergert What Is It? GTask is a mini framework to help you write asynchronous code. Dependencies
New Generation of Software Development
New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 [email protected] ABSTRACT In this paper, I present a picture of what software development
Bringing Big Data Modelling into the Hands of Domain Experts
Bringing Big Data Modelling into the Hands of Domain Experts David Willingham Senior Application Engineer MathWorks [email protected] 2015 The MathWorks, Inc. 1 Data is the sword of the
Parallels Virtuozzo Containers vs. VMware Virtual Infrastructure:
Parallels Virtuozzo Containers vs. VMware Virtual Infrastructure: An Independent Architecture Comparison TABLE OF CONTENTS Introduction...3 A Tale of Two Virtualization Solutions...5 Part I: Density...5
