Introduction to PETSc

Size: px
Start display at page:

Download "Introduction to PETSc"

Transcription

1 Introduction to PETSc Data management Loïc Gouarin Laboratoire de Mathématiques d Orsay May 13-15, 2013 Loïc Gouarin Introduction to PETSc 1

2 Data management PETSc offers two types of data management DMDA: data management for structured mesh DMPlex (or DMMesh): data management for unstructured mesh These structures define for each process local portion of the mesh, ghost points, communications with the neighbourhood to update ghost points, global and local mapping,... Loïc Gouarin Introduction to PETSc 2

3 DMDA creation int DMDACreate2d(MPI_Comm comm, DMDABoundaryType xperiod, DMDABoundaryType yperiod, DMDAStencilType st, int M, int N,int m,int n,int dof,int s, int *lx,int *ly,dm *da) xperiod and yperiod: type of ghost nodes. DMDA BOUNDARY NONE, DMDA BOUNDARY GHOSTED, DMDA BOUNDARY PERIODIC st: stencil type. DMDA STENCIL BOX or DMDA STENCIL STAR M and N: global dimension in each direction. m and n: number of processors in each direction. dof: number of degrees of freedom per node. s: stencil width. Loïc Gouarin Introduction to PETSc 3

4 Local and global vectors Creation int DMCreateGlobalVector(DM da,vec *g) int DMCreateLocalVector(DM da,vec *l) Scatter a global vector into its local parts including the ghost points DMGlobalToLocalBegin(DM da,vec g, InsertMode iora,vec l); DMGlobalToLocalEnd(DM da,vec g, InsertMode iora,vec l); Scatter a local vector into the global vector DMDALocalToGlobalBegin(DM da,vec l, InsertMode iora,vec g); DMDALocalToGlobalEnd(DM da,vec l, InsertMode iora,vec g); InsertMode can be either INSERT_VALUES or ADD_VALUES. Loïc Gouarin Introduction to PETSc 4

5 First example #include "petsc.h" int main(int argc, char **argv){ int nx=5, ny=5; DM dm; Vec g; } PetscInitialize(&argc, &argv, NULL, NULL); DMDACreate2d(PETSC_COMM_WORLD, DMDA_BOUNDARY_NONE, DMDA_BOUNDARY_NONE, DMDA_STENCIL_STAR, nx, ny, PETSC_DECIDE, PETSC_DECIDE, 1, 1, PETSC_NULL, PETSC_NULL, &dm); DMCreateGlobalVector(dm, &g);... VecDestroy(&g); PetscFinalize(); return 0; Loïc Gouarin Introduction to PETSc 5

6 Local portion on each process Loïc Gouarin Introduction to PETSc 6

7 Local portion on each process Loïc Gouarin Introduction to PETSc 7

8 Ghost points: DMDA STENCIL STAR 0 Loïc Gouarin Introduction to PETSc 8

9 Ghost points: DMDA STENCIL STAR 3 Loïc Gouarin Introduction to PETSc 9

10 Ghost points: DMDA STENCIL BOX 0 Loïc Gouarin Introduction to PETSc 10

11 Ghost points: DMDA STENCIL BOX 3 Loïc Gouarin Introduction to PETSc 11

12 How to get grid information? DMDAGetCorners(DM da, int *xs,int *ys,int *zs, int *xm,int *ym,int *zm); ym 0 (xs, ys) xm Use PETSC_NULL if you want to omit a parameter. Loïc Gouarin Introduction to PETSc 12

13 How to get grid information? DMDAGetCorners(DM da, int *xs,int *ys,int *zs, int *xm,int *ym,int *zm); ym 3 (xs, ys) xm Loïc Gouarin Introduction to PETSc 13

14 How to get grid information? DMDAGetGhostCorners(DM da, int *gxs,int *gys,int *gzs, int *gxm,int *gym,int *gzm); gym 0 (gxs, gys) gxm Loïc Gouarin Introduction to PETSc 14

15 How to get grid information? DMDAGetGhostCorners(DM da, int *gxs,int *gys,int *gzs, int *gxm,int *gym,int *gzm); gym 3 (gxs, gys) gxm Loïc Gouarin Introduction to PETSc 15

