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

Size: px
Start display at page:

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

Transcription

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

2 Outline Introduction and motivation Guillimin login and DDT configuration Compiling for a debugger Launching debugging jobs Controlling program execution Stepping, breakpoints, watchpoints, tracepoints Viewing variable contents Debugging parallel programs Effective debugging strategies Practice 3

3 Why use a debugger? We want to debug efficiently to reduce the total development time: Inefficient Coding More efficient Coding Debugging Debugging Time 4

4 Why a debugger? Greatly reduces the amount of time required for debugging For some projects, the time spent debugging can be greater than the time spent coding! If you program, you should learn how to debug effectively Why not just use printf() statements? May create much more data than is useful (parallel applications) debugging is fixed at compile time frequent task switching (thinking, editing, compiling, running, repeat) might introduce bugs (constantly changing/recompiling code) might forget to remove debugging output slower (typing, compiling, runtime) misleading (buffered output, changes timing and memory) 5

5 What does it do? All symbolic debuggers have these basic features: Step through code line-by-line Inspect variables Run and pause the code according to specified conditions (e.g. line numbers, function calls, variable changes) Catches signals such as SIGSEGV (Segmentation Fault) 6

6 What does it not do? Debuggers do not: Turn defective code into working code Find or fix bugs Understand the programmers' intentions Debugger Better name: 'Program Inspector' 7

7 Exercise 1: Login and configuration Login to Guillimin with X11 forwarding $ ssh -X class##@guillimin.hpc.mcgill.ca ## same as csuser## numbers password is written on slips of paper handed out by instructor Copy the workshop materials to your home directory ~/. Load the environment modules $ cp -R /software/workshop/ddt/* $ module load DDT ifort_icc openmpi Launch DDT $ ddt & 8

8 Compiling for debuggers Most programs Binary format Optimized by compiler No longer described by original code Programs for debugging Special compiler flag (-g) Programs keep a link to their source code Debugger functions are limited without this link 9

9 Launching a Job 10

10 Launching a Job 11

11 Launching a Job 12

12 Exercise 2: Compile and launch Compile the serial program serial.c for debugging $ icc -g -o serial serial.c Launch the program in DDT with the integer argument 0 (zero) Please follow along as I discuss the various functions 13

13 Template File DDT uses a template file for job submission default: /sb/software/tools/ddt/templates/guillimin.qtf To have more control over qsub script Copy this file to your ~/.allinea directory Modify the file Point DDT to your own copy in options>job submission 14

14 Source Code Variable Monitoring File Information Execution Controls Process Focus Process Information 15

15 Breakpoints Breakpoints indicate where the program should pause execution for inspection Select a line of code, right click, select 'add breakpoint' At a certain line of code or function call Or, click on the 'add breakpoint' icon Right click on a breakpoint to select 'edit breakpoint' or 'delete breakpoint' Conditional breakpoints (break 'if' some condition) 16

16 Breakpoints Where to break? Which processes? Useful for inspecting large loops Conditional breakpoints 17

17 Watchpoints Watchpoints pause execution when a certain memory location is changed Right click on a variable in the variable monitoring area to set a watchpoint 18

18 Tracepoints Log variables without pausing execution Like printf(), but more flexible Right-click on a line of code to set Right-click again to edit or delete 19

19 Tracepoint When to log? Which processes? Which variables? Useful for inspecting large loops Conditional tracepoints 20

20 Stack Trace Displays sequence of function calls How did we get here? 21

21 Execution Controls A B C D E F G A - Play (F9), Continue until next breakpoint or pause B - Pause (F10), Interrupt program execution C - Add breakpoint D - Step into (F5), Enter next function and pause inside E - Step over (F8), Execute the next function and pause outside F - Step out (F6), Exit the current function and pause outside G - Run to line, Play but pause on a certain line 23

22 Exercise 3: Basic Functions Try each basic function at least once in serial.c and understand how it works Breakpoints Watchpoints Tracepoints Play Step into Step over Step out 24

23 Exercise 4: Inspecting Variables Compile variables.c and launch with ddt $ icc -g -o variables variables.c Inspect the contents of each variable Change the contents of one of the variables during execution (array, for example) 25

24 Exercise 4: Inspecting Variables 26

25 Exercise 4: Inspecting Variables 27

26 Exercise 4: Inspecting Variables 28

27 Exercise 4: Inspecting Variables 29

28 Exercise 4: Inspecting Variables Evaluate combinations of variables Change a variable 30

29 Exercise 5: Multithreaded Debugging Compile omp_mm.c/.f90 with openmp for debugging Launch with DDT $ icc -g -openmp -o mm omp-mm.c Make sure to select OpenMP with 4 threads 31

30 Multi-threaded Debugging 32

