COSC 4397 Parallel Computation. Debugging and Performance Analysis of Parallel MPI Applications

Size: px
Start display at page:

Download "COSC 4397 Parallel Computation. Debugging and Performance Analysis of Parallel MPI Applications"

Transcription

1 COSC 4397 Parallel Computation Debugging and Performance Analysis of Parallel MPI Applications Edgar Gabriel Spring 2006 Edgar Gabriel

2 Debugging sequential applications Several ways how to debug a sequential application: printf() statements in the source code Works, works reliably, painful to remove afterwards assert() statements check for a certain value of a variable. If the expression is false, the application aborts. only active, if the macro NDEBUG is defined Setting in the source #define NDEBUG 1 Compiling with the flag DNEDBUG=1 #include <assert.h> void open_record(char *record_name) { assert (record_name!=null); Edgar Gabriel } 2

3 Using a debugger For a source file to be visible in the debugger, you have to compile the source code with the g option, e.g. gabriel@salmon>mpicc g o test test.c Avoid using optimization flags, such as O3 when you would like to debug the code Two types of debugger Command line debugger, such as gdb Graphical debuggers, such as ddd (which is a GUI to gdb) Edgar Gabriel 3

4 Load application into the debugger Start app. Show source code of app. Edgar Gabriel 4 Show the value of a variable when the problem occurred Debugger points to the problem

5 gdb commands Setting breakpoints: debugger stops execution at the specified line. Example (gdb) break errexample.c:10 (gdb) break myfunct Stepping through the source code (gdb) next (skips subroutines/functions) (gdb) step (enters subroutines/functions) Continue execution (not step by step anymore) (gdb) cont Quit debugger (gdb) quit Edgar Gabriel 5

6 Edgar Gabriel 6

7 Debugging a parallel application Some debuggers for parallel applications available (e.g. totalview, ddt) Unfortunately expensive products You can still use printf and assert Output from several processes will be mixed you should put the rank of the process in front of each printf statement gdb or ddd still useable You have to choose which process you would like to debug Please be aware, that ddd or gdb can only see processes on the local machine Edgar Gabriel 7

8 Debugging a parallel application (II) Hints for parallel debugging Try to find the lowest number of processes for which the problem still occurs Try to execute the application on a single node If the problem does not show up on a single node, you will have to run the application on multiple nodes and login to the node, where the problem occurs Introduce a sleep () statement in your application to have time to attach with a debugger Edgar Gabriel 8

9 Attaching to a process Menu File Bullet: attach to processes Choose the PID which you would like to debug Edgar Gabriel 9

10 Debugging parallel applications (III) Some MPI libraries support the startup of a debugger in the mpirun command e.g. Open MPI mpirun np 2 debug ddd colltest - Starts one ddd session per process - Not useful for large numbers of processes Edgar Gabriel 10

11 Performance Analysis of parallel applications Sometimes, it is useful to see Who is communicating with whom and how much How are the messages and the processes synchronized General approach: link a (tracing) library to your application which records per process and per MPI function when the function has been started and how long it took ( two time-stamps) Some additional information, e.g. for Send operations source and destination process, message length, communicator etc. Edgar Gabriel 11

12 Performance Analysis of parallel applications The mechanism used to do that is called MPI Profiling Interface MPI defines, that each function has to be available not only with the prefix MPI but also with the prefix PMPI e.g. instead of MPI_Send you could also call PMPI_Send, same functionality just different name Tracing libraries implement the MPI function and call internally the PMPI function for the real operation Edgar Gabriel 12

13 Profiling interface Example: an application calls MPI_Send Usual scenario: the function MPI _Send is implemented in the MPI library Profiling scenario: the function MPI_Send is implemented in the tracing library. The MPI_Send function of the tracing library calls PMPI_Send PMPI_Send is implemented in the MPI library Edgar Gabriel 13

14 Profiling interface (II) Question: How does the application now which MPI_Send function to use (e.g. from MPI library or from tracing library)? Answer: You tell the application at link-time Example: mpicc o test test.c is in reality (for Open MPI) cc o test test.c I/home/gabriel/OpenMPI/include L/home/gabriel/OpenMPI/lib lmpi lorte -lopal Edgar Gabriel 14

15 Profiling interface (III) The I option with cc: tells the compiler where to look for header files The L option tells the linker where to look for libraries Linker searcher the directories in the order as specified by the user If a function has been found in a library, the linker does not continue searching in the following libraries (usually!) Thus cc o test test.c I/home/gabriel/OpenMPI/include L/home/gabriel/OpenMPI/lib lmpi lorte -lopal will use MPI_Send from lmpi, because that s where the linker finds the function first Edgar Gabriel 15

16 Profiling interface (IV) However, cc o test test.c I/home/gabriel/OpenMPI/include -L/home/gabriel/MPE/lib llmpe lmpe L/home/gabriel/OpenMPI/lib lmpi lorte -lopal will use MPI_Send from llmpe, because that s where the linker finds the function first but PMPI_Send from lmpi, because that s where the linker finds the function first. Edgar Gabriel 16

17 Available performance analysis tools Commercials (among others) Vampir and vampirtrace Paraver and mpilog Public domain (among others) MPE and jumpshot CUBE and EPILOG Edgar Gabriel 17