16 How to get grid information? DMDAGetLocalInfo(DM da,dmdalocalinfo *info) typedef struct { PetscInt dim,dof,sw; /* global number of grid points in each direction */ PetscInt mx,my,mz; /* starting point of this processor, excluding ghosts */ PetscInt xs,ys,zs; /* number of grid points on this processor, excluding ghosts * PetscInt xm,ym,zm; /* starting point of this processor including ghosts */ PetscInt gxs,gys,gzs; /* number of grid points on this processor including ghosts */ PetscInt gxm,gym,gzm; /* type of ghost nodes at boundary */ DMDABoundaryType bx,by,bz; DMDAStencilType st; DM da; } DMDALocalInfo; Loïc Gouarin Introduction to PETSc 16

17 DMDA offers functions for vector manipulation Local (ghosted) work vectors DMGetLocalVector(DM da,vec *l);... use the local vector l DMRestoreLocalVector(DM da,vec *l); Accessing the vector entries for DMDA vectors PetscScalar **f,**u;... DMDAVecGetArray(DM da,vec local,&u); DMDAVecGetArray(DM da,vec global,&f);... f[i][j] = u[i][j] DMDAVecRestoreArray(DM da,vec local,&u); DMDAVecRestoreArray(DM da,vec global,&f); Loïc Gouarin Introduction to PETSc 17

18 References 1 PETSc documentation 2 PETSc tutorial Loïc Gouarin Introduction to PETSc 18

In-situ Visualization

In-situ Visualization In-situ Visualization Dr. Jean M. Favre Scientific Computing Research Group 13-01-2011 Outline Motivations How is parallel visualization done today Visualization pipelines Execution paradigms Many grids

More information

Introduction. Reading. Today MPI & OpenMP papers Tuesday Commutativity Analysis & HPF. CMSC 818Z - S99 (lect 5)

Introduction. Reading. Today MPI & OpenMP papers Tuesday Commutativity Analysis & HPF. CMSC 818Z - S99 (lect 5) Introduction Reading Today MPI & OpenMP papers Tuesday Commutativity Analysis & HPF 1 Programming Assignment Notes Assume that memory is limited don t replicate the board on all nodes Need to provide load

More information

Computational Physics

Computational Physics Computational Physics Sheet 6, Computational Physics Course 17105 Professor: H. Ruhl, Exercises: N. Moschüring and N. Elkina Discussion of Solutions: Dec 03, 01, Room A49 Problem 1: Yee solver for Schrödinger

More information

Virtual Topologies. Cartesian partitioning Exercise. * includes sample C and Fortran programs

Virtual Topologies. Cartesian partitioning Exercise. * includes sample C and Fortran programs Virtual Topologies Virtual topologies Topology types Creating a cartesian virtual topology Cartesian example Cartesian mapping functions MPI_CART_RANK * MPI_CART_COORDS * MPI_CART_SHIFT * Cartesian partitioning

More information

URI and UUID. Identifying things on the Web.

URI and UUID. Identifying things on the Web. URI and UUID Identifying things on the Web. Overview > Uniform Resource Identifiers (URIs) > URIStreamOpener > Universally Unique Identifiers (UUIDs) Uniform Resource Identifiers > Uniform Resource Identifiers

More information

Towards real-time image processing with Hierarchical Hybrid Grids

Towards real-time image processing with Hierarchical Hybrid Grids Towards real-time image processing with Hierarchical Hybrid Grids International Doctorate Program - Summer School Björn Gmeiner Joint work with: Harald Köstler, Ulrich Rüde August, 2011 Contents The HHG

More information

Hybrid Programming with MPI and OpenMP

Hybrid Programming with MPI and OpenMP Hybrid Programming with and OpenMP Ricardo Rocha and Fernando Silva Computer Science Department Faculty of Sciences University of Porto Parallel Computing 2015/2016 R. Rocha and F. Silva (DCC-FCUP) Programming

More information

Tail call elimination. Michel Schinz

Tail call elimination. Michel Schinz Tail call elimination Michel Schinz Tail calls and their elimination Loops in functional languages Several functional programming languages do not have an explicit looping statement. Instead, programmers

More information

Intro to GPU computing. Spring 2015 Mark Silberstein, 048661, Technion 1

Intro to GPU computing. Spring 2015 Mark Silberstein, 048661, Technion 1 Intro to GPU computing Spring 2015 Mark Silberstein, 048661, Technion 1 Serial vs. parallel program One instruction at a time Multiple instructions in parallel Spring 2015 Mark Silberstein, 048661, Technion

More information

Topological Properties

Topological Properties Advanced Computer Architecture Topological Properties Routing Distance: Number of links on route Node degree: Number of channels per node Network diameter: Longest minimum routing distance between any