31 Multi-threaded Debugging Select which thread you are debugging (focus) -Variable output will be thread specific -Program execution can be per thread or all together Stack trace shows you where each thread is in the program execution 33

32 34

33 Multi-process Debugging Compile pi.c $ mpicc -g -o pi pi.c Launch in DDT with 4 mpi processes Use command line argument:

34 Process Groups Create groups of threads Step by group 36

35 Passwordless Login DDT can attach to running processes requires communication between nodes asks for password each time We will set up ssh keys to avoid the passwords 37

36 Public-key Authentication Public Key ~/.ssh/id_rsa.pub Analogous to the lock Private Key ~/.ssh/id_rsa Analogous to the key 38

37 SSH Keys Local system Remote system Step 1: On the local system, we generate a pair of keys, one private (id_rsa) and one public (id_rsa.pub). 39

38 SSH Keys Local system ~/.ssh/id_rsa ~/.ssh/id_rsa.pub Remote system Step 1: On the local system, we generate a pair of keys, one private (id_rsa) and one public (id_rsa.pub). 40

39 SSH Keys Local system ~/.ssh/id_rsa ~/.ssh/id_rsa.pub Remote system Step 1: On the local system, we generate a pair of keys, one private (id_rsa) and one public (id_rsa.pub). Step 2: We copy the public key to ~/.ssh/authorized_keys on the remote server 41

40 SSH Keys Local system ~/.ssh/id_rsa ~/.ssh/id_rsa.pub Remote system Copy ~/.ssh/authorized_keys Step 1: On the local system, we generate a pair of keys, one private (id_rsa) and one public (id_rsa.pub). Step 2: We copy the public key to ~/.ssh/authorized_keys on the remote server 42

41 SSH Keys Local system ~/.ssh/id_rsa ~/.ssh/id_rsa.pub Matching pair? Remote system ~/.ssh/authorized_keys Step 1: On the local system, we generate a pair of keys, one private (id_rsa) and one public (id_rsa.pub). Step 2: We copy the public key to ~/.ssh/authorized_keys on the remote system Step 3: For authorization, the public key on the remote system is matched against the private key on the local system to ensure they are a valid pair 43

42 SSH Keys Local system ~/.ssh/id_rsa ~/.ssh/id_rsa.pub Matching pair? Remote system ~/.ssh/authorized_keys We can send our public key to any computer we want to log in to. We do not need to keep it secret because ownership of the matching private key is needed for authentication. Use a passphrase. Otherwise, if your local system is compromised, all of your accounts on remote systems are also compromised. The private key and the passphrase are secret, like passwords. Never share your private key with anyone. 44

43 Setting up ssh keys ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/class59/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/class59/.ssh/id_rsa. Your public key has been saved in /home/class59/.ssh/id_rsa.pub. The key fingerprint is: 6a:c1:fe:42:dd:43:56:78:4c:c3:67:45:6d:69:e6:97 The key's randomart image is:... ssh-copy-id -i ~/.ssh/id_rsa.pub eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa Generate a pair (public, private) of keys Use default location Copy your public key into authorized_keys file Save your passphrase for this session Enter passphrase for /home/class59/.ssh/id_rsa: Identity added: /home/class59/.ssh/id_rsa (/home/class59/.ssh/id_rsa) [class59@lg-1r17-n01.ssh]$ ddt & 45

44 Exercise 6: Attaching Compile and launch the job mpi_hang $ mpicc -g -o mpi_hang mpi_hang.c $ qsub mpi_hang.sh Bug! This program hangs until it runs out of walltime When the job is running, put the list of nodes into ~/.allinea/nodes (e.g. JobID=123456) (Re-)launch DDT (DDT loads the node list at launch) $ ddt_gen_nodelist ddt & Select Attach to a running program Goal is to inspect the bug, actually fixing it is bonus 46

45 Exercise 6: Attaching 47

46 Exercise 6: Attaching 48

47 Exercise 6: Attaching 49

48 Exercise 6: Attaching The reason this code hangs is the line: tag = rank; rank is the MPI rank The tag must match between MPI_Send() and MPI_Recv() Both processes have sent messages and are stuck waiting in MPI_Recv() for a matching tag that will never come 50

49 Exercise 7: Signals Compile and run cstart.c on the command line $ icc -g -o cstart cstart.c $./cstart one two three Will crash (Segmentation Fault) if any of the command line arguments are: crash memcrash overflow Inspect the code for each case 51

50 Effective Debugging 0: Planning and proper development strategies (future workshop?) 1: Know exactly i) what it is supposed to do, ii) what it actually does, and iii) how you know that it is broken 2: Look for simple answers: Is your computer plugged in? turned on? Correct version? Correct input data? 3: Focus on the problem Isolate the faulty subsystem precisely Reduce the problem to the simplest possible test case 52