18 Hints when using MPE and jumpshot When using MPE, you can use instead of the long commandline a wrapper-script called mpecc/mpef77, e.g. gabriel@linux12>mpecc mpilog o test.mpe test.c Run the application as usually gabriel@linux12>mpirun np 2./test After the run, there is file called test.mpe.clog2 in the same directory The viewer (jumpshot) unfortunately needs a different file format, so you have to convert it with gabriel@linux12>clog2toslog test.mpe.clog2 This generates a file called test.mpe.slog2 You can load an slog2 file into jumpshot Edgar Gabriel 18

19 Example of an analysis with VAMPIR (I) Timeline view see which process is at which time in which MPI function Edgar Gabriel 19

20 Example of an analysis with VAMPIR (II) Message statistics view how much data is being sent between processes Edgar Gabriel 20

21 Rules 1 st Homework Each student should deliver Source code (.c files) Documentation (.pdf,.doc,.tex or.txt file) explanations to the code answers to questions Deliver electronically to gabriel@cs.uh.edu Expected by March 27 th, 11.59pm In case of questions: ask, ask, ask! Max. number of points which can be achieved: 16pts Edgar Gabriel 21

22 Part A Proc 0 Proc 1 MPI_Send(data,size,type,1,1, ) MPI_Send(data,size,type,0,1, ) MPI_Recv(indata,size,type,1,1, ) MPI_Recv(indata,size,type,0,1, ) Above is a head to head send. This might or might not work depending on the system, the MPI implementation or other factors such as timing. Write a paragraph on why the above is an incorrect (nondeterministic) MPI code. (2 Pts) Note: you will have to read probably chapter 3.5 of the MPI-1 specification! Provide 3 different versions of the same example which correctly exchange data between two processes (hint: there are 4 simple ways) (6 Pts) Edgar Gabriel 22

23 Part B: Calculating prime numbers A prime number is a positive integer evenly divisible by exactly two positive integers: 1 and itself. Sometimes, two consecutive odd numbers are both prime numbers (e.g. 5 and 7, or 11 and 13). Write a parallel program to determine, for all integers less then 500,000,000 the number of times that two consecutive odd integers are both prime numbers. (8 Pts total, including 2 Pts for the design document) Edgar Gabriel 23

COSC 6374 Parallel Computation. Debugging MPI applications. Edgar Gabriel. Spring 2008

COSC 6374 Parallel Computation. Debugging MPI applications. Edgar Gabriel. Spring 2008 COSC 6374 Parallel Computation Debugging MPI applications Spring 2008 How to use a cluster A cluster usually consists of a front-end node and compute nodes Name of the front-end node: shark.cs.uh.edu You

More information

Performance Metrics (I)

Performance Metrics (I) COSC 6374 Parallel Computation Parallel Metrics and Debugging MPI application Edgar Gabriel Fall 2014 Performance Metrics (I) Strong Scaling: how much faster does a problem run on p processors compared

More information

COSC 6374 Parallel Computation. Analytical Modeling of Parallel Programs (I) Edgar Gabriel Fall Execution Time

COSC 6374 Parallel Computation. Analytical Modeling of Parallel Programs (I) Edgar Gabriel Fall Execution Time COSC 6374 Parallel Computation Analytical Modeling of Parallel Programs (I) Edgar Gabriel Fall 2015 Execution Time Serial runtime T s : time elapsed between beginning and the end of the execution of a

More information