More information

Drawing Text with SDL

Drawing Text with SDL Drawing Text with SDL Note: This tutorial assumes that you already know how to display a window and draw a sprite with SDL. Setting Up the SDL TrueType Font Library To display text with SDL, you need the

More information

Specific Simple Network Management Tools

Specific Simple Network Management Tools Specific Simple Network Management Tools Jürgen Schönwälder University of Osnabrück Albrechtstr. 28 49069 Osnabrück, Germany Tel.: +49 541 969 2483 Email: Web:

More information

Why are we teaching you VisIt?

Why are we teaching you VisIt? VisIt Tutorial Why are we teaching you VisIt? Interactive (GUI) Visualization and Analysis tool Multiplatform, Free and Open Source The interface looks the same whether you run locally or remotely, serial

More information

Moving boundary in openfoam

Moving boundary in openfoam Moving boundary in openfoam Linear motion - OpenFoam #2 Julien Réveillon University of Rouen and CORIA [email protected] http://www.cfdandco.com 7 juin 2012 Intent: The objective is to present

More information

Locality-Preserving Dynamic Load Balancing for Data-Parallel Applications on Distributed-Memory Multiprocessors

Locality-Preserving Dynamic Load Balancing for Data-Parallel Applications on Distributed-Memory Multiprocessors JOURNAL OF INFORMATION SCIENCE AND ENGINEERING 18, 1037-1048 (2002) Short Paper Locality-Preserving Dynamic Load Balancing for Data-Parallel Applications on Distributed-Memory Multiprocessors PANGFENG

More information

H.Calculating Normal Vectors

H.Calculating Normal Vectors Appendix H H.Calculating Normal Vectors This appendix describes how to calculate normal vectors for surfaces. You need to define normals to use the OpenGL lighting facility, which is described in Chapter

More information

SQLITE C/C++ TUTORIAL

SQLITE C/C++ TUTORIAL http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm SQLITE C/C++ TUTORIAL Copyright tutorialspoint.com Installation Before we start using SQLite in our C/C++ programs, we need to make sure that we have

More information

An Incomplete C++ Primer. University of Wyoming MA 5310

An Incomplete C++ Primer. University of Wyoming MA 5310 An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages

More information

Visualization of 2D Domains

Visualization of 2D Domains Visualization of 2D Domains This part of the visualization package is intended to supply a simple graphical interface for 2- dimensional finite element data structures. Furthermore, it is used as the low

More information

P1 P2 P3. Home (p) 1. Diff (p) 2. Invalidation (p) 3. Page Request (p) 4. Page Response (p)

P1 P2 P3. Home (p) 1. Diff (p) 2. Invalidation (p) 3. Page Request (p) 4. Page Response (p) ËÓØÛÖ ØÖÙØ ËÖ ÅÑÓÖÝ ÓÚÖ ÎÖØÙÐ ÁÒØÖ ÖØØÙÖ ÁÑÔÐÑÒØØÓÒ Ò ÈÖÓÖÑÒ ÅÙÖÐÖÒ ÊÒÖÒ Ò ÄÚÙ ÁØÓ ÔÖØÑÒØ Ó ÓÑÔÙØÖ ËÒ ÊÙØÖ ÍÒÚÖ ØÝ È ØÛÝ ÆÂ ¼¹¼½ ÑÙÖÐÖ ØÓ ºÖÙØÖ ºÙ ØÖØ ÁÒ Ø ÔÔÖ Û Ö Ò ÑÔÐÑÒØØÓÒ Ó ÓØÛÖ ØÖÙØ ËÖ ÅÑÓÖÝ Ëŵ

More information

7th Marathon of Parallel Programming WSCAD-SSC/SBAC-PAD-2012

7th Marathon of Parallel Programming WSCAD-SSC/SBAC-PAD-2012 7th Marathon of Parallel Programming WSCAD-SSC/SBAC-PAD-2012 October 17 th, 2012. Rules For all problems, read carefully the input and output session. For all problems, a sequential implementation is given,

More information

Parallelization: Binary Tree Traversal

Parallelization: Binary Tree Traversal By Aaron Weeden and Patrick Royal Shodor Education Foundation, Inc. August 2012 Introduction: According to Moore s law, the number of transistors on a computer chip doubles roughly every two years. First

More information

Networks and Protocols Course: 320301 International University Bremen Date: 2004-11-24 Dr. Jürgen Schönwälder Deadline: 2004-12-03.