51 Effective Debugging 4: Scientific Method Invent a hypothesis to explain fault Design an experiment to test the hypothesis Repeat 5: Change one variable at a time (experimental controls) 6: Keep a good lab book (what results did each experiment produce?) 7: Avoid: Guesswork (do the experiments) Random trial and error Laying blame (libraries, compilers, OS, collaborators) Band-aids and workarounds Quitting as soon as its 'working' (If you didn't fix it, it isn't fixed) 53

52 MPI Debugging Common MPI Deadlocks Only one process calls a collective communication function All processes blocking receive before any process sends A message never gets sent Process tries to receive data from itself 54

53 MPI Debugging Other common MPI bugs Send/Recv type mismatch (eg. MPI_INT matched with MPI_FLOAT) Mixed-up parameters to MPI functions 55

54 MPI Debugging Collective communications are less error-prone than point-to-point Start with smallest possible number of processes (i.e. 1) and scale up slowly Start with smallest possible problem size and scale up slowly printf output is chronological for a process, but not between processes Compare sent messages and received messages 56

55 Getting Help 57

56 Exercise 8: Debugging Practice Please debug as many of the bugged practice problems as time allows If you have your own code you would like to debug, or inspect you may do that now Practice problems: InsLotsOfErrors.c ( Lnk.c ( programs in mpi_bug folder (Lawrence Livermore MPI Tutorial) programs in omp_bug folder (Lawrence Livermore OpenMP Tutorial) 58

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

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

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

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

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

STARTING THE DDT DEBUGGER ON MIO, AUN, & MC2. (Mouse over to the left to see thumbnails of all of the slides)

STARTING THE DDT DEBUGGER ON MIO, AUN, & MC2. (Mouse over to the left to see thumbnails of all of the slides) STARTING THE DDT DEBUGGER ON MIO, AUN, & MC2 (Mouse over to the left to see thumbnails of all of the slides) ALLINEA DDT Allinea DDT is a powerful, easy-to-use graphical debugger capable of debugging a

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

Supercomputing environment TMA4280 Introduction to Supercomputing

Supercomputing environment TMA4280 Introduction to Supercomputing Supercomputing environment TMA4280 Introduction to Supercomputing NTNU, IMF February 21. 2018 1 Supercomputing environment Supercomputers use UNIX-type operating systems. Predominantly Linux. Using a shell

More information

Practical Introduction to Message-Passing Interface (MPI)

Practical Introduction to Message-Passing Interface (MPI) 1 Practical Introduction to Message-Passing Interface (MPI) October 1st, 2015 By: Pier-Luc St-Onge Partners and Sponsors 2 Setup for the workshop 1. Get a user ID and password paper (provided in class):

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

What is Secure. Authenticated I know who I am talking to. Our communication is Encrypted

What is Secure. Authenticated I know who I am talking to. Our communication is Encrypted Crypto App - SSH 1 What is Secure Authenticated I know who I am talking to Our communication is Encrypted Telnet clear text Servers Terminal clear text Routers SSH encrypted channel encrypted text Servers

More information

Tutorial on MPI: part I

Tutorial on MPI: part I Workshop on High Performance Computing (HPC08) School of Physics, IPM February 16-21, 2008 Tutorial on MPI: part I Stefano Cozzini CNR/INFM Democritos and SISSA/eLab Agenda first part WRAP UP of the yesterday's

More information

Cryptography - SSH. Network Security Workshop May 2017 Phnom Penh, Cambodia

Cryptography - SSH. Network Security Workshop May 2017 Phnom Penh, Cambodia Cryptography - SSH Network Security Workshop 29-31 May 2017 Phnom Penh, Cambodia What is Safely Authentication I know who I am talking with Our communication is Encrypted Telnet Servers Terminal Routers

More information

Cryptography - SSH. Network Security Workshop. 3-5 October 2017 Port Moresby, Papua New Guinea

Cryptography - SSH. Network Security Workshop. 3-5 October 2017 Port Moresby, Papua New Guinea Cryptography - SSH Network Security Workshop 3-5 October 2017 Port Moresby, Papua New Guinea 1 What is Secure Authentication I know who I am talking to Our communication is Encrypted Telnet Servers Terminal

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

Debugging HPC Applications. David Lecomber CTO, Allinea Software

Debugging HPC Applications. David Lecomber CTO, Allinea Software Debugging HPC Applications David Lecomber CTO, Allinea Software david@allinea.com Agenda Bugs and Debugging Debugging parallel applications Debugging OpenACC and other hybrid codes Debugging for Petascale

More information

Typical Bugs in parallel Programs

Typical Bugs in parallel Programs Center for Information Services and High Performance Computing (ZIH) Typical Bugs in parallel Programs Parallel Programming Course, Dresden, 8.- 12. February 2016 Joachim Protze (protze@rz.rwth-aachen.de)

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

Cryptography Application : SSH. Cyber Security & Network Security March, 2017 Dhaka, Bangladesh

Cryptography Application : SSH. Cyber Security & Network Security March, 2017 Dhaka, Bangladesh Cryptography Application : SSH Cyber Security & Network Security 20-22 March, 2017 Dhaka, Bangladesh Issue Date: [31-12-2015] Revision: [v.1] What is Safely Authentication I am Assured of Which Host I

More information

FEPS. SSH Access with Two-Factor Authentication. RSA Key-pairs

FEPS. SSH Access with Two-Factor Authentication. RSA Key-pairs FEPS SSH Access with Two-Factor Authentication RSA Key-pairs access.eps.surrey.ac.uk Contents: Introduction - 3 RSA Key-pairs - 3 Where can I use my RSA Key-Pair? - 3 Step 1 Prepare to generate your RSA

More information

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

CS451 - Assignment 8 Faster Naive Bayes? Say it ain t so...

CS451 - Assignment 8 Faster Naive Bayes? Say it ain t so... CS451 - Assignment 8 Faster Naive Bayes? Say it ain t so... Part 1 due: Friday, Nov. 8 before class Part 2 due: Monday, Nov. 11 before class Part 3 due: Sunday, Nov. 17 by 11:50pm http://www.hadoopwizard.com/what-is-hadoop-a-light-hearted-view/

More information

ssh and handson Matsuzaki maz Yoshinobu 1

ssh and handson Matsuzaki maz Yoshinobu  1 ssh and handson Matsuzaki maz Yoshinobu maz@iij.ad.jp 1 Secure Shell (ssh) Replacement for unsecure tools/protocols rsh and telnet Usually listen on tcp/22 Whole communication is encrypted

More information

MPI Runtime Error Detection with MUST

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

More information

HPCC - Hrothgar. Getting Started User Guide TotalView. High Performance Computing Center Texas Tech University

HPCC - Hrothgar. Getting Started User Guide TotalView. High Performance Computing Center Texas Tech University HPCC - Hrothgar Getting Started User Guide TotalView High Performance Computing Center Texas Tech University HPCC - Hrothgar 2 Table of Contents *This user guide is under development... 3 1. Introduction...

More information

Debugging on Blue Waters

Debugging on Blue Waters Debugging on Blue Waters Debugging tools and techniques for Blue Waters are described here with example sessions, output, and pointers to small test codes. For tutorial purposes, this material will work

More information

Practical Introduction to Message-Passing Interface (MPI)

Practical Introduction to Message-Passing Interface (MPI) 1 Outline of the workshop 2 Practical Introduction to Message-Passing Interface (MPI) Bart Oldeman, Calcul Québec McGill HPC Bart.Oldeman@mcgill.ca Theoretical / practical introduction Parallelizing your

More information

Blue Gene/Q User Workshop. Debugging

Blue Gene/Q User Workshop. Debugging Blue Gene/Q User Workshop Debugging Topics GDB Core Files Coreprocessor 2 GNU Debugger (GDB) The GNU Debugger (GDB) The Blue Gene/Q system includes support for running GDB with applications that run on

More information

GPU Debugging Made Easy. David Lecomber CTO, Allinea Software

GPU Debugging Made Easy. David Lecomber CTO, Allinea Software GPU Debugging Made Easy David Lecomber CTO, Allinea Software david@allinea.com Allinea Software HPC development tools company Leading in HPC software tools market Wide customer base Blue-chip engineering,

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

SSH. What is Safely 6/19/ June 2018 PacNOG 22, Honiara, Solomon Islands Supported by:

SSH. What is Safely 6/19/ June 2018 PacNOG 22, Honiara, Solomon Islands Supported by: SSH 25-29 June 2018 PacNOG 22, Honiara, Solomon Islands Supported by: Issue Date: Revision: 1 What is Safely Authentication I am Assured of Which Host I am Talking With Authentication - The Host Knows

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

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

Using a Linux System 6

Using a Linux System 6 Canaan User Guide Connecting to the Cluster 1 SSH (Secure Shell) 1 Starting an ssh session from a Mac or Linux system 1 Starting an ssh session from a Windows PC 1 Once you're connected... 1 Ending an

More information

Getting Started with TotalView on Beacon

Getting Started with TotalView on Beacon Getting Started with TotalView on Beacon 1) ssh X uname@beacon.nics.utk.edu (sets x forwarding so you can use the GUI) 2) qsub X I A UT- AACE- BEACON (sets x forwarding in the interactive job) 3) compile

