The Vibrating String

Size: px
Start display at page:

Download "The Vibrating String"

Transcription

1 CS 789 Multiprocessor Programming The Vibrating String School of Computer Science Howard Hughes College of Engineering University of Nevada, Las Vegas (c) Matt Pedersen, 200 P P2 P3 P4

2 The One-Dimensional Wave Equation The time-dependent motion of a simple vibrating string is described by the hyperbolic partial differential equation: 2 ψ c 2 t 2 2 ψ x 2 = 0 The solution ψ(x, t) is the vibration amplitude expressed as a function of position and time. The problem becomes fully posed with the addition of boundary conditions on the spatial domain, and initial position and velocity distribution. While an analytic solution may be obtained by elementary methods, we shall solve the problem by a numerical method which lends itself to a natural concurrent decomposition. This may not be the best way to solve such a simple problem, but it serves as a useful example for the solution of larger or more difficult problems that are not as amenable to analytic methods. Your program for the numerical solution of this equation will be to propose a uniform discretization of the spatial and temporal domains, and approximate the partial differential equation. by a finite difference expression. if x and t represent the space and time step size respectively, and ψ i represents the approximate solution at the i th nodal point in the spatial discretization, then the second order finite difference equation becomes: ψ i (t t) 2ψ i (t) + ψ i (t + t) c 2 t 2 ψ i (t) 2ψ i (t) + ψ i+ (t) x 2 = 0 Neglecting issues of solutions stability, the straightforward scheme for solving this system involves stepping sequentially from one time step to the next using the relation: ψ i (t + t) = 2ψ i (t) ψ(t t) + τ 2 (ψ i (t) 2ψ I (t) + ψ i+ (t)) where τ = c t/ x. As you can see from the equation, we work with a number of discrete points spaced evenly between the two endpoints of the string. The number of points should be taken in as a parameter. As we discussed in class, the easiest way to decompose this problem for parallelization is to use a master/slave approach and give each slave an equal number of points (the last or the first might get a few more or less if the number of points is not divisible by the number of processors). Looking at the equation above, we see that in order to calculate the position of point i (ψ i (t + t)) at time t + (t + t) we need the current position of point i (ψ i (t)), the position of point i at time t (t t), and the positions of the two neighbouring points at time t (ψ i (t) and ψ i+ (t)). We will keep the information about the position of the points at time t in an array called yold, the positions of the points at time t in an array called y, and then calculate the new positions at time t + in an array called ynew. We initialize both y and yold to be a simple sine function. 2 The Parallel Version We wish to implement the parallel version as a master slave system, with inter-slave communication. Here is the pseudo code for both the master and the slave:

3 2. Pseudo code for Master Decode command line parameters (*) Send parameters to slaves (*) Receive results from slaves Write result to file 2.2 Postcode for Slave Receive parameters from master (*) Set up a portion of the string (initialize x, y etc) Repeat s times: { if rank= Send right point to 2 Receive left point from 2 else if rank=n Send left point to n- Receive right point from n- else Send left point to n- Send right point to n+ Receive left point from n+ Receive right point from n-; Compute Send results back to master (*) If you want, you could compute the correct parameters in each slave and avoid some communication - that would be totally ok. 3 The Sequential Version I have written the following sequential version that you can use as a reference point. If you pick extreme values the solution can diverge and you get a strange looking result. The result should be a sine-wave with extreme values between - and. Try the following: 2

4 - "result.txt" Wave "result.txt" Wave "result.txt" Wave Each of the above results are plotted with the Gnuplot command plot [*:*] [-:] result.txt. 3

5 4 What to Do. Implement a master/slave version of the program using MPI. 2. Perform a number of parallel runs to ensure that the parallel version computes the same as the sequential version (this one is available on the webpage). 3. Measure and report speedups. 4. Briefly explain why this program is more sensitive to load difference than the processor farm implementation for Mandelbrot. 5. Suggest a way to implement this program such that load balancing is taken into account. 6. For a fixed size problem (or a reasonable size that gives runtimes around at least 2 minutes for the sequential version) use timers to measure the parts of the parallel program that cannot be parallelized (i.e., typically file IO in the master etc.) and use this time to determine the maximum speedup that you should be able to achieve. Did you get the speed up you expected? 4

6 /* Wave master.c */ #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[ ]) { int n; int nb; long double l; long double dt; 0 int steps; FILE *y file; long double *x, *y, *yold, *ynew; long double pi, tau, dx; int i,s; if (argc!= 6) { printf("usage: wave <l> <nb> <n> <steps> <dt>\n"); printf("\t l \t = Total length of the string (x-axis).\n"); printf("\t nb \t = Number of half sine waves.\n"); 20 printf("\t n \t = Number of nodes (number of discrete points on the x-axis between 0 printf("\t steps \t = Number of steps.\n"); printf("\t dt \t = Size of each step.\n%d args supplied\n",argc); exit(0); /* Get variables from commando line */ l = atof(argv[]); nb = atoi(argv[2]); n = atoi(argv[3]); 30 steps = atoi(argv[4]); dt = atof(argv[5]); /* set variables */ pi = 4.0 * atan(); dx = l/(n ); tau = 2.0*l*dt/nb/dx; /* allocate space for arrays */ x = (long double *) calloc(n,sizeof(long double)); 40 y = (long double *) calloc(n,sizeof(long double)); yold = (long double *) calloc(n,sizeof(long double)); ynew = (long double *) calloc(n,sizeof(long double)); /* initialize x-array */ 5

7 for (i=0; i<n; i++) x[i] = l*i/(n ); /* initialize y*-arrays */ for (i=0; i<n; i++) { 50 if ((i==0) (i == n )) y[i] = yold[i] = ynew[i] = 0.0; else y[i] = yold[i] = sin(pi*nb*x[i]/l); /* Perform calculations */ for (s=0; s<steps; s++) { for (i=; i<n ; i++) { ynew[i] = 2*y[i] yold[i]+tau*tau*(y[i ] 2*y[i]+y[i+]); 60 for (i=; i<n ; i++) { yold[i] = y[i]; y[i] = ynew[i]; /* Write the result to a file*/ y file = fopen("result.txt", "w" ); if (y file == (FILE *)NULL) { 70 printf("could not open output file.\n"); exit(); for (i=0; i<n; i++) fprintf(y file,"%5.9f %5.9f\n",(double)( l * i )/( n ),(double) y[i]); fclose(y file); return 0; 6

CS 789 Multiprocessor Programming. Optimizing the Sequential Mandelbrot Computation.

CS 789 Multiprocessor Programming. Optimizing the Sequential Mandelbrot Computation. CS 789 Multiprocessor Programming Optimizing the Sequential Mandelbrot Computation. School of Computer Science Howard Hughes College of Engineering University of Nevada, Las Vegas (c) Matt Pedersen, 2010

More information

Parallel Algorithms. Parallel Algorithms

Parallel Algorithms. Parallel Algorithms Parallel Algorithms Parallel Algorithms Goals: Speedup and Efficiency Speedup, in general, is limited linearly to the number of processors (P) used. When can we epect to have linear speedup? Fully (embarrassingly)

More information

Domain Decomposition: Computational Fluid Dynamics

Domain Decomposition: Computational Fluid Dynamics Domain Decomposition: Computational Fluid Dynamics December 0, 0 Introduction and Aims This exercise takes an example from one of the most common applications of HPC resources: Fluid Dynamics. We will

More information

Domain Decomposition: Computational Fluid Dynamics

Domain Decomposition: Computational Fluid Dynamics Domain Decomposition: Computational Fluid Dynamics July 11, 2016 1 Introduction and Aims This exercise takes an example from one of the most common applications of HPC resources: Fluid Dynamics. We will

More information

Advanced Operating Systems : Exam Guide. Question/Material Distribution Guide. Exam Type Questions

Advanced Operating Systems : Exam Guide. Question/Material Distribution Guide. Exam Type Questions Advanced Operating Systems 2009-2010 : Exam Guide There will be a two-hour exam, and students will be asked to attempt four questions from a choice of five. In designing the five questions I ll refer to

More information

Domain Decomposition: Computational Fluid Dynamics

Domain Decomposition: Computational Fluid Dynamics Domain Decomposition: Computational Fluid Dynamics May 24, 2015 1 Introduction and Aims This exercise takes an example from one of the most common applications of HPC resources: Fluid Dynamics. We will

More information

Raspberry Pi Basics. CSInParallel Project

Raspberry Pi Basics. CSInParallel Project Raspberry Pi Basics CSInParallel Project Sep 11, 2016 CONTENTS 1 Getting started with the Raspberry Pi 1 2 A simple parallel program 3 3 Running Loops in parallel 7 4 When loops have dependencies 11 5

More information

Post Processing, Visualization, and Sample Output

Post Processing, Visualization, and Sample Output Chapter 7 Post Processing, Visualization, and Sample Output Upon successful execution of an ADCIRC run, a number of output files will be created. Specifically which files are created depends upon how the

More information

CS 465 Networks. Disassembling Datagram Headers

CS 465 Networks. Disassembling Datagram Headers CS 465 Networks Disassembling Datagram Headers School of Computer Science Howard Hughes College of Engineering University of Nevada, Las Vegas (c) Matt Pedersen, 2006 Recall the first 5x4 octets of the

More information

OpenMP and MPI. Parallel and Distributed Computing. Department of Computer Science and Engineering (DEI) Instituto Superior Técnico.

OpenMP and MPI. Parallel and Distributed Computing. Department of Computer Science and Engineering (DEI) Instituto Superior Técnico. OpenMP and MPI Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico November 15, 2010 José Monteiro (DEI / IST) Parallel and Distributed Computing

More information

High Performance Computing Lecture 41. Matthew Jacob Indian Institute of Science

High Performance Computing Lecture 41. Matthew Jacob Indian Institute of Science High Performance Computing Lecture 41 Matthew Jacob Indian Institute of Science Example: MPI Pi Calculating Program /Each process initializes, determines the communicator size and its own rank MPI_Init

More information

OpenMP and MPI. Parallel and Distributed Computing. Department of Computer Science and Engineering (DEI) Instituto Superior Técnico.

OpenMP and MPI. Parallel and Distributed Computing. Department of Computer Science and Engineering (DEI) Instituto Superior Técnico. OpenMP and MPI Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico November 16, 2011 CPD (DEI / IST) Parallel and Distributed Computing 18

More information

Foster s Methodology: Application Examples

Foster s Methodology: Application Examples Foster s Methodology: Application Examples Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico October 19, 2011 CPD (DEI / IST) Parallel and

More information

Example problem: Solution of the 2D unsteady heat equation with restarts

Example problem: Solution of the 2D unsteady heat equation with restarts Chapter 1 Example problem: Solution of the 2D unsteady heat equation with restarts Simulations of time-dependent problem can be very time consuming and it is important to be able to restart simulations,

More information

Parallelization Strategy

Parallelization Strategy COSC 335 Software Design Parallel Design Patterns (II) Spring 2008 Parallelization Strategy Finding Concurrency Structure the problem to expose exploitable concurrency Algorithm Structure Supporting Structure

More information

518 Lecture Notes Week 3

518 Lecture Notes Week 3 518 Lecture Notes Week 3 (Sept. 15, 2014) 1/8 518 Lecture Notes Week 3 1 Topics Process management Process creation with fork() Overlaying an existing process with exec Notes on Lab 3 2 Process management

More information

CS 6400 Lecture 11 Name:

CS 6400 Lecture 11 Name: Readers and Writers Example - Granularity Issues. Multiple concurrent readers, but exclusive access for writers. Original Textbook code with ERRORS - What are they? Lecture 11 Page 1 Corrected Textbook

More information

OpenMP - exercises - Paride Dagna. May 2016

OpenMP - exercises - Paride Dagna. May 2016 OpenMP - exercises - Paride Dagna May 2016 Hello world! (Fortran) As a beginning activity let s compile and run the Hello program, either in C or in Fortran. The most important lines in Fortran code are

More information

Partitioning and Divide-and-Conquer Strategies

Partitioning and Divide-and-Conquer Strategies Chapter 4 Slide 125 Partitioning and Divide-and-Conquer Strategies Slide 126 Partitioning Partitioning simply divides the problem into parts. Divide and Conquer Characterized by dividing problem into subproblems

More information

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute Jane Li Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute (3 pts) Compare the testing methods for testing path segment and finding first

More information

Anomalies. The following issues might make the performance of a parallel program look different than it its:

Anomalies. The following issues might make the performance of a parallel program look different than it its: Anomalies The following issues might make the performance of a parallel program look different than it its: When running a program in parallel on many processors, each processor has its own cache, so the

More information

COSC 6374 Parallel Computation. Parallel Design Patterns. Edgar Gabriel. Fall Design patterns

COSC 6374 Parallel Computation. Parallel Design Patterns. Edgar Gabriel. Fall Design patterns COSC 6374 Parallel Computation Parallel Design Patterns Fall 2014 Design patterns A design pattern is a way of reusing abstract knowledge about a problem and its solution Patterns are devices that allow

More information

CS 223: Data Structures and Programming Techniques. Exam 2

CS 223: Data Structures and Programming Techniques. Exam 2 CS 223: Data Structures and Programming Techniques. Exam 2 Instructor: Jim Aspnes Work alone. Do not use any notes or books. You have approximately 75 minutes to complete this exam. Please write your answers

More information

CS 2301 Exam 3 B-Term 2011

CS 2301 Exam 3 B-Term 2011 NAME: CS 2301 Exam 3 B-Term 2011 Questions 1-3: (15) Question 4: (15) Question 5: (20) Question 6: (10) Question 7: (15) Question 8: (15) Question 9: (10) TOTAL: (100) You may refer to one sheet of notes

More information

Parallel Algorithm Design. Parallel Algorithm Design p. 1

Parallel Algorithm Design. Parallel Algorithm Design p. 1 Parallel Algorithm Design Parallel Algorithm Design p. 1 Overview Chapter 3 from Michael J. Quinn, Parallel Programming in C with MPI and OpenMP Another resource: http://www.mcs.anl.gov/ itf/dbpp/text/node14.html

More information

Partitioning and Divide-and-Conquer Strategies

Partitioning and Divide-and-Conquer Strategies Partitioning and Divide-and-Conquer Strategies Chapter 4 slides4-1 Partitioning Partitioning simply divides the problem into parts. Divide and Conquer Characterized by dividing problem into subproblems

More information

START: P0: A[] = { } P1: A[] = { } P2: A[] = { } P3: A[] = { }

START: P0: A[] = { } P1: A[] = { } P2: A[] = { } P3: A[] = { } Problem 1 (10 pts): Recall the Selection Sort algorithm. Retrieve source code for the serial version from somewhere convenient. Create a parallel version of this algorithm which is targeted at a Distributed

More information

TYPE 529: RADIANT SLAB

TYPE 529: RADIANT SLAB TYPE 529: RADIANT SLAB General Description This component is intended to model a radiant floor-heating slab, embedded in soil, and containing a number of fluid filled pipes. The heat transfer within the

More information

Dynamic memory allocation

Dynamic memory allocation Dynamic memory allocation outline Memory allocation functions Array allocation Matrix allocation Examples Memory allocation functions (#include ) malloc() Allocates a specified number of bytes

More information

Simulation Details for 2D

Simulation Details for 2D Appendix B Simulation Details for 2D In this appendix we add some details two-dimensional simulation method. The details provided here describe the method used to obtain results reported in Chapters 3

More information

Introduction to parallel computing concepts and technics

Introduction to parallel computing concepts and technics Introduction to parallel computing concepts and technics Paschalis Korosoglou (support@grid.auth.gr) User and Application Support Unit Scientific Computing Center @ AUTH Overview of Parallel computing

More information

CS 789 Multiprocessor Programming. Routing in a hyper-cube

CS 789 Multiprocessor Programming. Routing in a hyper-cube CS 789 Multiprocessor Programming Routing in a hyper-cube Department of Computer Science Howard Hughes College of Engineering University of Nevada, Las Vegas (c) Matt Pedersen, 2015 1 1 Routing in a Hyper-Cube

More information

Message-Passing Computing

Message-Passing Computing Chapter 2 Slide 41þþ Message-Passing Computing Slide 42þþ Basics of Message-Passing Programming using userlevel message passing libraries Two primary mechanisms needed: 1. A method of creating separate

More information

Example problem: Unsteady flow in a 2D channel, driven by an applied traction

Example problem: Unsteady flow in a 2D channel, driven by an applied traction Chapter 1 Example problem: Unsteady flow in a 2D channel, driven by an applied traction In this example we consider a variation of the unsteady 2D channel flow problem considered elsewhere. In the previous

More information

Parallel Programming Using MPI

Parallel Programming Using MPI Parallel Programming Using MPI Prof. Hank Dietz KAOS Seminar, February 8, 2012 University of Kentucky Electrical & Computer Engineering Parallel Processing Process N pieces simultaneously, get up to a

More information

Computer Systems Assignment 2: Fork and Threads Package

Computer Systems Assignment 2: Fork and Threads Package Autumn Term 2018 Distributed Computing Computer Systems Assignment 2: Fork and Threads Package Assigned on: October 5, 2018 Due by: October 12, 2018 1 Understanding fork() and exec() Creating new processes

More information

OpenMP. A parallel language standard that support both data and functional Parallelism on a shared memory system

OpenMP. A parallel language standard that support both data and functional Parallelism on a shared memory system OpenMP A parallel language standard that support both data and functional Parallelism on a shared memory system Use by system programmers more than application programmers Considered a low level primitives

More information

Programming Scalable Systems with MPI. Clemens Grelck, University of Amsterdam

Programming Scalable Systems with MPI. Clemens Grelck, University of Amsterdam Clemens Grelck University of Amsterdam UvA / SurfSARA High Performance Computing and Big Data Course June 2014 Parallel Programming with Compiler Directives: OpenMP Message Passing Gentle Introduction

More information

Introduction to Parallel Programming Message Passing Interface Practical Session Part I

Introduction to Parallel Programming Message Passing Interface Practical Session Part I Introduction to Parallel Programming Message Passing Interface Practical Session Part I T. Streit, H.-J. Pflug streit@rz.rwth-aachen.de October 28, 2008 1 1. Examples We provide codes of the theoretical

More information

Project 1: How to Make One Dollar

Project 1: How to Make One Dollar Project Objective: Project 1: How to Make One Dollar Posted: Wednesday February 16, 2005. Described: Thursday February 17, 2005. Due: 11:59PM, Sunday March 6, 2005. 1. get familiar with the process of

More information

OpenMP - II. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS15/16. HPAC, RWTH Aachen

OpenMP - II. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS15/16. HPAC, RWTH Aachen OpenMP - II Diego Fabregat-Traver and Prof. Paolo Bientinesi HPAC, RWTH Aachen fabregat@aices.rwth-aachen.de WS15/16 OpenMP References Using OpenMP: Portable Shared Memory Parallel Programming. The MIT

More information

OpenMP I. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS16/17. HPAC, RWTH Aachen

OpenMP I. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS16/17. HPAC, RWTH Aachen OpenMP I Diego Fabregat-Traver and Prof. Paolo Bientinesi HPAC, RWTH Aachen fabregat@aices.rwth-aachen.de WS16/17 OpenMP References Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press,

More information

Computational Photonics, Summer Term 2014, Abbe School of Photonics, FSU Jena, Prof. Thomas Pertsch

Computational Photonics, Summer Term 2014, Abbe School of Photonics, FSU Jena, Prof. Thomas Pertsch Computational Photonics Seminar 01, 14 April 2014 What is MATLAB? tool for numerical computing integrated environment for computation, visualization and programming at the same time higher level programming

More information

More about MPI programming. More about MPI programming p. 1

More about MPI programming. More about MPI programming p. 1 More about MPI programming More about MPI programming p. 1 Some recaps (1) One way of categorizing parallel computers is by looking at the memory configuration: In shared-memory systems, the CPUs share

More information

Partitioning and Divide-and-Conquer Strategies

Partitioning and Divide-and-Conquer Strategies Chapter 4 Partitioning and Divide-and-Conquer Strategies Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M. Allen,

More information

PARALLEL AND DISTRIBUTED COMPUTING

PARALLEL AND DISTRIBUTED COMPUTING PARALLEL AND DISTRIBUTED COMPUTING 2010/2011 1 st Semester Recovery Exam February 2, 2011 Duration: 2h00 - No extra material allowed. This includes notes, scratch paper, calculator, etc. - Give your answers

More information

OpenMP - exercises -

OpenMP - exercises - OpenMP - exercises - Introduction to Parallel Computing with MPI and OpenMP P.Dagna Segrate, November 2016 Hello world! (Fortran) As a beginning activity let s compile and run the Hello program, either

More information

Outline: Embarrassingly Parallel Problems

Outline: Embarrassingly Parallel Problems Outline: Embarrassingly Parallel Problems what they are Mandelbrot Set computation cost considerations static parallelization dynamic parallelizations and its analysis Monte Carlo Methods parallel random

More information

Binghamton University. CS-211 Fall Variable Scope

Binghamton University. CS-211 Fall Variable Scope Variable Scope 1 2 Scope The places in your code that can read and/or write a variable. Scope starts at the location where you declare the variable There may be holes in the scope! Scope ends at the end

More information

Outline: Embarrassingly Parallel Problems. Example#1: Computation of the Mandelbrot Set. Embarrassingly Parallel Problems. The Mandelbrot Set

Outline: Embarrassingly Parallel Problems. Example#1: Computation of the Mandelbrot Set. Embarrassingly Parallel Problems. The Mandelbrot Set Outline: Embarrassingly Parallel Problems Example#1: Computation of the Mandelbrot Set what they are Mandelbrot Set computation cost considerations static parallelization dynamic parallelizations and its

More information

OpenMP examples. Sergeev Efim. Singularis Lab, Ltd. Senior software engineer

OpenMP examples. Sergeev Efim. Singularis Lab, Ltd. Senior software engineer OpenMP examples Sergeev Efim Senior software engineer Singularis Lab, Ltd. OpenMP Is: An Application Program Interface (API) that may be used to explicitly direct multi-threaded, shared memory parallelism.

More information

Scientific Computing

Scientific Computing Lecture on Scientific Computing Dr. Kersten Schmidt Lecture 20 Technische Universität Berlin Institut für Mathematik Wintersemester 2014/2015 Syllabus Linear Regression, Fast Fourier transform Modelling

More information

vector<process*> Delete(vector<process*> DeleteQ, int ID); vector<process*> DeleteW(vector<process*> DeleteWQ, int IDW);

vector<process*> Delete(vector<process*> DeleteQ, int ID); vector<process*> DeleteW(vector<process*> DeleteWQ, int IDW); Matt Ramsay & Robert Brown CS 470 Process Management Project 2/15/02 File: main.cpp Uncommented Code: /*********************************** ** Matthew Ramsay Robert Brown ** ** CS470 Dr. Deborah Hwang **

More information

ITCS 4145/5145 Assignment 2

ITCS 4145/5145 Assignment 2 ITCS 4145/5145 Assignment 2 Compiling and running MPI programs Author: B. Wilkinson and Clayton S. Ferner. Modification date: September 10, 2012 In this assignment, the workpool computations done in Assignment

More information

CS16 Midterm Exam 1 E01, 10S, Phill Conrad, UC Santa Barbara Wednesday, 04/21/2010, 1pm-1:50pm

CS16 Midterm Exam 1 E01, 10S, Phill Conrad, UC Santa Barbara Wednesday, 04/21/2010, 1pm-1:50pm CS16 Midterm Exam 1 E01, 10S, Phill Conrad, UC Santa Barbara Wednesday, 04/21/2010, 1pm-1:50pm Name: Umail Address: @ umail.ucsb.edu Circle Lab section: 9am 10am 11am noon (Link to Printer Friendly-PDF

More information

Solutions of systems of linear equations

Solutions of systems of linear equations Class Progress Basics of Linux, gnuplot, C Visualization of numerical data Roots of nonlinear equations (Midterm ) Solutions of systems of linear equations Solutions of systems of nonlinear equations Monte

More information

Processes. CSE 2431: Introduction to Operating Systems Reading: Chap. 3, [OSC]

Processes. CSE 2431: Introduction to Operating Systems Reading: Chap. 3, [OSC] Processes CSE 2431: Introduction to Operating Systems Reading: Chap. 3, [OSC] 1 Outline What Is A Process? Process States & PCB Process Memory Layout Process Scheduling Context Switch Process Operations

More information

A New Approach to Modeling Physical Systems: Discrete Event Simulations of Grid-based Models

A New Approach to Modeling Physical Systems: Discrete Event Simulations of Grid-based Models A New Approach to Modeling Physical Systems: Discrete Event Simulations of Grid-based Models H. Karimabadi 1, Y. Omelchenko 1, J. Driscoll 1, N. Omidi 1, R. Fujimoto 2, S. Pande 2, and K. S. Perumalla

More information

CS61, Fall 2012 Section 2 Notes

CS61, Fall 2012 Section 2 Notes CS61, Fall 2012 Section 2 Notes (Week of 9/24-9/28) 0. Get source code for section [optional] 1: Variable Duration 2: Memory Errors Common Errors with memory and pointers Valgrind + GDB Common Memory Errors

More information

Parallel Numerical Algorithms

Parallel Numerical Algorithms Parallel Numerical Algorithms http://sudalabissu-tokyoacjp/~reiji/pna16/ [ 5 ] MPI: Message Passing Interface Parallel Numerical Algorithms / IST / UTokyo 1 PNA16 Lecture Plan General Topics 1 Architecture

More information

An Overview of Parallel Computing

An Overview of Parallel Computing An Overview of Parallel Computing Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS2101 Plan 1 Hardware 2 Types of Parallelism 3 Concurrency Platforms: Three Examples Cilk CUDA

More information

Master-Worker pattern

Master-Worker pattern COSC 6397 Big Data Analytics Master Worker Programming Pattern Edgar Gabriel Spring 2017 Master-Worker pattern General idea: distribute the work among a number of processes Two logically different entities:

More information

Processes. Operating System Concepts with Java. 4.1 Sana a University, Dr aimen

Processes. Operating System Concepts with Java. 4.1 Sana a University, Dr aimen Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Sana a University, Dr aimen Process Concept

More information

CS 350 : COMPUTER SYSTEM CONCEPTS SAMPLE TEST 2 (OPERATING SYSTEMS PART) Student s Name: MAXIMUM MARK: 100 Time allowed: 70 minutes

CS 350 : COMPUTER SYSTEM CONCEPTS SAMPLE TEST 2 (OPERATING SYSTEMS PART) Student s Name: MAXIMUM MARK: 100 Time allowed: 70 minutes CS 350 : COMPUTER SYSTEM CONCEPTS SAMPLE TEST 2 (OPERATING SYSTEMS PART) Student s Name: MAXIMUM MARK: 100 Time allowed: 70 minutes Q1 (30 marks) NOTE: Unless otherwise stated, the questions are with reference

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole The Process Concept 2 The Process Concept Process a program in execution Program - description of how to perform an activity instructions and static

More information

Understanding Pointers

Understanding Pointers Division of Mathematics and Computer Science Maryville College Pointers and Addresses Memory is organized into a big array. Every data item occupies one or more cells. A pointer stores an address. A pointer

More information

Computational Project

Computational Project Erin Cox 12/12/11 Phys 472 Computational Project The aim of the computational project was to find the wave functions of a complicated potential. This was to be done by numerically integrating the Schrödinger

More information

CS 322 Operating Systems Practice Midterm Questions

CS 322 Operating Systems Practice Midterm Questions ! CS 322 Operating Systems 1. Processes go through the following states in their lifetime. time slice ends Consider the following events and answer the questions that follow. Assume there are 5 processes,

More information

CS342 - Spring 2019 Project #3 Synchronization and Deadlocks

CS342 - Spring 2019 Project #3 Synchronization and Deadlocks CS342 - Spring 2019 Project #3 Synchronization and Deadlocks Assigned: April 2, 2019. Due date: April 21, 2019, 23:55. Objectives Practice multi-threaded programming. Practice synchronization: mutex and

More information

C programming for beginners

C programming for beginners C programming for beginners Lesson 2 December 10, 2008 (Medical Physics Group, UNED) C basics Lesson 2 1 / 11 Main task What are the values of c that hold bounded? x n+1 = x n2 + c (x ; c C) (Medical Physics

More information

T h e L o r e n z A t t r a c t o r I n 3 D

T h e L o r e n z A t t r a c t o r I n 3 D T h e L o r e n z A t t r a c t o r I n 3 D Images by Paul Bourke April 1997 MSWindows application by Dominic van Berkel. Listen (mov or midi) to the Lorenz attractor. The three axes are each mapped to

More information

mith College Computer Science CSC352 Week #7 Spring 2017 Introduction to MPI Dominique Thiébaut

mith College Computer Science CSC352 Week #7 Spring 2017 Introduction to MPI Dominique Thiébaut mith College CSC352 Week #7 Spring 2017 Introduction to MPI Dominique Thiébaut dthiebaut@smith.edu Introduction to MPI D. Thiebaut Inspiration Reference MPI by Blaise Barney, Lawrence Livermore National

More information

Lecture 7: More about MPI programming. Lecture 7: More about MPI programming p. 1

Lecture 7: More about MPI programming. Lecture 7: More about MPI programming p. 1 Lecture 7: More about MPI programming Lecture 7: More about MPI programming p. 1 Some recaps (1) One way of categorizing parallel computers is by looking at the memory configuration: In shared-memory systems

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole Threads & Concurrency 2 Why Use Threads? Utilize multiple CPU s concurrently Low cost communication via shared memory Overlap computation and blocking

More information

Array Initialization

Array Initialization Array Initialization Array declarations can specify initializations for the elements of the array: int primes[10] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ; initializes primes[0] to 2, primes[1] to 3, primes[2]

More information

15-440: Recitation 8

15-440: Recitation 8 15-440: Recitation 8 School of Computer Science Carnegie Mellon University, Qatar Fall 2013 Date: Oct 31, 2013 I- Intended Learning Outcome (ILO): The ILO of this recitation is: Apply parallel programs

More information

Scientific Computing (G /G ) Homework 10 example

Scientific Computing (G /G ) Homework 10 example Homework 10 example When you use the ODE solvers in MATLAB and then write scripts to automatically produce the plots, you use several pieces of software tied neatly together by a common environment. Because

More information

coe628 Final Study Guide (2017)

coe628 Final Study Guide (2017) coe628 Final Study Guide 2017 1/6 coe628 Final Study Guide (2017) Table of Contents What is a Study Guide?...1 The Questions...2 Address of global variables in forked processes...2 Memory spaces...3 Amdahl

More information

SIMULINK FOR BEGINNERS:

SIMULINK FOR BEGINNERS: 1 SIMULINK FOR BEGINNERS: To begin your SIMULINK session open first MATLAB ICON by clicking mouse twice and then type»simulink You will now see the Simulink block library. 2 Browse through block libraries.

More information

CSCI565 Compiler Design

CSCI565 Compiler Design CSCI565 Compiler Design Spring 2011 Homework 4 Solution Due Date: April 6, 2011 in class Problem 1: Activation Records and Stack Layout [50 points] Consider the following C source program shown below.

More information

Class #15: Experiment Introduction to Matlab

Class #15: Experiment Introduction to Matlab Class #15: Experiment Introduction to Matlab Purpose: The objective of this experiment is to begin to use Matlab in our analysis of signals, circuits, etc. Background: Before doing this experiment, students

More information

CS Operating Systems Lab 3: UNIX Processes

CS Operating Systems Lab 3: UNIX Processes CS 346 - Operating Systems Lab 3: UNIX Processes Due: February 15 Purpose: In this lab you will become familiar with UNIX processes. In particular you will examine processes with the ps command and terminate

More information

MATLAB. Advanced Mathematics and Mechanics Applications Using. Third Edition. David Halpern University of Alabama CHAPMAN & HALL/CRC

MATLAB. Advanced Mathematics and Mechanics Applications Using. Third Edition. David Halpern University of Alabama CHAPMAN & HALL/CRC Advanced Mathematics and Mechanics Applications Using MATLAB Third Edition Howard B. Wilson University of Alabama Louis H. Turcotte Rose-Hulman Institute of Technology David Halpern University of Alabama

More information

Introduction to Parallel and Distributed Systems - INZ0277Wcl 5 ECTS. Teacher: Jan Kwiatkowski, Office 201/15, D-2

Introduction to Parallel and Distributed Systems - INZ0277Wcl 5 ECTS. Teacher: Jan Kwiatkowski, Office 201/15, D-2 Introduction to Parallel and Distributed Systems - INZ0277Wcl 5 ECTS Teacher: Jan Kwiatkowski, Office 201/15, D-2 COMMUNICATION For questions, email to jan.kwiatkowski@pwr.edu.pl with 'Subject=your name.

More information

HW4-2. float phi[size][size]={};!

HW4-2. float phi[size][size]={};! HW 4 #include #include //atoi #include #include #include #include //timing routines #include #include #define SIZE 256 using

More information

Driven Cavity Example

Driven Cavity Example BMAppendixI.qxd 11/14/12 6:55 PM Page I-1 I CFD Driven Cavity Example I.1 Problem One of the classic benchmarks in CFD is the driven cavity problem. Consider steady, incompressible, viscous flow in a square

More information

1.2 Numerical Solutions of Flow Problems

1.2 Numerical Solutions of Flow Problems 1.2 Numerical Solutions of Flow Problems DIFFERENTIAL EQUATIONS OF MOTION FOR A SIMPLIFIED FLOW PROBLEM Continuity equation for incompressible flow: 0 Momentum (Navier-Stokes) equations for a Newtonian

More information

Parallel Programming Assignment 3 Compiling and running MPI programs

Parallel Programming Assignment 3 Compiling and running MPI programs Parallel Programming Assignment 3 Compiling and running MPI programs Author: Clayton S. Ferner and B. Wilkinson Modification date: October 11a, 2013 This assignment uses the UNC-Wilmington cluster babbage.cis.uncw.edu.

More information

Numerical methods in physics

Numerical methods in physics Numerical methods in physics Marc Wagner Goethe-Universität Frankfurt am Main summer semester 2018 Version: April 9, 2018 1 Contents 1 Introduction 3 2 Representation of numbers in computers, roundoff

More information

Parallel Programming in C with MPI and OpenMP

Parallel Programming in C with MPI and OpenMP Parallel Programming in C with MPI and OpenMP Michael J. Quinn Chapter 17 Shared-memory Programming 1 Outline n OpenMP n Shared-memory model n Parallel for loops n Declaring private variables n Critical

More information

BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT. Problem Solving with Computers-I

BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT. Problem Solving with Computers-I BOOLEAN EXPRESSIONS CONTROL FLOW (IF-ELSE) INPUT/OUTPUT Problem Solving with Computers-I Announcements HW02: Complete (individually)using dark pencil or pen, turn in during lab section next Wednesday Please

More information

Introduction to Parallel Programming

Introduction to Parallel Programming Introduction to Parallel Programming Linda Woodard CAC 19 May 2010 Introduction to Parallel Computing on Ranger 5/18/2010 www.cac.cornell.edu 1 y What is Parallel Programming? Using more than one processor

More information

1 2 (3 + x 3) x 2 = 1 3 (3 + x 1 2x 3 ) 1. 3 ( 1 x 2) (3 + x(0) 3 ) = 1 2 (3 + 0) = 3. 2 (3 + x(0) 1 2x (0) ( ) = 1 ( 1 x(0) 2 ) = 1 3 ) = 1 3

1 2 (3 + x 3) x 2 = 1 3 (3 + x 1 2x 3 ) 1. 3 ( 1 x 2) (3 + x(0) 3 ) = 1 2 (3 + 0) = 3. 2 (3 + x(0) 1 2x (0) ( ) = 1 ( 1 x(0) 2 ) = 1 3 ) = 1 3 6 Iterative Solvers Lab Objective: Many real-world problems of the form Ax = b have tens of thousands of parameters Solving such systems with Gaussian elimination or matrix factorizations could require

More information

Programming with MPI. Pedro Velho

Programming with MPI. Pedro Velho Programming with MPI Pedro Velho Science Research Challenges Some applications require tremendous computing power - Stress the limits of computing power and storage - Who might be interested in those applications?

More information

Programming with MPI on GridRS. Dr. Márcio Castro e Dr. Pedro Velho

Programming with MPI on GridRS. Dr. Márcio Castro e Dr. Pedro Velho Programming with MPI on GridRS Dr. Márcio Castro e Dr. Pedro Velho Science Research Challenges Some applications require tremendous computing power - Stress the limits of computing power and storage -

More information

Advanced Programming in Engineering Saurabh Srivastava, Thomas Weinhart Martin Robinson, and Stefan Luding MSM, CTW, UTwente, NL

Advanced Programming in Engineering Saurabh Srivastava, Thomas Weinhart Martin Robinson, and Stefan Luding MSM, CTW, UTwente, NL Advanced Programming in Engineering 2011-19115850 Saurabh Srivastava, Thomas Weinhart Martin Robinson, and Stefan Luding MSM, CTW, UTwente, NL Contents Why is this class important for me? What will I learn

More information

Error in Numerical Methods

Error in Numerical Methods Error in Numerical Methods By Brian D. Storey This section will describe two types of error that are common in numerical calculations: roundoff and truncation error. Roundoff error is due to the fact that

More information

PCAP Assignment I. 1. A. Why is there a large performance gap between many-core GPUs and generalpurpose multicore CPUs. Discuss in detail.

PCAP Assignment I. 1. A. Why is there a large performance gap between many-core GPUs and generalpurpose multicore CPUs. Discuss in detail. PCAP Assignment I 1. A. Why is there a large performance gap between many-core GPUs and generalpurpose multicore CPUs. Discuss in detail. The multicore CPUs are designed to maximize the execution speed

More information

Representation of image data

Representation of image data Representation of image data Images (e.g. digital photos) consist of a rectanglular array of discrete picture elements called pixels. An image consisting of 200 pixels rows of 300 pixels per row contains

More information