C++ Class Library Data Management for Scientific Visualization
|
|
|
- Leonard Pearson
- 10 years ago
- Views:
Transcription
1 I. Introduction C++ Class Library Data Management for Scientific Visualization Al Globus, Computer Sciences Corporation 1 [email protected] Abstract Scientific visualization strives to convert large data sets into comprehensible pictures. Data sets generated by modern instruments and super-computers are so large that visualization is often crucial to comprehension. Visualization involves a great deal of numerical programming: vector arithmetic, inverting matrices, solving ODE s, etc. Commercial C++ class libraries implement most of what s needed, but have a fatal memory management performance flaw: data to be operated on is always copied from memory or disk into newly allocated space. On large data sets, these copies kill performance. A small class hierarchy has been implemented to address this problem. The base class implements reference count memory management and contains a virtual destructor, but does no allocation or deallocation. Derived classes are added to implement different ways of allocating memory and importing data into the system. This solution has been tested in our own C++ numerical class library -- the library we wish we didn t have to write. Data sets of current interest at our facility range in size from 600 megabytes to 160 gigabytes [Globus92]. To use a commercial C++ numerical class library for visualization purposes, our data must be passed to the library, typically by a constructor. Vector, matrix, and array class constructors in existing libraries either copy a memory buffer or read from a disk file [Dyad92,RW92]. Copies are expensive in physical memory and disk IO is expensive in time. Unnecessary copies and/or disk IO are unacceptable for our work. Constructors are needed that can incorporate large blocks of data into an object without making a copy, and destructors are needed that delete the data when it is no longer needed. Allocation and deallocation must be done by executing application specific code. This can be done with a class hierarchy based at the class tdata 2. tdata implements reference counting memory management and has a virtual destructor. Application programmers write derived classes implementing constructors and destructors that import (or allocate) and delete application specific data as desired. In reference count memory management, each block of data is an object that keeps a count of the 1. This work is supported through NASA contract NAS In this paper, class names start with t, a habit picked up from MacApp. Also, code fragments will be in the courier font. 1
2 number of pointers referencing the block. When the reference count goes to 0, the data block is deallocated. Note that reference count memory management defeats normal C++ memory management of local variables and can cause problems. Reference count memory management is not central to the approach advocated by this paper. It is used here because the implementation is very simple and will not distract from our main point. Note that if data initialized by the application is imported into a numerical library, the way the library expects data to be laid out in memory must be documented. E.g., for multi-dimensional arrays, the index increasing fastest with increasing memory address must be known. II. Problem A description of the tdata class hierarchy follows, but first, consider two situations that arise in scientific visualization programming where the tdata memory management approach vastly improves performance over that achievable using current commercial C++ numerical class libraries. The performance improvements derive solely from eliminating memory copies and disk IO. 1. Extensible visualization systems such as AVS [Upson89], SGI Explorer [SGI92a,SGI92b], and FAST [Bancroft90] are customized by writing modules. These modules are separate UNIX processes that communicate locally via shared memory and to remote machines via sockets. This communication is handled by the visualization system. Module programmers need only write functions that input and output visualization system data types. Thus, a useful C++ numerical library must operate on data allocated by the visualization system, not the C++ library. 2. Some important visualization techniques access a very small, but unpredictable, portion of a data set. If data is on disk, the access pattern s unpredictability prevents reading the right portion a priori. However, one can memory map the file [UNIX]. A memory mapped file is added to a process virtual memory space without actually reading the file into physical memory. The virtual memory system will transparently read only those portions of the data actually referenced by subsequent code; i.e., physical memory acts as a cache for data on disk. Thus, code which accesses memory mapped files or in-core buffers is identical, although performance will vary. Memory mapping can reduce IO by orders of magnitude. Consider following the path of a set of particles through a time dependent 3D vector field. Conceptually, this is the equivalent of releasing massless particles into a flow to see where they go. Mathematically, given the Eulerian vector field: v ( x, find the particle path of X by solving: dx = v ( x, dt with x = X at t = t 0 In our work, v ( x, is usually sampled on a curvilinear 3D grid in space and regularly in dx time. The amount of the data that must be accessed to solve = v ( x, is dt O(number-of- particles). The size of v ( x, is O(number-of-grid-points). The number of particles per time step is typically ten thousand or so [Levit92], whereas the number of sample 2
3 points per time step is frequently in the millions [Globus92]. Eight sample points are necessary to interpolate values for one particle. Thus, in the unlikely worst case that no two particles access the same sample points, following 10,000 particles in a 3,000,000 point spatial grid requires access to 80,000 sample points per time step, or less than 2.7% of the data. Of course, the virtual memory system will access data not actually needed since disk reads have a minimum size, but the IO savings are still substantial. In one case, the time to calculate the motion of 100 particles for one step in a 2.8 million point data set went from many minutes to four seconds per time step [Globus93]. A useful C++ numerical library needs to operate on memory mapped data, but the present packages cannot. We have seen two situations where a numerical package must operate on memory not allocated by the package. All such situations cannot be anticipated, so a flexible mechanism is needed to import (or allocate) and deallocate data from different sources. III. A Solution To operate on different kids of data transparently, a numerical class library need only differ in the way the data is imported and deallocated. C++ derived classes and virtual destructors can provide a such a mechanism. In our C++ numerical class library, we implement the class tdata and derived classes to import/allocate and deallocate memory as appropriate. Consider the following cases: Memory is allocated by new. This can be used when the numerical class library will set initial values. Data is in memory allocated by a visualization system. In this case, the data is memory resident but has been allocated by a visualization system, not by the numerical class library. The data reside is a file, but it is not necessary to read the entire file into memory. In this case, memory mapping is used. A portion of the data in an existing tdata is needed. This occurs when taking a subset of an array or when a file is memory mapped and there is header information such as array dimensions. When data should not be deallocated by the numerical library under any circumstances. This can occur when you re just plain paranoid. 3
4 tdata is defined 1 : // Class that keeps reference counts of blocks data for memory // management. When using these classes, always allocate with new // and never use the destructors (they re protected anyway). // Use ->unreference() when you re done with the data class tdata private: int ReferenceCount; int Bytes; // size in bytes, set by derived classes char *Data; // set and (de)allocated by derived classes tdata() ReferenceCount = 1; } virtual ~tdata() = 0; char* data() return Data; } void reference() ReferenceCount++; } void unreference() if (!(--ReferenceCoun ) delete this;} int bytes() return Bytes; } int referencecount() return ReferenceCount; } When memory allocated by new is desired, use: class tnewdata : public tdata tnewdata( int size ) Bytes = size; Data = new char[bytes];} ~tnewdata() delete[] Data; } When the data is in a data structure controlled by visualization system, use: class tvisualizationsystemdata : public tdata // tell visualization system this data is referenced // and pull out a pointer to the actual data tvisualizationsystemdata( VisSystemDataType* ) 2 ; ~tvisualizationsystemdata(); 1. The code fragments here are modified for clarity: e.g., error checks have been removed. 2. Code here is visualization system dependent. 4
5 When the data is in a file that must be memory mapped: class tfiledata : public tdata tfiledata( const char* filename ) 1 ; int fd = open((const char *)filename, O_RDONLY); struct stat statbuf; fstat(fd, &statbuf); Bytes = (instatbuf.st_size; Data = (char*)mmap(0, (inbytes, PROT_READ, MAP_SHARED, fd, 0); close( fd ); } ~tfiledata() munmap( (caddr_data, (inbytes ); } Since a file of data frequently contains header information, there is a need to access the part of a file containing the data. To meet this need use the following: class tpartofdata : public tdata tdata *ReferencedData; tpartofdata( tdata* ref, int size, int start ) ReferencedData = ref; Bytes = size; Data = ref->data() + start; ref->reference(); } ~tpartofdata() ReferencedData->unreference(); } Sometimes there are blocks of data that should never be deallocated. For this case use the following: class tdonttouchdata : public tdata tdonttouchdata( int size, char* data ) Bytes = size; Data = data; } ~tdonttouchdata() } 1. Note: #include files left out for brevity. 5
6 To see how the tdata class hierarchy is used, consider vector operation on data in a file: tdata* d = new tfiledata( foo ); // reference count = 1 tvector v( d );// count = 2, see below d->unreference(); // count goes to 1 float f = v.product(); // multiply vector elements together } // when v is destructed, d s reference count goes to 0 // so d is also destroyed The tvector constructor and destructor might be implemented as follows: class tvector float* FloatData; // cache a raw pointer to vector tdata* Data; // tdata that manages the vector s data int Length; // length of the vector tvector( tdata* d ) Data = d; Data->reference(); Length = d->bytes() / sizeof(floa; FloatData = (float*)(d->data()); } ~tvector() Data->unreference(); } IV. Future Work The tdata class hierarchy works well for blocks of data in virtual memory; but if the data is in memory on a remote machine, the present tdata cannot help. However, if virtual operator[] and operator= were implemented, then a class derived from tdata should be able to get control when the data is accessed and handle the network access transparently (except for performance!). V. Conclusion To be useful to many scientific visualization application programmers, C++ class libraries must access data allocated outside the library without making copies. This can be accomplished by a class hierarchy where the derived classes handle application specific allocation and deallocation. We recommend that numerical class library developers provide a way for their classes to operate on memory allocated by application programmers, perhaps using a mechanism similar to the one presented here. VI. Acknowledgments D. Asimov, C. Levit, E. Raible, J. Krystynak, K. McCabe, and B. Klein reviewed this paper and made many excellent comments and corrections. I would like to thank the Applied Research 6
7 Branch of the NAS Division of NASA Ames Research Center for the superb working environment I have become addicted to. This work is supported through NASA contract NAS VII. References [Atwood92] C. A. Atwood and W. R. Van Dalsem, Flowfield Simulation about the SOFIA Airborne Observatory, 30th AIAA Aerospace Sciences Meeting and Exhibit, January 1992, Reno, Nevada, AIAA [Bancroft90] G. Bancroft, F. Merritt, T. Plessel, P. Kelaita, R. McCabe, and A. Globus, FAST: A Multi-Processing Environment for Visualization of CFD, Proceedings Visualization 90, IEEE Computer Society, San Francisco, [Dyad92] Manuals and personal communication, Dyad Software. [Globus92] A. Globus, A Software Model for Visualization of Time Dependent 3-D Computational Fluid Dynamics Results, NASA Ames Research Center, NAS Systems Division, Applied Research Branch technical report RNR , November [Globus93] A. Globus, Optimizing Time Dependent Particle Tracing, NASA Ames Research Center, NAS Systems Division, Applied Research Branch technical report RNR-93-0??, In progress, title subject to change. [Levit92] C. Levit, personal communication. [RW92] Manuals and personal communication, Rogue Wave. [SGI92a] IRIS Explorer User s Guide, Silicon Graphics Computer Systems, Document , [SGI92b] IRIS Explorer Module Writer s Guide, Silicon Graphics Computer Systems, Document , [UNIX] UNIX mmap Man Page. [Upson89] C. Upson, et. al., The Application Visualization System: A Computational Environment for Scientific Visualization, IEEE Computer Graphics and Applications, July 1989, Vol. 9, No. 4, pp
THE NAS KERNEL BENCHMARK PROGRAM
THE NAS KERNEL BENCHMARK PROGRAM David H. Bailey and John T. Barton Numerical Aerodynamic Simulations Systems Division NASA Ames Research Center June 13, 1986 SUMMARY A benchmark test program that measures
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
Fast Arithmetic Coding (FastAC) Implementations
Fast Arithmetic Coding (FastAC) Implementations Amir Said 1 Introduction This document describes our fast implementations of arithmetic coding, which achieve optimal compression and higher throughput by
Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
Linux/UNIX System Programming. POSIX Shared Memory. Michael Kerrisk, man7.org c 2015. February 2015
Linux/UNIX System Programming POSIX Shared Memory Michael Kerrisk, man7.org c 2015 February 2015 Outline 22 POSIX Shared Memory 22-1 22.1 Overview 22-3 22.2 Creating and opening shared memory objects 22-10
Variable Base Interface
Chapter 6 Variable Base Interface 6.1 Introduction Finite element codes has been changed a lot during the evolution of the Finite Element Method, In its early times, finite element applications were developed
1 File Management. 1.1 Naming. COMP 242 Class Notes Section 6: File Management
COMP 242 Class Notes Section 6: File Management 1 File Management We shall now examine how an operating system provides file management. We shall define a file to be a collection of permanent data with
El Dorado Union High School District Educational Services
El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.
Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
Data-Intensive Science and Scientific Data Infrastructure
Data-Intensive Science and Scientific Data Infrastructure Russ Rew, UCAR Unidata ICTP Advanced School on High Performance and Grid Computing 13 April 2011 Overview Data-intensive science Publishing scientific
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
lesson 1 An Overview of the Computer System
essential concepts lesson 1 An Overview of the Computer System This lesson includes the following sections: The Computer System Defined Hardware: The Nuts and Bolts of the Machine Software: Bringing the
Object Oriented Software Design II
Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
Software documentation systems
Software documentation systems Basic introduction to various user-oriented and developer-oriented software documentation systems. Ondrej Holotnak Ondrej Jombik Software documentation systems: Basic introduction
Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata
Implementing Network Attached Storage Ken Fallon Bill Bullers Impactdata Abstract The Network Peripheral Adapter (NPA) is an intelligent controller and optimized file server that enables network-attached
VISUALIZATION OF POST-PROCESSED CFD DATA IN A VIRTUAL ENVIRONMENT
Proceedings of DETC 99 1999 ASME Design Engineering Technical Conferences September 12-15, 1999, Las Vegas, Nevada DETC99/CIE-9042 VISUALIZATION OF POST-PROCESSED CFD DATA IN A VIRTUAL ENVIRONMENT Vishant
CISC 181 Project 3 Designing Classes for Bank Accounts
CISC 181 Project 3 Designing Classes for Bank Accounts Code Due: On or before 12 Midnight, Monday, Dec 8; hardcopy due at beginning of lecture, Tues, Dec 9 What You Need to Know This project is based on
System Calls and Standard I/O
System Calls and Standard I/O Professor Jennifer Rexford http://www.cs.princeton.edu/~jrex 1 Goals of Today s Class System calls o How a user process contacts the Operating System o For advanced services
C++ Programming Language
C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Numbering Systems. InThisAppendix...
G InThisAppendix... Introduction Binary Numbering System Hexadecimal Numbering System Octal Numbering System Binary Coded Decimal (BCD) Numbering System Real (Floating Point) Numbering System BCD/Binary/Decimal/Hex/Octal
Database 2 Lecture I. Alessandro Artale
Free University of Bolzano Database 2. Lecture I, 2003/2004 A.Artale (1) Database 2 Lecture I Alessandro Artale Faculty of Computer Science Free University of Bolzano Room: 221 [email protected] http://www.inf.unibz.it/
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico 1 Programming
System Calls Related to File Manipulation
KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS Information and Computer Science Department ICS 431 Operating Systems Lab # 12 System Calls Related to File Manipulation Objective: In this lab we will be
Sensors and the Zaurus S Hardware
The Zaurus Software Development Guide Robert Christy August 29, 2003 Contents 1 Overview 1 2 Writing Software for the Zaurus 2 3 Using the bathw Library 3 3.1 Using the fans.............................
Programming Languages & Tools
4 Programming Languages & Tools Almost any programming language one is familiar with can be used for computational work (despite the fact that some people believe strongly that their own favorite programming
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
Data Centric Systems (DCS)
Data Centric Systems (DCS) Architecture and Solutions for High Performance Computing, Big Data and High Performance Analytics High Performance Computing with Data Centric Systems 1 Data Centric Systems
Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()
CS61: Systems Programming and Machine Organization Harvard University, Fall 2009 Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() Prof. Matt Welsh October 6, 2009 Topics for today Dynamic
Lecture 24 Systems Programming in C
Lecture 24 Systems Programming in C A process is a currently executing instance of a program. All programs by default execute in the user mode. A C program can invoke UNIX system calls directly. A system
Intel P6 Systemprogrammering 2007 Föreläsning 5 P6/Linux Memory System
Intel P6 Systemprogrammering 07 Föreläsning 5 P6/Linux ory System Topics P6 address translation Linux memory management Linux page fault handling memory mapping Internal Designation for Successor to Pentium
Image Compression through DCT and Huffman Coding Technique
International Journal of Current Engineering and Technology E-ISSN 2277 4106, P-ISSN 2347 5161 2015 INPRESSCO, All Rights Reserved Available at http://inpressco.com/category/ijcet Research Article Rahul
C++ Wrapper Library for Firebird Embedded SQL
C++ Wrapper Library for Firebird Embedded SQL Written by: Eugene Wineblat, Software Developer of Network Security Team, ApriorIT Inc. www.apriorit.com 1. Introduction 2. Embedded Firebird 2.1. Limitations
How To Write Portable Programs In C
Writing Portable Programs COS 217 1 Goals of Today s Class Writing portable programs in C Sources of heterogeneity Data types, evaluation order, byte order, char set, Reading period and final exam Important
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
Chapter 07: Instruction Level Parallelism VLIW, Vector, Array and Multithreaded Processors. Lesson 05: Array Processors
Chapter 07: Instruction Level Parallelism VLIW, Vector, Array and Multithreaded Processors Lesson 05: Array Processors Objective To learn how the array processes in multiple pipelines 2 Array Processor
Schema Classes. Polyhedra Ltd
Schema Classes Polyhedra Ltd Copyright notice This document is copyright 1994-2006 by Polyhedra Ltd. All Rights Reserved. This document contains information proprietary to Polyhedra Ltd. It is supplied
Storing Measurement Data
Storing Measurement Data File I/O records or reads data in a file. A typical file I/O operation involves the following process. 1. Create or open a file. Indicate where an existing file resides or where
PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON
PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London
Linux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah [email protected] Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang Today s topics Why objects? Object-oriented programming (OOP) in C++ classes fields & methods objects representation
Affdex SDK for Windows!
Affdex SDK for Windows SDK Developer Guide 1 Introduction Affdex SDK is the culmination of years of scientific research into emotion detection, validated across thousands of tests worldwide on PC platforms,
Software Engineering Concepts: Testing. Pointers & Dynamic Allocation. CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009
Software Engineering Concepts: Testing Simple Class Example continued Pointers & Dynamic Allocation CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009 Glenn G. Chappell Department
Course MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: [email protected] Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?
Management Challenge Managing Hardware Assets What computer processing and storage capability does our organization need to handle its information and business transactions? What arrangement of computers
MPLAB TM C30 Managed PSV Pointers. Beta support included with MPLAB C30 V3.00
MPLAB TM C30 Managed PSV Pointers Beta support included with MPLAB C30 V3.00 Contents 1 Overview 2 1.1 Why Beta?.............................. 2 1.2 Other Sources of Reference..................... 2 2
Course materials. In addition to these slides, C++ API header files, a set of exercises, and solutions, the following are useful:
Course materials In addition to these slides, C++ API header files, a set of exercises, and solutions, the following are useful: OpenCL C 1.2 Reference Card OpenCL C++ 1.2 Reference Card These cards will
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Duration of Course: 6 Months Fees: Rs. 25,000/- (including Service Tax) Eligibility: B.E./B.Tech., M.Sc.(IT/ computer
Network Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
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
Computing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
Introduction. dnotify
Introduction In a multi-user, multi-process operating system, files are continually being created, modified and deleted, often by apparently unrelated processes. This means that any software that needs
Chapter 13 File and Database Systems
Chapter 13 File and Database Systems Outline 13.1 Introduction 13.2 Data Hierarchy 13.3 Files 13.4 File Systems 13.4.1 Directories 13.4. Metadata 13.4. Mounting 13.5 File Organization 13.6 File Allocation
Chapter 13 File and Database Systems
Chapter 13 File and Database Systems Outline 13.1 Introduction 13.2 Data Hierarchy 13.3 Files 13.4 File Systems 13.4.1 Directories 13.4. Metadata 13.4. Mounting 13.5 File Organization 13.6 File Allocation
Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming
Overview Lecture 1: an introduction to CUDA Mike Giles [email protected] hardware view software view Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Lecture 1 p.
ECS 165B: Database System Implementa6on Lecture 2
ECS 165B: Database System Implementa6on Lecture 2 UC Davis, Spring 2011 Por6ons of slides based on earlier ones by Raghu Ramakrishnan, Johannes Gehrke, Jennifer Widom, Bertram Ludaescher, and Michael Gertz.
Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual
Intel Media Server Studio - Metrics Monitor (v1.1.0) Reference Manual Overview Metrics Monitor is part of Intel Media Server Studio 2015 for Linux Server. Metrics Monitor is a user space shared library
Binary storage of graphs and related data
EÖTVÖS LORÁND UNIVERSITY Faculty of Informatics Department of Algorithms and their Applications Binary storage of graphs and related data BSc thesis Author: Frantisek Csajka full-time student Informatics
File Management. Chapter 12
File Management Chapter 12 File Management File management system is considered part of the operating system Input to applications is by means of a file Output is saved in a file for long-term storage
Curriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
Hank Childs, University of Oregon
Exascale Analysis & Visualization: Get Ready For a Whole New World Sept. 16, 2015 Hank Childs, University of Oregon Before I forget VisIt: visualization and analysis for very big data DOE Workshop for
XenData Archive Series Software Technical Overview
XenData White Paper XenData Archive Series Software Technical Overview Advanced and Video Editions, Version 4.0 December 2006 XenData Archive Series software manages digital assets on data tape and magnetic
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.
Objectives The Central Processing Unit: What Goes on Inside the Computer Chapter 4 Identify the components of the central processing unit and how they work together and interact with memory Describe how
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
ProTrack: A Simple Provenance-tracking Filesystem
ProTrack: A Simple Provenance-tracking Filesystem Somak Das Department of Electrical Engineering and Computer Science Massachusetts Institute of Technology [email protected] Abstract Provenance describes a file
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago
Globus Striped GridFTP Framework and Server Raj Kettimuthu, ANL and U. Chicago Outline Introduction Features Motivation Architecture Globus XIO Experimental Results 3 August 2005 The Ohio State University
File Management. Chapter 12
Chapter 12 File Management File is the basic element of most of the applications, since the input to an application, as well as its output, is usually a file. They also typically outlive the execution
3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version
Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin [email protected] Carl Timmer [email protected]
Chapter 12 File Management
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 12 File Management Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Roadmap Overview File organisation and Access
W4118 Operating Systems. Junfeng Yang
W4118 Operating Systems Junfeng Yang Outline Linux overview Interrupt in Linux System call in Linux What is Linux A modern, open-source OS, based on UNIX standards 1991, 0.1 MLOC, single developer Linus
Chapter 12 File Management. Roadmap
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 12 File Management Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Overview Roadmap File organisation and Access
Arti Tyagi Sunita Choudhary
Volume 5, Issue 3, March 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Web Usage Mining
How To Encrypt Data With A Power Of N On A K Disk
Towards High Security and Fault Tolerant Dispersed Storage System with Optimized Information Dispersal Algorithm I Hrishikesh Lahkar, II Manjunath C R I,II Jain University, School of Engineering and Technology,
Operating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski [email protected] 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
Logging. Working with the POCO logging framework.
Logging Working with the POCO logging framework. Overview > Messages, Loggers and Channels > Formatting > Performance Considerations Logging Architecture Message Logger Channel Log File Logging Architecture
CpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing
CpSc212 Goddard Notes Chapter 6 Yet More on Classes We discuss the problems of comparing, copying, passing, outputting, and destructing objects. 6.1 Object Storage, Allocation and Destructors Some objects
Original-page small file oriented EXT3 file storage system
Original-page small file oriented EXT3 file storage system Zhang Weizhe, Hui He, Zhang Qizhen School of Computer Science and Technology, Harbin Institute of Technology, Harbin E-mail: [email protected]
Raima Database Manager Version 14.0 In-memory Database Engine
+ Raima Database Manager Version 14.0 In-memory Database Engine By Jeffrey R. Parsons, Senior Engineer January 2016 Abstract Raima Database Manager (RDM) v14.0 contains an all new data storage engine optimized
vector vec double # in # cl in ude <s ude tdexcept> tdexcept> // std::ou std t_of ::ou _range t_of class class V Vector { ector {
Software Design (C++) 3. Resource management and exception safety (idioms and technicalities) Juha Vihavainen University of Helsinki Preview More on error handling and exceptions checking array indices
Basic Unix/Linux 1. Software Testing Interview Prep
Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a
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.
RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE CISY 233 INTRODUCTION TO PHP
RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE CISY 233 INTRODUCTION TO PHP I. Basic Course Information A. Course Number and Title: CISY 233 Introduction to PHP B. New or Modified Course: Modified
Overview. File Management. File System Properties. File Management
File Management Lecture 15b 1 2 File Management File management system consists of system utility programs that run as privileged applications Input to applications is by means of a file Output is saved
Shared Memory Introduction
12 Shared Memory Introduction 12.1 Introduction Shared memory is the fastest form of IPC available. Once the memory is mapped into the address space of the processes that are sharing the memory region,
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
GDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