More information

Cryptography Application : SSH. 7 Sept 2017, Taichung, Taiwan

Cryptography Application : SSH. 7 Sept 2017, Taichung, Taiwan Cryptography Application : SSH 7 Sept 2017, Taichung, Taiwan What is Safely Authentication I am Assured of Which Host I am Talking With Authentication - The Host Knows Who I Am The Traffic is Encrypted

More information

Improving the Productivity of Scalable Application Development with TotalView May 18th, 2010

Improving the Productivity of Scalable Application Development with TotalView May 18th, 2010 Improving the Productivity of Scalable Application Development with TotalView May 18th, 2010 Chris Gottbrath Principal Product Manager Rogue Wave Major Product Offerings 2 TotalView Technologies Family

More information

Project #6: Using ssh, scp and sftp with Key-Based Authentication

Project #6: Using ssh, scp and sftp with Key-Based Authentication Project #6: Using ssh, scp and sftp with Key-Based Authentication ssh, scp and sftp Going beyond Password Protection Creating Keys Creating Keys with a Passphrase Using Key-Based Authentication in Our

More information

Debugging for the hybrid-multicore age (A HPC Perspective) David Lecomber CTO, Allinea Software

Debugging for the hybrid-multicore age (A HPC Perspective) David Lecomber CTO, Allinea Software Debugging for the hybrid-multicore age (A HPC Perspective) David Lecomber CTO, Allinea Software david@allinea.com Agenda What is HPC? How is scale affecting HPC? Achieving tool scalability Scale in practice