Networks and Protocols Course: 320301 International University Bremen Date: 2004-11-24 Dr. Jürgen Schönwälder Deadline: 2004-12-03. Networks and Protocols Course: 320301 International University Bremen Date: 2004-11-24 Dr. Jürgen Schönwälder Deadline: 2004-12-03 Problem Sheet #10 Problem 10.1: finger rpc server and client implementation

More information

Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming

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.

More information

Lecture 18-19 Data Types and Types of a Language

Lecture 18-19 Data Types and Types of a Language Lecture 18-19 Data Types and Types of a Language April 29, 2014 Data Types and Types of a Language Data, Data Types and Types Type: Generalities Type Systems and Type Safety Type Equivalence, Coercion

More information

Mesh Partitioning and Load Balancing

Mesh Partitioning and Load Balancing and Load Balancing Contents: Introduction / Motivation Goals of Load Balancing Structures Tools Slide Flow Chart of a Parallel (Dynamic) Application Partitioning of the initial mesh Computation Iteration

More information

CORBA Programming with TAOX11. The C++11 CORBA Implementation

CORBA Programming with TAOX11. The C++11 CORBA Implementation CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy

More information

Off-by-One exploitation tutorial

Off-by-One exploitation tutorial Off-by-One exploitation tutorial By Saif El-Sherei www.elsherei.com Introduction: I decided to get a bit more into Linux exploitation, so I thought it would be nice if I document this as a good friend

More information

Hands-on Hacking Unlimited

Hands-on Hacking Unlimited About Zone-H Attacks techniques (%) File Inclusion Shares misconfiguration SQL Injection DNS attack through social engineering Web Server external module intrusion Attack against the administrator/user

More information

Stacks. Linear data structures

Stacks. Linear data structures Stacks Linear data structures Collection of components that can be arranged as a straight line Data structure grows or shrinks as we add or remove objects ADTs provide an abstract layer for various operations

More information

Code Generation Tools for PDEs. Matthew Knepley PETSc Developer Mathematics and Computer Science Division Argonne National Laboratory

Code Generation Tools for PDEs. Matthew Knepley PETSc Developer Mathematics and Computer Science Division Argonne National Laboratory Code Generation Tools for PDEs Matthew Knepley PETSc Developer Mathematics and Computer Science Division Argonne National Laboratory Talk Objectives Introduce Code Generation Tools - Installation - Use

More information

Parallel Programming with MPI on the Odyssey Cluster

Parallel Programming with MPI on the Odyssey Cluster Parallel Programming with MPI on the Odyssey Cluster Plamen Krastev Office: Oxford 38, Room 204 Email: [email protected] FAS Research Computing Harvard University Objectives: To introduce you

More information

Operating Systems. Privileged Instructions

Operating Systems. Privileged Instructions Operating Systems Operating systems manage processes and resources Processes are executing instances of programs may be the same or different programs process 1 code data process 2 code data process 3

More information

Output: 12 18 30 72 90 87. struct treenode{ int data; struct treenode *left, *right; } struct treenode *tree_ptr;

Output: 12 18 30 72 90 87. struct treenode{ int data; struct treenode *left, *right; } struct treenode *tree_ptr; 50 20 70 10 30 69 90 14 35 68 85 98 16 22 60 34 (c) Execute the algorithm shown below using the tree shown above. Show the exact output produced by the algorithm. Assume that the initial call is: prob3(root)

More information

Numerical Libraries with C or Fortran. Shaohao Chen Research Computing, IS&T, Boston University

Numerical Libraries with C or Fortran. Shaohao Chen Research Computing, IS&T, Boston University Numerical Libraries with C or Fortran Shaohao Chen Research Computing, IS&T, Boston University Outline 1. Overview: What? Why? How to? 2. Fast Fourier transform: FFTw 3. Linear algebra libraries: LAPACK/BLAS

More information

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security & BSc. (Hons.) Software Engineering Cohort: BIS/05/FT BCNS/05/FT BSE/05/FT Examinations for 2005-2006 / Semester

More information

High performance computing systems. Lab 1

High performance computing systems. Lab 1 High performance computing systems Lab 1 Dept. of Computer Architecture Faculty of ETI Gdansk University of Technology Paweł Czarnul For this exercise, study basic MPI functions such as: 1. for MPI management:

More information

An API for Reading the MySQL Binary Log

An API for Reading the MySQL Binary Log An API for Reading the MySQL Binary Log Mats Kindahl Lead Software Engineer, MySQL Replication & Utilities Lars Thalmann Development Director, MySQL Replication, Backup & Connectors