COSC 6374 Parallel Computation. Edgar Gabriel Fall Each student should deliver Source code (.c file) Documentation (.pdf,.doc,.tex or.

COSC 6374 Parallel Computation. Edgar Gabriel Fall Each student should deliver Source code (.c file) Documentation (.pdf,.doc,.tex or. COSC 6374 Parallel Computation 1 st homework assignment Edgar Gabriel Fall 2015 1 st Homework Rules Each student should deliver Source code (.c file) Documentation (.pdf,.doc,.tex or.txt file) explanations

More information

Guillimin HPC Users Meeting July 14, 2016

Guillimin HPC Users Meeting July 14, 2016 Guillimin HPC Users Meeting July 14, 2016 guillimin@calculquebec.ca McGill University / Calcul Québec / Compute Canada Montréal, QC Canada Outline Compute Canada News System Status Software Updates Training

More information

Debugging with GDB and DDT

Debugging with GDB and DDT Debugging with GDB and DDT Ramses van Zon SciNet HPC Consortium University of Toronto June 28, 2012 1/41 Ontario HPC Summerschool 2012 Central Edition: Toronto Outline Debugging Basics Debugging with the

More information

DDT: A visual, parallel debugger on Ra

DDT: A visual, parallel debugger on Ra DDT: A visual, parallel debugger on Ra David M. Larue dlarue@mines.edu High Performance & Research Computing Campus Computing, Communications, and Information Technologies Colorado School of Mines March,

More information

Tool for Analysing and Checking MPI Applications

Tool for Analysing and Checking MPI Applications Tool for Analysing and Checking MPI Applications April 30, 2010 1 CONTENTS CONTENTS Contents 1 Introduction 3 1.1 What is Marmot?........................... 3 1.2 Design of Marmot..........................

More information

Testing and Debugging C Programming and Software Tools. N.C. State Department of Computer Science

Testing and Debugging C Programming and Software Tools. N.C. State Department of Computer Science Testing and Debugging C Programming and Software Tools N.C. State Department of Computer Science Introduction Majority of software development is testing, debugging, and bug fixing The best software developers

More information

Debugging with TotalView

Debugging with TotalView Debugging with TotalView Le Yan HPC Consultant User Services Goals Learn how to start TotalView on Linux clusters Get familiar with TotalView graphic user interface Learn basic debugging functions of TotalView

More information

Parallel Debugging with TotalView BSC-CNS

Parallel Debugging with TotalView BSC-CNS Parallel Debugging with TotalView BSC-CNS AGENDA What debugging means? Debugging Tools in the RES Allinea DDT as alternative (RogueWave Software) What is TotalView Compiling Your Program Starting totalview

More information

TotalView. Debugging Tool Presentation. Josip Jakić

TotalView. Debugging Tool Presentation. Josip Jakić TotalView Debugging Tool Presentation Josip Jakić josipjakic@ipb.ac.rs Agenda Introduction Getting started with TotalView Primary windows Basic functions Further functions Debugging parallel programs Topics

More information

EE 355 Lab 3 - Algorithms & Control Structures

EE 355 Lab 3 - Algorithms & Control Structures 1 Introduction In this lab you will gain experience writing C/C++ programs that utilize loops and conditional structures. This assignment should be performed INDIVIDUALLY. This is a peer evaluated lab

More information

Parallel Performance Analysis Using the Paraver Toolkit

Parallel Performance Analysis Using the Paraver Toolkit Parallel Performance Analysis Using the Paraver Toolkit Parallel Performance Analysis Using the Paraver Toolkit [16a] [16a] Slide 1 University of Stuttgart High-Performance Computing Center Stuttgart (HLRS)

More information

12. Debugging. Overview. COMP1917: Computing 1. Developing Programs. The Programming Cycle. Programming cycle. Do-it-yourself debugging

12. Debugging. Overview. COMP1917: Computing 1. Developing Programs. The Programming Cycle. Programming cycle. Do-it-yourself debugging COMP1917 12s2 Debugging 1 COMP1917: Computing 1 12. Debugging Overview Programming cycle Do-it-yourself debugging Debugging withgdb Nastier bugs Memory leaks COMP1917 12s2 Debugging 2 Developing Programs

More information

Debugging. John Lockman Texas Advanced Computing Center

Debugging. John Lockman Texas Advanced Computing Center Debugging John Lockman Texas Advanced Computing Center Debugging Outline GDB Basic use Attaching to a running job DDT Identify MPI problems using Message Queues Catch memory errors PTP For the extremely

More information

Allinea DDT Debugger. Dan Mazur, McGill HPC March 5,

Allinea DDT Debugger. Dan Mazur, McGill HPC  March 5, Allinea DDT Debugger Dan Mazur, McGill HPC daniel.mazur@mcgill.ca guillimin@calculquebec.ca March 5, 2015 1 Outline Introduction and motivation Guillimin login and DDT configuration Compiling for a debugger

More information

Binghamton University. CS-220 Spring C Debugging Basics. No relevant text

Binghamton University. CS-220 Spring C Debugging Basics. No relevant text C Debugging Basics No relevant text First Computer Bug 2 The printf debugger Insert printf statements to print debug information Build/Run Modify to print new information Advantages Simple Complete Available

More information

Welcome. HRSK Practical on Debugging, Zellescher Weg 12 Willers-Bau A106 Tel

Welcome. HRSK Practical on Debugging, Zellescher Weg 12 Willers-Bau A106 Tel Center for Information Services and High Performance Computing (ZIH) Welcome HRSK Practical on Debugging, 03.04.2009 Zellescher Weg 12 Willers-Bau A106 Tel. +49 351-463 - 31945 Matthias Lieber (matthias.lieber@tu-dresden.de)

More information

Computer Labs: Debugging

Computer Labs: Debugging Computer Labs: Debugging 2 o MIEIC Pedro F. Souto (pfs@fe.up.pt) October 29, 2012 Bugs and Debugging Problem To err is human This is specially true when the human is a programmer :( Solution There is none.

More information

Using a debugger. Segmentation fault? GDB to the rescue!

Using a debugger. Segmentation fault? GDB to the rescue! Using a debugger Segmentation fault? GDB to the rescue! But first... Let's talk about the quiz Let's talk about the previous homework assignment Let's talk about the current homework assignment K findkey(v

More information

IBM PSSC Montpellier Customer Center. Content

IBM PSSC Montpellier Customer Center. Content Content IBM PSSC Montpellier Customer Center Standard Tools Compiler Options GDB IBM System Blue Gene/P Specifics Core Files + addr2line Coreprocessor Supported Commercial Software TotalView Debugger Allinea

More information

ECE 3210 Laboratory 1: Develop an Assembly Program

ECE 3210 Laboratory 1: Develop an Assembly Program ECE 3210 Laboratory 1: Develop an Assembly Program Spring 2018 1 Objective To become familiar with the development system s software: screen editor, assembler, linker, and debugger. After finishing this

More information

Project 5 Handling Bit Arrays and Pointers in C

Project 5 Handling Bit Arrays and Pointers in C CS 255 Project 5 Handling Bit Arrays and Pointers in C Due: Thursday, Apr. 30 by 8:00am. No late submissions! Assignment: This homework is adapted from the CS450 Assignment #1 that Prof. Mandelberg uses

More information

MPI Runtime Error Detection with MUST

MPI Runtime Error Detection with MUST MPI Runtime Error Detection with MUST At the 27th VI-HPS Tuning Workshop Joachim Protze IT Center RWTH Aachen University April 2018 How many issues can you spot in this tiny example? #include #include

More information

Debugging with GDB and DDT

Debugging with GDB and DDT Debugging with GDB and DDT Ramses van Zon SciNet HPC Consortium University of Toronto June 13, 2014 1/41 Ontario HPC Summerschool 2014 Central Edition: Toronto Outline Debugging Basics Debugging with the

More information

Understanding the Program Run

Understanding the Program Run 0/45 Understanding the Program Run Andreas Zeller Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken Isolating Failure Causes 1/45 So far, we have seen how to isolate causes in the environment

More information

C++ for Everyone, 2e, Cay Horstmann, Copyright 2012 John Wiley and Sons, Inc. All rights reserved. Using a Debugger WE5.

C++ for Everyone, 2e, Cay Horstmann, Copyright 2012 John Wiley and Sons, Inc. All rights reserved. Using a Debugger WE5. Using a Debugger WE5 W o r k E D E x a m p l e 5.2 Using a Debugger As you have undoubtedly realized by now, computer programs rarely run perfectly the first time. At times, it can be quite frustrating

More information

Performance Analysis of Parallel Applications Using LTTng & Trace Compass

Performance Analysis of Parallel Applications Using LTTng & Trace Compass Performance Analysis of Parallel Applications Using LTTng & Trace Compass Naser Ezzati DORSAL LAB Progress Report Meeting Polytechnique Montreal Dec 2017 What is MPI? Message Passing Interface (MPI) Industry-wide

More information

Assignment 1: Matrix Multiplication using MPI

Assignment 1: Matrix Multiplication using MPI Assignment 1: Matrix Multiplication using MPI Problem Description In this assignment, you are supposed to calculate the product of two matrices A (of size N*32) and B (of size 32*N), which should be an

More information

Your code must have been compiled with the -g compiler option. Example:

Your code must have been compiled with the -g compiler option. Example: ddd Tips This provides some helpful information about the Unix ddd debugger. with more detailed information: There are other resources available gnu ddd manual matloff ddd information Contents Prerequisites...

More information

Debug for GDB Users. Action Description Debug GDB $debug <program> <args> >create <program> <args>

Debug for GDB Users. Action Description Debug GDB $debug <program> <args> >create <program> <args> Page 1 of 5 Debug for GDB Users Basic Control To be useful, a debugger must be capable of basic process control. This functionally allows the user to create a debugging session and instruct the process

More information

MATH 676. Finite element methods in scientific computing

MATH 676. Finite element methods in scientific computing MATH 676 Finite element methods in scientific computing Wolfgang Bangerth, Texas A&M University Lecture 41.25: Parallelization on a cluster of distributed memory machines Part 2: Debugging with MPI Debugging

More information

Chapter 12 Visual Program Debugger

Chapter 12 Visual Program Debugger Chapter 12 Visual Program Debugger In the previous chapter on programs a section titled Getting programs to do what you want discussed using the log to trace how programs execute. That is a useful technique

More information

Programming Studio #9 ECE 190

Programming Studio #9 ECE 190 Programming Studio #9 ECE 190 Programming Studio #9 Concepts: Functions review 2D Arrays GDB Announcements EXAM 3 CONFLICT REQUESTS, ON COMPASS, DUE THIS MONDAY 5PM. NO EXTENSIONS, NO EXCEPTIONS. Functions

More information

MPLAB X Debugging Techniques

MPLAB X Debugging Techniques TLS0102-001 MPLAB X Debugging Techniques The Debugging Process Author: Rob Ostapiuk, Stu Chandler Microchip Technology Objectives! Describe a generic process for debugging a program! Describe at a high

More information

To connect to the cluster, simply use a SSH or SFTP client to connect to:

To connect to the cluster, simply use a SSH or SFTP client to connect to: RIT Computer Engineering Cluster The RIT Computer Engineering cluster contains 12 computers for parallel programming using MPI. One computer, phoenix.ce.rit.edu, serves as the master controller or head

More information

The NetBeans IDE is a big file --- a minimum of around 30 MB. After you have downloaded the file, simply execute the file to install the software.

The NetBeans IDE is a big file --- a minimum of around 30 MB. After you have downloaded the file, simply execute the file to install the software. Introduction to Netbeans This document is a brief introduction to writing and compiling a program using the NetBeans Integrated Development Environment (IDE). An IDE is a program that automates and makes

More information

Performance Analysis and Debugging Tools

Performance Analysis and Debugging Tools Performance Analysis and Debugging Tools Performance analysis and debugging intimately connected since they both involve monitoring of the software execution. Just different goals: Debugging -- achieve

More information

Arrays and Pointers. CSC209: Software Tools and Systems Programming (Winter 2019) Furkan Alaca & Paul Vrbik. University of Toronto Mississauga

Arrays and Pointers. CSC209: Software Tools and Systems Programming (Winter 2019) Furkan Alaca & Paul Vrbik. University of Toronto Mississauga Arrays and Pointers CSC209: Software Tools and Systems Programming (Winter 2019) Furkan Alaca & Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Week 2 Alaca & Vrbik (UTM)

More information

Debugging. P.Dagna, M.Cremonesi. May 2015

Debugging. P.Dagna, M.Cremonesi. May 2015 Debugging P.Dagna, M.Cremonesi May 2015 Introduction Oneofthemostwidelyusedmethodstofindoutthereasonofa strange behavior in a program is the insertion of printf or write statements in the supposed critical

More information

Reviewing gcc, make, gdb, and Linux Editors 1

Reviewing gcc, make, gdb, and Linux Editors 1 Reviewing gcc, make, gdb, and Linux Editors 1 Colin Gordon csgordon@cs.washington.edu University of Washington CSE333 Section 1, 3/31/11 1 Lots of material borrowed from 351/303 slides Colin Gordon (University

More information

Message Passing Interface

Message Passing Interface MPSoC Architectures MPI Alberto Bosio, Associate Professor UM Microelectronic Departement bosio@lirmm.fr Message Passing Interface API for distributed-memory programming parallel code that runs across

More information

COSC 6374 Parallel Computation. Performance Modeling and 2 nd Homework. Edgar Gabriel. Spring Motivation

COSC 6374 Parallel Computation. Performance Modeling and 2 nd Homework. Edgar Gabriel. Spring Motivation COSC 6374 Parallel Computation Performance Modeling and 2 nd Homework Spring 2007 Motivation Can we estimate the costs for a parallel code in order to Evaluate quantitative and qualitative differences

More information

DEBUGGING: OBSERVING AND TRACKING

DEBUGGING: OBSERVING AND TRACKING DEBUGGING: OBSERVING AND TRACKING WS 2017/2018 Martina Seidl Institute for Formal Models and Verification Observing a Program deduction tells what might happen observation tells what is actually happening

More information

Distributed Memory Programming With MPI Computer Lab Exercises

Distributed Memory Programming With MPI Computer Lab Exercises Distributed Memory Programming With MPI Computer Lab Exercises Advanced Computational Science II John Burkardt Department of Scientific Computing Florida State University http://people.sc.fsu.edu/ jburkardt/classes/acs2

More information

DEBUGGING ON FERMI PREPARING A DEBUGGABLE APPLICATION GDB. GDB on front-end nodes

DEBUGGING ON FERMI PREPARING A DEBUGGABLE APPLICATION GDB. GDB on front-end nodes DEBUGGING ON FERMI Debugging your application on a system based on a BG/Q architecture like FERMI could be an hard task due to the following problems: the core files generated by a crashing job on FERMI

More information

COSC 6374 Parallel Computation. Message Passing Interface (MPI ) I Introduction. Distributed memory machines

COSC 6374 Parallel Computation. Message Passing Interface (MPI ) I Introduction. Distributed memory machines Network card Network card 1 COSC 6374 Parallel Computation Message Passing Interface (MPI ) I Introduction Edgar Gabriel Fall 015 Distributed memory machines Each compute node represents an independent

More information

SU 2017 May 18/23 LAB 3 Bitwise operations, Program structures, Functions (pass-by-value), local vs. global variables. Debuggers

SU 2017 May 18/23 LAB 3 Bitwise operations, Program structures, Functions (pass-by-value), local vs. global variables. Debuggers SU 2017 May 18/23 LAB 3 Bitwise operations, Program structures, Functions (pass-by-value), local vs. global variables. Debuggers 1. Problem A Pass-by-value, and trace a program with debugger 1.1 Specification

More information

SINGAPORE-MIT ALLIANCE GETTING STARTED ON PARALLEL PROGRAMMING USING MPI AND ESTIMATING PARALLEL PERFORMANCE METRICS

SINGAPORE-MIT ALLIANCE GETTING STARTED ON PARALLEL PROGRAMMING USING MPI AND ESTIMATING PARALLEL PERFORMANCE METRICS SINGAPORE-MIT ALLIANCE Computational Engineering CME5232: Cluster and Grid Computing Technologies for Science and Computing COMPUTATIONAL LAB NO.2 10 th July 2009 GETTING STARTED ON PARALLEL PROGRAMMING

More information

The CS-220 Development Environment

The CS-220 Development Environment The Development Environment (No relevant sections in text) Picking the right tool for the job 2 Integrated Development Environment 3 Command Line Mentality Old fashioned but surprisingly efficient (except

More information

Parallel Programming and Debugging with CUDA C. Geoff Gerfin Sr. System Software Engineer

Parallel Programming and Debugging with CUDA C. Geoff Gerfin Sr. System Software Engineer Parallel Programming and Debugging with CUDA C Geoff Gerfin Sr. System Software Engineer CUDA - NVIDIA s Architecture for GPU Computing Broad Adoption Over 250M installed CUDA-enabled GPUs GPU Computing

More information

Introduction to Problem Solving and Programming in Python.

Introduction to Problem Solving and Programming in Python. Introduction to Problem Solving and Programming in Python http://cis-linux1.temple.edu/~tuf80213/courses/temple/cis1051/ Overview Types of errors Testing methods Debugging in Python 2 Errors An error in

More information

Section 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3

Section 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3 CS162 January 19, 2017 Contents 1 Make 2 1.1 More details about Make.................................... 2 2 Git 3 2.1 Commands to know....................................... 3 3 GDB: The GNU Debugger

More information

PRACE Autumn School Basic Programming Models

PRACE Autumn School Basic Programming Models PRACE Autumn School 2010 Basic Programming Models Basic Programming Models - Outline Introduction Key concepts Architectures Programming models Programming languages Compilers Operating system & libraries

More information

SGI Altix Getting Correct Code Reiner Vogelsang SGI GmbH

SGI Altix Getting Correct Code Reiner Vogelsang SGI GmbH SGI Altix Getting Correct Code Reiner Vogelsang SGI GmbH reiner@sgi.com Module Objectives After completing the module, you will able to Find caveats and hidden errors in application codes Handle debuggers

More information

ns-3 Training Session 4: Monday 3:30pm ns-3 Annual Meeting May 2014

ns-3 Training Session 4: Monday 3:30pm ns-3 Annual Meeting May 2014 ns-3 Training Session 4: Monday 3:30pm ns-3 Annual Meeting 1 Writing and debugging your own examples NS-3 Annual Meeting 2 Writing and debugging new programs Choosing between Python and C++ Reading existing

More information

Problem Set 1: Unix Commands 1

Problem Set 1: Unix Commands 1 Problem Set 1: Unix Commands 1 WARNING: IF YOU DO NOT FIND THIS PROBLEM SET TRIVIAL, I WOULD NOT RECOMMEND YOU TAKE THIS OFFERING OF 300 AS YOU DO NOT POSSESS THE REQUISITE BACKGROUND TO PASS THE COURSE.

More information

Debugging Techniques. CEFET Engineering Week

Debugging Techniques. CEFET Engineering Week Debugging Techniques CEFET Engineering Week Petrópolis, May 10 th 2017 Luís Tarrataca 1 Luís Tarrataca CEFET Engineering Week (Luís Tarrataca 8:00): Debugging Techniques Task 1 It is expected that course

More information

HIGH PERFORMANCE SCIENTIFIC COMPUTING

HIGH PERFORMANCE SCIENTIFIC COMPUTING ( HPSC 5576 ELIZABETH JESSUP ) HIGH PERFORMANCE SCIENTIFIC COMPUTING :: Homework / 8 :: Student / Florian Rappl 1 problem / 10 points Problem 1 Task: Write a short program demonstrating the use of MPE's

More information

MPICH User s Guide Version Mathematics and Computer Science Division Argonne National Laboratory

MPICH User s Guide Version Mathematics and Computer Science Division Argonne National Laboratory MPICH User s Guide Version 3.1.4 Mathematics and Computer Science Division Argonne National Laboratory Pavan Balaji Wesley Bland William Gropp Rob Latham Huiwei Lu Antonio J. Peña Ken Raffenetti Sangmin

More information

Introduction to debugging. Martin Čuma Center for High Performance Computing University of Utah

Introduction to debugging. Martin Čuma Center for High Performance Computing University of Utah Introduction to debugging Martin Čuma Center for High Performance Computing University of Utah m.cuma@utah.edu Overview Program errors Simple debugging Graphical debugging DDT and Totalview Intel tools

More information

Scientific Programming in C IX. Debugging

Scientific Programming in C IX. Debugging Scientific Programming in C IX. Debugging Susi Lehtola 13 November 2012 Debugging Quite often you spend an hour to write a code, and then two hours debugging why it doesn t work properly. Scientific Programming

More information

Computer Labs: Debugging

Computer Labs: Debugging Computer Labs: Debugging 2 o MIEIC Pedro F. Souto (pfs@fe.up.pt) November 23, 2010 Bugs and Debugging Problem To err is human This is specially true when the human is a programmer :( Solution There is

More information

Debugging process. The debugging process can be divided into four main steps: 1. Start your program, specifying anything that might affect its

Debugging process. The debugging process can be divided into four main steps: 1. Start your program, specifying anything that might affect its Debugging Introduction One of the most widely used methods to find out the reason of a strange behavior in a program is the insertion of printf or write statements in the supposed critical area. However

More information

COSC 6385 Computer Architecture. - Homework

COSC 6385 Computer Architecture. - Homework COSC 6385 Computer Architecture - Homework Fall 2008 1 st Assignment Rules Each team should deliver Source code (.c,.h and Makefiles files) Please: no.o files and no executables! Documentation (.pdf,.doc,.tex

More information

VAMPIR & VAMPIRTRACE INTRODUCTION AND OVERVIEW

VAMPIR & VAMPIRTRACE INTRODUCTION AND OVERVIEW VAMPIR & VAMPIRTRACE INTRODUCTION AND OVERVIEW 8th VI-HPS Tuning Workshop at RWTH Aachen September, 2011 Tobias Hilbrich and Joachim Protze Slides by: Andreas Knüpfer, Jens Doleschal, ZIH, Technische Universität

More information

TOS Test Center (TTC)

TOS Test Center (TTC) TOS Arno Puder 1 Objectives Explain the TOS testing system Explain some debugging techniques when a program error typically crashes the whole system Explain symbolic debugging of TOS 2 Test Cases TOS comes

More information

Math 1125 Daily Calendar Spring 2016

Math 1125 Daily Calendar Spring 2016 Math 1125 Daily Calendar Spring 2016 Date Topic and Activity Text 1/11 1-1 correspondence, counting In Class: Shepherd s Necklace Place value 2.1 1/12 In Class: A Place of Value Place value, continued

More information

EW The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually.

EW The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually. EW 25462 The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually. EW 25460 Some objects of a struct/union type defined with

More information

We first learn one useful option of gcc. Copy the following C source file to your

We first learn one useful option of gcc. Copy the following C source file to your Lecture 5 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lab 5: gcc and gdb tools 10-Oct-2018 Location: Teaching Labs Time: Thursday Instructor: Vlado Keselj Lab 5:

More information

Debugging Applications Using Totalview

Debugging Applications Using Totalview Debugging Applications Using Totalview Timothy H. Kaiser tkaiser@sdsc.edu Slides by:nicholas J Wright First things first.. There is no point in optimising a program that has a bug in it a really fast code

More information

CSE 374 Programming Concepts & Tools. Brandon Myers Winter 2015 Lecture 11 gdb and Debugging (Thanks to Hal Perkins)

CSE 374 Programming Concepts & Tools. Brandon Myers Winter 2015 Lecture 11 gdb and Debugging (Thanks to Hal Perkins) CSE 374 Programming Concepts & Tools Brandon Myers Winter 2015 Lecture 11 gdb and Debugging (Thanks to Hal Perkins) Hacker tool of the week (tags) Problem: I want to find the definition of a function or

More information

Performance Analysis of MPI Programs with Vampir and Vampirtrace Bernd Mohr

Performance Analysis of MPI Programs with Vampir and Vampirtrace Bernd Mohr Performance Analysis of MPI Programs with Vampir and Vampirtrace Bernd Mohr Research Centre Juelich (FZJ) John von Neumann Institute of Computing (NIC) Central Institute for Applied Mathematics (ZAM) 52425

More information

Introduction to parallel computing with MPI

Introduction to parallel computing with MPI Introduction to parallel computing with MPI Sergiy Bubin Department of Physics Nazarbayev University Distributed Memory Environment image credit: LLNL Hybrid Memory Environment Most modern clusters and

More information

MUST. MPI Runtime Error Detection Tool

MUST. MPI Runtime Error Detection Tool MUST MPI Runtime Error Detection Tool November 9, 2011 1 CONTENTS CONTENTS Contents 1 Introduction 3 2 Installation 3 2.1 P n MPI................................. 4 2.2 GTI..................................

More information

FX SERIES. Programmer s Guide. Embedded SDK. MN000540A01 Rev. A

FX SERIES. Programmer s Guide. Embedded SDK. MN000540A01 Rev. A FX SERIES Embedded SDK Programmer s Guide MN000540A01 Rev. A Table of Contents About This Guide Introduction...4 Chapter Descriptions... 4 Notational Conventions...5 Related Documents and Software...5

More information

MPI Application Development with MARMOT

MPI Application Development with MARMOT MPI Application Development with MARMOT Bettina Krammer University of Stuttgart High-Performance Computing-Center Stuttgart (HLRS) www.hlrs.de Matthias Müller University of Dresden Centre for Information

More information

TUTORIAL: Quickstart with freediameter

TUTORIAL: Quickstart with freediameter 38 TUTORIAL: Quickstart with freediameter How to compile and run freediameter in a simple testbed. Tutorial: Creating a fd testbed 39 Goal : create a simple testbed Two nodes: one client, one server Run

More information

Message Passing Interface (MPI) on Intel Xeon Phi coprocessor

Message Passing Interface (MPI) on Intel Xeon Phi coprocessor Message Passing Interface (MPI) on Intel Xeon Phi coprocessor Special considerations for MPI on Intel Xeon Phi and using the Intel Trace Analyzer and Collector Gergana Slavova gergana.s.slavova@intel.com

More information

CS354 gdb Tutorial Written by Chris Feilbach

CS354 gdb Tutorial Written by Chris Feilbach CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that

More information

RVDS 4.0 Introductory Tutorial

RVDS 4.0 Introductory Tutorial RVDS 4.0 Introductory Tutorial 402v02 RVDS 4.0 Introductory Tutorial 1 Introduction Aim This tutorial provides you with a basic introduction to the tools provided with the RealView Development Suite version

More information

Basic functions of a debugger

Basic functions of a debugger UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS61B Spring 1998 P. N. Hilfinger Simple Use of GDB A debugger is a program that runs other

More information

CSCI 350 Pintos Intro. Mark Redekopp

CSCI 350 Pintos Intro. Mark Redekopp 1 CSCI 350 Pintos Intro Mark Redekopp 2 Resources Pintos Resources https://web.stanford.edu/class/cs140/projects/pintos/pintos.html#sec_top Skip Stanford related setup in section 1.1 and 1.1.1 http://bits.usc.edu/cs350/assignments/pintos_guide_2016_11_13.pdf

More information

7 Cmicro Targeting. Tutorial. Chapter

7 Cmicro Targeting. Tutorial. Chapter 7 Cmicro Targeting Tutorial This tutorial takes you through the first steps of targeting. Currently this tutorial is designed for using a Borland C or a Microsoft Visual C compiler in Windows, and gcc

More information

What s New in Platform Builder 7

What s New in Platform Builder 7 What s New in Platform Builder 7 1 What s New in Platform Builder 7 Windows Embedded Compact 7 Technical Article Writer: John Hughes Technical Reviewer: Carlos Alayo Published: March 2011 Applies To: Windows

More information

Debugging Your CUDA Applications With CUDA-GDB

Debugging Your CUDA Applications With CUDA-GDB Debugging Your CUDA Applications With CUDA-GDB Outline Introduction Installation & Usage Program Execution Control Thread Focus Program State Inspection Run-Time Error Detection Tips & Miscellaneous Notes

More information

CptS 360 (System Programming) Unit 4: Debugging

CptS 360 (System Programming) Unit 4: Debugging CptS 360 (System Programming) Unit 4: Debugging Bob Lewis School of Engineering and Applied Sciences Washington State University Spring, 2018 Motivation You re probably going to spend most of your code

More information

GDB and Makefile. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island

GDB and Makefile. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island GDB and Makefile Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island GDB Debugging: An Example #include void main() { int i; int result

More information

Intel Parallel Studio XE Cluster Edition - Intel MPI - Intel Traceanalyzer & Collector

Intel Parallel Studio XE Cluster Edition - Intel MPI - Intel Traceanalyzer & Collector Intel Parallel Studio XE Cluster Edition - Intel MPI - Intel Traceanalyzer & Collector A brief Introduction to MPI 2 What is MPI? Message Passing Interface Explicit parallel model All parallelism is explicit:

More information

Mixed-Language Debugging of projects containing C and COBOL

Mixed-Language Debugging of projects containing C and COBOL Mixed-Language Debugging of projects containing C and COBOL Net Express and other Micro Focus software development tools offer a wide range of possibilities to construct COBOL projects. Of course, programs

More information

For Distributed Performance

For Distributed Performance For Distributed Performance Intel Parallel Studio XE 2017 development suite Empowering Faster Code Faster Delivering HPC Development Solutions Over 20 years Industry Collaboration on Standards PARALLELISM

More information

Introduction to the Message Passing Interface (MPI)

Introduction to the Message Passing Interface (MPI) Introduction to the Message Passing Interface (MPI) CPS343 Parallel and High Performance Computing Spring 2018 CPS343 (Parallel and HPC) Introduction to the Message Passing Interface (MPI) Spring 2018

More information

Exercise Session 6 Computer Architecture and Systems Programming

Exercise Session 6 Computer Architecture and Systems Programming Systems Group Department of Computer Science ETH Zürich Exercise Session 6 Computer Architecture and Systems Programming Herbstsemester 2016 Agenda GDB Outlook on assignment 6 GDB The GNU Debugger 3 Debugging..

More information

Hands-on Workshop on How To Debug Codes at the Institute

Hands-on Workshop on How To Debug Codes at the Institute Hands-on Workshop on How To Debug Codes at the Institute H. Birali Runesha, Shuxia Zhang and Ben Lynch (612) 626 0802 (help) help@msi.umn.edu October 13, 2005 Outline Debuggers at the Institute Totalview

More information

CSE 303, Winter 2006, Final Examination 16 March Please do not turn the page until everyone is ready.

CSE 303, Winter 2006, Final Examination 16 March Please do not turn the page until everyone is ready. CSE 303, Winter 2006, Final Examination 16 March 2006 Please do not turn the page until everyone is ready. Rules: The exam is closed-book, closed-note, except for one side of one 8.5x11in piece of paper.

More information

Parallel Short Course. Distributed memory machines

Parallel Short Course. Distributed memory machines Parallel Short Course Message Passing Interface (MPI ) I Introduction and Point-to-point operations Spring 2007 Distributed memory machines local disks Memory Network card 1 Compute node message passing

More information

CSE 351. GDB Introduction

CSE 351. GDB Introduction CSE 351 GDB Introduction Lab 2 Out either tonight or tomorrow Due April 27 th (you have ~12 days) Reading and understanding x86_64 assembly Debugging and disassembling programs Today: General debugging

More information

Parallel Debugging. ª Objective. ª Contents. ª Learn the basics of debugging parallel programs

Parallel Debugging. ª Objective. ª Contents. ª Learn the basics of debugging parallel programs ª Objective ª Learn the basics of debugging parallel programs ª Contents ª Launching a debug session ª The Parallel Debug Perspective ª Controlling sets of processes ª Controlling individual processes

More information

DDT Debugging Techniques

DDT Debugging Techniques DDT Debugging Techniques Carlos Rosales carlos@tacc.utexas.edu Scaling to Petascale 2010 July 7, 2010 Debugging Parallel Programs Usual problems Memory access issues Special cases not accounted for in

More information