More information

7 The Integrated Debugger

7 The Integrated Debugger 7 The Integrated Debugger Your skill set for writing programs would not be complete without knowing how to use a debugger. While a debugger is traditionally associated with finding bugs, it can also be

More information

Siemens PLM Software. HEEDS MDO Setting up a Windows-to- Linux Compute Resource.

Siemens PLM Software. HEEDS MDO Setting up a Windows-to- Linux Compute Resource. Siemens PLM Software HEEDS MDO 2018.04 Setting up a Windows-to- Linux Compute Resource www.redcedartech.com. Contents Introduction 1 On Remote Machine B 2 Installing the SSH Server 2 Configuring the SSH

More information

A Tutorial for ECE 175

A Tutorial for ECE 175 Debugging in Microsoft Visual Studio 2010 A Tutorial for ECE 175 1. Introduction Debugging refers to the process of discovering defects (bugs) in software and correcting them. This process is invoked when

More information

Accelerate HPC Development with Allinea Performance Tools

Accelerate HPC Development with Allinea Performance Tools Accelerate HPC Development with Allinea Performance Tools 19 April 2016 VI-HPS, LRZ Florent Lebeau / Ryan Hulguin flebeau@allinea.com / rhulguin@allinea.com Agenda 09:00 09:15 Introduction 09:15 09:45

More information

Table of Contents. Table of Contents Job Manager for remote execution of QuantumATK scripts. A single remote machine

Table of Contents. Table of Contents Job Manager for remote execution of QuantumATK scripts. A single remote machine Table of Contents Table of Contents Job Manager for remote execution of QuantumATK scripts A single remote machine Settings Environment Resources Notifications Diagnostics Save and test the new machine

More information

MD Workflow Single System Tutorial (LINUX OPERATION GPU Cluster) Written by Pek Ieong

MD Workflow Single System Tutorial (LINUX OPERATION GPU Cluster) Written by Pek Ieong MD Workflow Single System Tutorial (LINUX OPERATION GPU Cluster) Written by Pek Ieong The purpose of this tutorial is to introduce the Amber GPU Molecular Dynamic (MD) Kepler workflow developed by NBCR

More information

MVAPICH MPI and Open MPI

MVAPICH MPI and Open MPI CHAPTER 6 The following sections appear in this chapter: Introduction, page 6-1 Initial Setup, page 6-2 Configure SSH, page 6-2 Edit Environment Variables, page 6-5 Perform MPI Bandwidth Test, page 6-8

More information

Probabilistic Diagnosis of Performance Faults in Large-Scale Parallel Applications

Probabilistic Diagnosis of Performance Faults in Large-Scale Parallel Applications International Conference on Parallel Architectures and Compilation Techniques (PACT) Minneapolis, MN, Sep 21th, 2012 Probabilistic Diagnosis of Performance Faults in Large-Scale Parallel Applications Ignacio

More information

Le Yan Louisiana Optical Network Initiative. 8/3/2009 Scaling to Petascale Virtual Summer School

Le Yan Louisiana Optical Network Initiative. 8/3/2009 Scaling to Petascale Virtual Summer School Parallel Debugging Techniques Le Yan Louisiana Optical Network Initiative 8/3/2009 Scaling to Petascale Virtual Summer School Outline Overview of parallel debugging Challenges Tools Strategies Gtf Get