More information

The Art of Exploiting Logical Flaws in Web Apps. Sumit sid Siddharth Richard deanx Dean

The Art of Exploiting Logical Flaws in Web Apps. Sumit sid Siddharth Richard deanx Dean The Art of Exploiting Logical Flaws in Web Apps Sumit sid Siddharth Richard deanx Dean A GREAT COLLABORATION! 2 competitors working together! Thanks to: 7Safe, Part of PA Consulting Group Portcullis Computer

More information

Comp151. Definitions & Declarations

Comp151. Definitions & Declarations Comp151 Definitions & Declarations Example: Definition /* reverse_printcpp */ #include #include using namespace std; int global_var = 23; // global variable definition void reverse_print(const

More information

Introduction to Visualization with VTK and ParaView

Introduction to Visualization with VTK and ParaView Introduction to Visualization with VTK and ParaView R. Sungkorn and J. Derksen Department of Chemical and Materials Engineering University of Alberta Canada August 24, 2011 / LBM Workshop 1 Introduction

More information

Lecture 3. Optimising OpenCL performance

Lecture 3. Optimising OpenCL performance Lecture 3 Optimising OpenCL performance Based on material by Benedict Gaster and Lee Howes (AMD), Tim Mattson (Intel) and several others. - Page 1 Agenda Heterogeneous computing and the origins of OpenCL

More information

Optimizing Load Balance Using Parallel Migratable Objects

Optimizing Load Balance Using Parallel Migratable Objects Optimizing Load Balance Using Parallel Migratable Objects Laxmikant V. Kalé, Eric Bohm Parallel Programming Laboratory University of Illinois Urbana-Champaign 2012/9/25 Laxmikant V. Kalé, Eric Bohm (UIUC)

More information

S7 OPC Server Tutorial

S7 OPC Server Tutorial S7 OPC Server Tutorial Configure your S7 OPC Server in only three Steps by Import of STEP7 Projects This example demonstrates how fast the Softing S7 OPC Server can be commissioned via import of an existing

More information

OpenMP* 4.0 for HPC in a Nutshell

OpenMP* 4.0 for HPC in a Nutshell OpenMP* 4.0 for HPC in a Nutshell Dr.-Ing. Michael Klemm Senior Application Engineer Software and Services Group ([email protected]) *Other brands and names are the property of their respective owners.

More information

The C++ Programming Language Single and Multiple Inheritance in C++ Douglas C. Schmidt www.cs.wustl.edu/schmidt/ [email protected] Washington University, St. Louis 1 Background Object-oriented programming

More information

Data Structures and Algorithms C++ Implementation

Data Structures and Algorithms C++ Implementation BK TP.HCM Ho Chi Minh City University of Technology Faculty of Computer Science and Engineering BK TP.HCM Data Structures and Algorithms C++ Implementation Huỳnh Tấn Đạt Email: [email protected] Home

More information

COMP/CS 605: Introduction to Parallel Computing Lecture 21: Shared Memory Programming with OpenMP

COMP/CS 605: Introduction to Parallel Computing Lecture 21: Shared Memory Programming with OpenMP COMP/CS 605: Introduction to Parallel Computing Lecture 21: Shared Memory Programming with OpenMP Mary Thomas Department of Computer Science Computational Science Research Center (CSRC) San Diego State

More information

Operating System Structure

Operating System Structure Operating System Structure Lecture 3 Disclaimer: some slides are adopted from the book authors slides with permission Recap Computer architecture CPU, memory, disk, I/O devices Memory hierarchy Architectural

More information

Visualization of Adaptive Mesh Refinement Data with VisIt

Visualization of Adaptive Mesh Refinement Data with VisIt Visualization of Adaptive Mesh Refinement Data with VisIt Gunther H. Weber Lawrence Berkeley National Laboratory VisIt Richly featured visualization and analysis tool for large data sets Built for five

More information

Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct

Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct Dr. Martin O. Steinhauser University of Basel Graduate Lecture Spring Semester 2014 Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct Friday, 7 th March

More information

Illustration 1: Diagram of program function and data flow

Illustration 1: Diagram of program function and data flow The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline

More information

CUDA Basics. Murphy Stein New York University

CUDA Basics. Murphy Stein New York University CUDA Basics Murphy Stein New York University Overview Device Architecture CUDA Programming Model Matrix Transpose in CUDA Further Reading What is CUDA? CUDA stands for: Compute Unified Device Architecture