More information

Create Test Environment

Create Test Environment Create Test Environment Describes how to set up the Trafodion test environment used by developers and testers Prerequisites Python Passwordless ssh If you already have an existing set of ssh keys If you

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

Advanced Message-Passing Interface (MPI)

Advanced Message-Passing Interface (MPI) Outline of the workshop 2 Advanced Message-Passing Interface (MPI) Bart Oldeman, Calcul Québec McGill HPC Bart.Oldeman@mcgill.ca Morning: Advanced MPI Revision More on Collectives More on Point-to-Point

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

This is a guide about using Putty on Windows with OpenSSH on Linux. You would learn about how to:

This is a guide about using Putty on Windows with OpenSSH on Linux. You would learn about how to: 1 of 7 5/16/2011 5:37 PM Submitted by: Man-wai CHANG Update by: Man-wai CHANG Date Submitted: 31 May 2006 Document Version: 1.0 Last Updated: 08/01/2010 13:48:54 Last Updated: 02/02/2008 23:46:43 This

More information

Lab6 GDB debugging. Conventions. Department of Computer Science and Information Engineering National Taiwan University

Lab6 GDB debugging. Conventions. Department of Computer Science and Information Engineering National Taiwan University Lab6 GDB debugging 1 / 15 Learn how to perform source-level debugging with GDB. 2 / 15 Host Machine OS: Windows Target Machine Raspberry Pi (2 or 3) Build Machine A computer with a SD card slot OS: Ubuntu

More information

Supplement: Visual C++ Debugging

Supplement: Visual C++ Debugging Supplement: Visual C++ Debugging For Introduction to C++ Programming By Y. Daniel Liang Note: The screen shots are taken from VC++ 2010. It is the same for the later version. 1 Introduction The debugger

More information

BR*Tools Studio 7.10 for Oracle Multi-instance Server Standalone Part 2: Server, Database Instances and their Users

BR*Tools Studio 7.10 for Oracle Multi-instance Server Standalone Part 2: Server, Database Instances and their Users BR*Tools Studio 7.10 for Oracle Multi-instance Server Standalone Part 2: Server, Database Instances and their Users Applies to: SAP BR*Tools Studio 7.10(2) for Oracle DBA on Unix/Linux with examples on

More information

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

COSC 4397 Parallel Computation. Debugging and Performance Analysis of Parallel MPI Applications COSC 4397 Parallel Computation Debugging and Performance Analysis of Parallel MPI Applications Edgar Gabriel Spring 2006 Edgar Gabriel Debugging sequential applications Several ways how to debug a sequential

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

Outline. Computer programming. Debugging. What is it. Debugging. Hints. Debugging

Outline. Computer programming. Debugging. What is it. Debugging. Hints. Debugging Outline Computer programming Debugging Hints Gathering evidence Common C errors "Education is a progressive discovery of our own ignorance." Will Durant T.U. Cluj-Napoca - Computer Programming - lecture

More information

MPI Correctness Checking with MUST