More information

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 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

More information

Tutorial: Using a UDF to Control the Dynamic Mesh of a Flexible Oscillating Membrane

Tutorial: Using a UDF to Control the Dynamic Mesh of a Flexible Oscillating Membrane Tutorial: Using a UDF to Control the Dynamic Mesh of a Flexible Oscillating Membrane Introduction The purpose of this tutorial is to illustrate how to use a user defined function (UDF) to control the dynamic

More information

How I Learned to Stop Fuzzing and Find More Bugs

How I Learned to Stop Fuzzing and Find More Bugs How I Learned to Stop Fuzzing and Find More Bugs Jacob West Fortify Software August 3-5, 2007 Las Vegas Agenda Introduction to fuzzing What is fuzzing? Challenges with fuzzing Introduction to static analysis

More information

Hash-Storage Techniques for Adaptive Multilevel Solvers and Their Domain Decomposition Parallelization

Hash-Storage Techniques for Adaptive Multilevel Solvers and Their Domain Decomposition Parallelization Contemporary Mathematics Volume 218, 1998 B 0-8218-0988-1-03018-1 Hash-Storage Techniques for Adaptive Multilevel Solvers and Their Domain Decomposition Parallelization Michael Griebel and Gerhard Zumbusch

More information

Multi-Block Gridding Technique for FLOW-3D Flow Science, Inc. July 2004

Multi-Block Gridding Technique for FLOW-3D Flow Science, Inc. July 2004 FSI-02-TN59-R2 Multi-Block Gridding Technique for FLOW-3D Flow Science, Inc. July 2004 1. Introduction A major new extension of the capabilities of FLOW-3D -- the multi-block grid model -- has been incorporated

More information

Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG

Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written

More information

Tutorial on C Language Programming

Tutorial on C Language Programming Tutorial on C Language Programming Teodor Rus [email protected] The University of Iowa, Department of Computer Science Introduction to System Software p.1/64 Tutorial on C programming C program structure:

More information

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp www.cs.illinois.edu/~wgropp

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp www.cs.illinois.edu/~wgropp Designing and Building Applications for Extreme Scale Systems CS598 William Gropp www.cs.illinois.edu/~wgropp Welcome! Who am I? William (Bill) Gropp Professor of Computer Science One of the Creators of

More information

Lecture 11 Array of Linked Lists

Lecture 11 Array of Linked Lists Lecture 11 Array of Linked Lists In this lecture Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for Sparse Matrix Exercises Solutions An Array of Linked

More information

Software Vulnerabilities

Software Vulnerabilities Software Vulnerabilities -- stack overflow Code based security Code based security discusses typical vulnerabilities made by programmers that can be exploited by miscreants Implementing safe software in

More information

Finite Elements for 2 D Problems

Finite Elements for 2 D Problems Finite Elements for 2 D Problems General Formula for the Stiffness Matrix Displacements (u, v) in a plane element are interpolated from nodal displacements (ui, vi) using shape functions Ni as follows,

More information

Elementary Name and Address. Conversions

Elementary Name and Address. Conversions Elementary Name and Address Domain name system Conversions gethostbyname Function RES_USE_INET6 resolver option gethostbyname2 Function and IPv6 support gethostbyaddr Function uname and gethostname Functions

More information

TivaWare Utilities Library

TivaWare Utilities Library TivaWare Utilities Library USER S GUIDE SW-TM4C-UTILS-UG-1.1 Copyright 2013 Texas Instruments Incorporated Copyright Copyright 2013 Texas Instruments Incorporated. All rights reserved. Tiva and TivaWare

More information

Netscape Internet Service Broker for C++ Programmer's Guide. Contents

Netscape Internet Service Broker for C++ Programmer's Guide. Contents Netscape Internet Service Broker for C++ Programmer's Guide Page 1 of 5 [Next] Netscape Internet Service Broker for C++ Programmer's Guide Nescape ISB for C++ - Provides information on how to develop and

More information

Title: Bugger The Debugger - Pre Interaction Debugger Code Execution

Title: Bugger The Debugger - Pre Interaction Debugger Code Execution White Paper Title: Bugger The Debugger Pre Interaction Debugger Code Execution Prepared by: Brett Moore Network Intrusion Specialist, CTO SecurityAssessment.com Date: April 2005 Abstract The use of debuggers

More information