MPI Correctness Checking with MUST Center for Information Services and High Performance Computing (ZIH) MPI Correctness Checking with MUST Parallel Programming Course, Dresden, 8.- 12. February 2016 Mathias Korepkat (mathias.korepkat@tu-dresden.de

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

CS3210: Operating Systems

CS3210: Operating Systems CS3210: Operating Systems Lab 1 Tutorial 1 / 39 Lab session general structure Session A - overview presentation (30 min) Concepts, tutorial, and demo Session B - group activity (30 min) Each student will

More information

NetBeans Tutorial. For Introduction to Java Programming By Y. Daniel Liang. This tutorial applies to NetBeans 6, 7, or a higher version.

NetBeans Tutorial. For Introduction to Java Programming By Y. Daniel Liang. This tutorial applies to NetBeans 6, 7, or a higher version. NetBeans Tutorial For Introduction to Java Programming By Y. Daniel Liang This tutorial applies to NetBeans 6, 7, or a higher version. This supplement covers the following topics: Getting Started with

More information

Debugging at Scale Lindon Locks

Debugging at Scale Lindon Locks Debugging at Scale Lindon Locks llocks@allinea.com Debugging at Scale At scale debugging - from 100 cores to 250,000 Problems faced by developers on real systems Alternative approaches to debugging and

More information

Debugging. Marcelo Ponce SciNet HPC Consortium University of Toronto. July 15, /41 Ontario HPC Summerschool 2016 Central Edition: Toronto

Debugging. Marcelo Ponce SciNet HPC Consortium University of Toronto. July 15, /41 Ontario HPC Summerschool 2016 Central Edition: Toronto Debugging Marcelo Ponce SciNet HPC Consortium University of Toronto July 15, 2016 1/41 Ontario HPC Summerschool 2016 Central Edition: Toronto Outline Debugging Basics Debugging with the command line: GDB

More information

Backup and Restore Technical Note

Backup and Restore Technical Note Technical Note VERSION: 1.0 UPDATED: July 2017 Copyright Notices Copyright 2002-2017 KEMP Technologies, Inc. All rights reserved. KEMP Technologies and the KEMP Technologies logo are registered trademarks

More information

Introduction to Python for Scientific Computing

Introduction to Python for Scientific Computing 1 Introduction to Python for Scientific Computing http://tinyurl.com/cq-intro-python-20151022 By: Bart Oldeman, Calcul Québec McGill HPC Bart.Oldeman@calculquebec.ca, Bart.Oldeman@mcgill.ca Partners and

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

Practical Introduction to

Practical Introduction to 1 2 Outline of the workshop Practical Introduction to What is ScaleMP? When do we need it? How do we run codes on the ScaleMP node on the ScaleMP Guillimin cluster? How to run programs efficiently on ScaleMP?

More information

Debugging and profiling of MPI programs

Debugging and profiling of MPI programs Debugging and profiling of MPI programs The code examples: http://syam.sharcnet.ca/mpi_debugging.tgz Sergey Mashchenko (SHARCNET / Compute Ontario / Compute Canada) Outline Introduction MPI debugging MPI

More information

2-1-1 ssh Secure SHell

2-1-1 ssh Secure SHell 2-1-1 ssh Secure SHell Using Public Key Cryptography Keying, Key Exchange, and Session Setup Communicate Safely with Remote Systems What is Safely Authentication I am Assured of Which Host I am Talking

More information

Using the KD30 Debugger

Using the KD30 Debugger ELEC3730 Embedded Systems Tutorial 3 Using the KD30 Debugger 1 Introduction Overview The KD30 debugger is a powerful software tool that can greatly reduce the time it takes to develop complex programs

More information

EECS 470 Lab 4. Version Control System. Friday, 31 st January, 2014

EECS 470 Lab 4. Version Control System. Friday, 31 st January, 2014 EECS 470 Lab 4 Version Control System Department of Electrical Engineering and Computer Science College of Engineering University of Michigan Friday, 31 st January, 2014 (University of Michigan) Lab 4:

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

2-1-1 ssh Secure SHell

2-1-1 ssh Secure SHell 2-1-1 ssh Secure SHell Using Public Key Cryptography Keying, Key Exchange, and Session Setup 1 Communicate Safely with Remote Systems 2 What is Safely Authentication I am Assured of Which Host I am Talking

More information

MPI Lab. How to split a problem across multiple processors Broadcasting input to other nodes Using MPI_Reduce to accumulate partial sums

MPI Lab. How to split a problem across multiple processors Broadcasting input to other nodes Using MPI_Reduce to accumulate partial sums MPI Lab Parallelization (Calculating π in parallel) How to split a problem across multiple processors Broadcasting input to other nodes Using MPI_Reduce to accumulate partial sums Sharing Data Across Processors

More information

Preventing and Finding Bugs in Parallel Programs

Preventing and Finding Bugs in Parallel Programs Preventing and Finding Bugs in Parallel Programs Charlie Peck Earlham College BW/UPEP Institute @ NCSA May, 2011 1 How Did We Get Here? Debugging serial programs can be hard; debugging parallel programs

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

Allinea Unified Environment

Allinea Unified Environment Allinea Unified Environment Allinea s unified tools for debugging and profiling HPC Codes Beau Paisley Allinea Software bpaisley@allinea.com 720.583.0380 Today s Challenge Q: What is the impact of current

More information

Setting up a Chaincoin Masternode

Setting up a Chaincoin Masternode Setting up a Chaincoin Masternode Introduction So you want to set up your own Chaincoin Masternode? You ve come to the right place! These instructions are correct as of April, 2017, and relate to version

More information

Computing with the Moore Cluster

Computing with the Moore Cluster Computing with the Moore Cluster Edward Walter An overview of data management and job processing in the Moore compute cluster. Overview Getting access to the cluster Data management Submitting jobs (MPI

More information

Princeton University COS 217: Introduction to Programming Systems GDB Tutorial and Reference

Princeton University COS 217: Introduction to Programming Systems GDB Tutorial and Reference Princeton University COS 217: Introduction to Programming Systems GDB Tutorial and Reference Part 1: Tutorial This tutorial describes how to use a minimal subset of the gdb debugger. For more information

More information

MarketC - Masternode Setup Guide

MarketC - Masternode Setup Guide MarketC - Masternode Setup Guide Preface In this guide we will be focusing on setting up a masternode for Marketc (CMK). This guide will focus on a typical "hot node" / "cold wallet" scenario. The "hot

More information

ECE QNX Real-time Lab

ECE QNX Real-time Lab Department of Electrical & Computer Engineering Concordia University ECE QNX Real-time Lab User Guide Dan Li 9/12/2011 User Guide of ECE Real-time QNX Lab Contents 1. About Real-time QNX Lab... 2 Contacts...

More information

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial

GDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program

More information

Introduction to Linux Workshop 2. The George Washington University SEAS Computing Facility

Introduction to Linux Workshop 2. The George Washington University SEAS Computing Facility Introduction to Linux Workshop 2 The George Washington University SEAS Computing Facility Course Goals SSH and communicating with other machines Public/Private key generation,.ssh directory, and the config

More information

OBTAINING AN ACCOUNT:

OBTAINING AN ACCOUNT: HPC Usage Policies The IIA High Performance Computing (HPC) System is managed by the Computer Management Committee. The User Policies here were developed by the Committee. The user policies below aim to

More information

Using Eclipse and the

Using Eclipse and the Developing Scientific Applications Using Eclipse and the Parallel l Tools Platform Greg Watson, IBM g.watson@computer.org Beth Tibbitts, IBM tibbitts@us.ibm.com Jay Alameda, NCSA jalameda@ncsa.uiuc.edu

More information

Our new HPC-Cluster An overview

Our new HPC-Cluster An overview Our new HPC-Cluster An overview Christian Hagen Universität Regensburg Regensburg, 15.05.2009 Outline 1 Layout 2 Hardware 3 Software 4 Getting an account 5 Compiling 6 Queueing system 7 Parallelization

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

Introduction to the ITA computer system

Introduction to the ITA computer system Introduction to the ITA computer system Tiago M. D. Pereira Slides: https://folk.uio.no/tiago/teaching/unix2017 Institute of Theoretical Astrophysics Today s lecture in a nutshell 1. Network and users,

More information

Image Sharpening. Practical Introduction to HPC Exercise. Instructions for Cirrus Tier-2 System

Image Sharpening. Practical Introduction to HPC Exercise. Instructions for Cirrus Tier-2 System Image Sharpening Practical Introduction to HPC Exercise Instructions for Cirrus Tier-2 System 2 1. Aims The aim of this exercise is to get you used to logging into an HPC resource, using the command line

More information

MUST. MPI Runtime Error Detection Tool

MUST. MPI Runtime Error Detection Tool MUST MPI Runtime Error Detection Tool April 18, 2012 1 CONTENTS CONTENTS Contents 1 Introduction 3 2 Installation 3 2.1 P n MPI................................. 4 2.2 GTI..................................

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

Implementation of Parallelization

Implementation of Parallelization Implementation of Parallelization OpenMP, PThreads and MPI Jascha Schewtschenko Institute of Cosmology and Gravitation, University of Portsmouth May 9, 2018 JAS (ICG, Portsmouth) Implementation of Parallelization

More information

PROJECT INFRASTRUCTURE AND BASH INTRODUCTION MARKUS PILMAN<

PROJECT INFRASTRUCTURE AND BASH INTRODUCTION MARKUS PILMAN< PROJECT INFRASTRUCTURE AND BASH INTRODUCTION MARKUS PILMAN< MPILMAN@INF.ETHZ.CH> ORGANIZATION Tutorials on Tuesdays - Sometimes, will be announced In General: no exercise sessions (unless you get an email

More information

Configure HOSTNAME by adding the hostname to the file /etc/sysconfig/network. Do the same to all the other 3(4) nodes.

Configure HOSTNAME by adding the hostname to the file /etc/sysconfig/network. Do the same to all the other 3(4) nodes. Network setup As the root user execute the command "ifconfig" on each host. Take a note of ipaddress's of all machines I have a home LAN so my addresses are class C which might be in the format 192.168.192.x.

More information

Module 3: Working with C/C++

Module 3: Working with C/C++ Module 3: Working with C/C++ Objective Learn basic Eclipse concepts: Perspectives, Views, Learn how to use Eclipse to manage a remote project Learn how to use Eclipse to develop C programs Learn how to

More information

Code::Blocks Student Manual

Code::Blocks Student Manual Code::Blocks Student Manual Lawrence Goetz, Network Administrator Yedidyah Langsam, Professor and Theodore Raphan, Distinguished Professor Dept. of Computer and Information Science Brooklyn College of

More information

Development Tools for Parallel Computing. David Lecomber CTO, Allinea Software

Development Tools for Parallel Computing. David Lecomber CTO, Allinea Software Development Tools for Parallel Computing David Lecomber CTO, Allinea Software david@allinea.com Agenda Introduction What is HPC Bugs and Debugging Debugging parallel applications Challenges for the future

More information