OpenCV Tutorial. Part I Using OpenCV with Microsoft Visual Studio.net 2003. 28 November 2005. Gavin S Page [email protected]

OpenCV Tutorial. Part I Using OpenCV with Microsoft Visual Studio.net 2003. 28 November 2005. Gavin S Page gsp8334@cs.rit.edu OpenCV Tutorial Part I Using OpenCV with Microsoft Visual Studio.net 2003 28 November 2005 Gavin S Page OpenCV What is OpenCV? (from the documentation) OpenCV means Intel Open Source Computer Vision Library.

More information

A Client Server Transaction. Introduction to Computer Systems 15 213/18 243, fall 2009 18 th Lecture, Nov. 3 rd

A Client Server Transaction. Introduction to Computer Systems 15 213/18 243, fall 2009 18 th Lecture, Nov. 3 rd A Client Server Transaction Introduction to Computer Systems 15 213/18 243, fall 2009 18 th Lecture, Nov. 3 rd 4. Client handles response Client process 1. Client sends request 3. Server sends response

More information

Tutorial One: Calculation of leakage inductance of transformer using FEM. 31.5 MVA, 132 kv/33kv, Y/, Ampere-turns: 135024, No.

Tutorial One: Calculation of leakage inductance of transformer using FEM. 31.5 MVA, 132 kv/33kv, Y/, Ampere-turns: 135024, No. Tutorial One: Calculation of leakage inductance of transformer using FEM Consider a transformer with the following rating: 31.5 MVA, 132 kv/33kv, Y/, Ampere-turns: 135024, No. of HV turns = 980 Although

More information

Data Structures Using C++ 2E. Chapter 5 Linked Lists

Data Structures Using C++ 2E. Chapter 5 Linked Lists Data Structures Using C++ 2E Chapter 5 Linked Lists Test #1 Next Thursday During Class Cover through (near?) end of Chapter 5 Objectives Learn about linked lists Become aware of the basic properties of

More information

Debugging and Bug Tracking. Slides provided by Prof. Andreas Zeller, Universität des Saarlands http://whyprogramsfail.com

Debugging and Bug Tracking. Slides provided by Prof. Andreas Zeller, Universität des Saarlands http://whyprogramsfail.com Debugging and Bug Tracking Slides provided by Prof. Andreas Zeller, Universität des Saarlands http://whyprogramsfail.com Learning goals 1. part: Debugging Terminology o Defect o Infection o Failure Debugging

More information

Photon Mapping Made Easy

Photon Mapping Made Easy Photon Mapping Made Easy Tin Tin Yu, John Lowther and Ching Kuang Shene Department of Computer Science Michigan Technological University Houghton, MI 49931 tiyu,john,shene}@mtu.edu ABSTRACT This paper

More information

CI6227: Data Mining. Lesson 11b: Ensemble Learning. Data Analytics Department, Institute for Infocomm Research, A*STAR, Singapore.

CI6227: Data Mining. Lesson 11b: Ensemble Learning. Data Analytics Department, Institute for Infocomm Research, A*STAR, Singapore. CI6227: Data Mining Lesson 11b: Ensemble Learning Sinno Jialin PAN Data Analytics Department, Institute for Infocomm Research, A*STAR, Singapore Acknowledgements: slides are adapted from the lecture notes

More information

Help on the Embedded Software Block

Help on the Embedded Software Block Help on the Embedded Software Block Powersim Inc. 1. Introduction The Embedded Software Block is a block that allows users to model embedded devices such as microcontrollers, DSP, or other devices. It

More information

Andreas Burghart 6 October 2014 v1.0

Andreas Burghart 6 October 2014 v1.0 Yocto Qt Application Development Andreas Burghart 6 October 2014 Contents 1.0 Introduction... 3 1.1 Qt for Embedded Linux... 3 1.2 Outline... 4 1.3 Assumptions... 5 1.4 Corrections... 5 1.5 Version...

More information

CMYK 0/100/100/20 66/54/42/17 34/21/10/0 Why is R slow? How to run R programs faster? Tomas Kalibera

CMYK 0/100/100/20 66/54/42/17 34/21/10/0 Why is R slow? How to run R programs faster? Tomas Kalibera CMYK 0/100/100/20 66/54/42/17 34/21/10/0 Why is R slow? How to run R programs faster? Tomas Kalibera My Background Virtual machines, runtimes for programming languages Real-time Java Automatic memory management

More information

Big Data Analytics for SCADA

Big Data Analytics for SCADA ENERGY Big Data Analytics for SCADA Machine Learning Models for Fault Detection and Turbine Performance Elizabeth Traiger, Ph.D., M.Sc. 14 April 2016 1 SAFER, SMARTER, GREENER Points to Convey Big Data

More information

The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002. True or False (2 points each)

The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002. True or False (2 points each) True or False (2 points each) The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002 1. Using global variables is better style than using local

More information

1 3 4 = 8i + 20j 13k. x + w. y + w

1 3 4 = 8i + 20j 13k. x + w. y + w ) Find the point of intersection of the lines x = t +, y = 3t + 4, z = 4t + 5, and x = 6s + 3, y = 5s +, z = 4s + 9, and then find the plane containing these two lines. Solution. Solve the system of equations

More information

ASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters

ASCII Encoding. The char Type. Manipulating Characters. Manipulating Characters The char Type ASCII Encoding The C char type stores small integers. It is usually 8 bits. char variables guaranteed to be able to hold integers 0.. +127. char variables mostly used to store characters

More information

Programming languages C

Programming languages C INTERNATIONAL STANDARD ISO/IEC 9899:1999 TECHNICAL CORRIGENDUM 2 Published 2004-11-15 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ ORGANISATION INTERNATIONALE

More information

Secure Programming with Static Analysis. Jacob West [email protected]

Secure Programming with Static Analysis. Jacob West jacob@fortify.com Secure Programming with Static Analysis Jacob West [email protected] Software Systems that are Ubiquitous Connected Dependable Complexity U Unforeseen Consequences Software Security Today The line between

More information

Retour vers le futur des bibliothèques de squelettes algorithmiques et DSL

Retour vers le futur des bibliothèques de squelettes algorithmiques et DSL Retour vers le futur des bibliothèques de squelettes algorithmiques et DSL Sylvain Jubertie [email protected] Journée LaMHA - 26/11/2015 Squelettes algorithmiques 2 / 29 Squelettes algorithmiques

More information

Outline. Motivation. Motivation. MapReduce & GraphLab: Programming Models for Large-Scale Parallel/Distributed Computing 2/28/2013

Outline. Motivation. Motivation. MapReduce & GraphLab: Programming Models for Large-Scale Parallel/Distributed Computing 2/28/2013 MapReduce & GraphLab: Programming Models for Large-Scale Parallel/Distributed Computing Iftekhar Naim Outline Motivation MapReduce Overview Design Issues & Abstractions Examples and Results Pros and Cons

More information

iphone Objective-C Exercises

iphone Objective-C Exercises iphone Objective-C Exercises About These Exercises The only prerequisite for these exercises is an eagerness to learn. While it helps to have a background in object-oriented programming, that is not a

More information

PRESENTATION OF THE UNIVERSITY OF FEDERAL ITAJUBÁ

PRESENTATION OF THE UNIVERSITY OF FEDERAL ITAJUBÁ PRESENTATION OF THE UNIVERSITY OF FEDERAL ITAJUBÁ The Federal University of Itajubá-UNIFEI, founded on 23 November 1913, under the name of Institute of Mechanical and Electrical engineering Itajubá-IEMI,

More information

Performance of Dynamic Load Balancing Algorithms for Unstructured Mesh Calculations

Performance of Dynamic Load Balancing Algorithms for Unstructured Mesh Calculations Performance of Dynamic Load Balancing Algorithms for Unstructured Mesh Calculations Roy D. Williams, 1990 Presented by Chris Eldred Outline Summary Finite Element Solver Load Balancing Results Types Conclusions

More information

Object oriented programming. Course Objectives. On completion of the class, a student should be able: Object Oriented Paradigm

Object oriented programming. Course Objectives. On completion of the class, a student should be able: Object Oriented Paradigm Object oriented programming Course Objectives Object Oriented Paradigm C/C++ Programming Language On completion of the class, a student should be able: to prepare object-oriented design for small/medium

More information

Application Programming Using the GNOME Libraries

Application Programming Using the GNOME Libraries Application Programming Using the GNOME Libraries George Lebl The GNOME Project [email protected] Application Programming Using the GNOME Libraries by George Lebl Copyright 1999 by George Lebl In this tutorial,

More information

CSE 333 SECTION 6. Networking and sockets

CSE 333 SECTION 6. Networking and sockets CSE 333 SECTION 6 Networking and sockets Goals for Today Overview of IP addresses Look at the IP address structures in C/C++ Overview of DNS Write your own (short!) program to do the domain name IP address

More information