Rate This Document
Findability
Accuracy
Completeness
Readability

Overview

This document uses code samples (see Table 1) to demonstrate the functions of the Compiler and Debugger and how to use the tool to debug parallel HPC applications.

Table 1 Code sample description

Tool

Scenario

Description

Code Sample

Compiler and Debugger

Sample 1: Sample 1: Parallel Debugging of MPI Applications

The Compiler and Debugger enables debugging of MPI applications in launch mode concurrently on multiple nodes in HPC scenarios. Parallel computing involves task parallelism and data parallelism. That is, different tasks are executed or different data is stored on different nodes. Currently, HPC parallel tasks support only CPU debugging.

bcast_demo.c

Sample 2: Sample 2: Parallel Debugging of Hybrid MPI/OpenMP Applications

The Compiler and Debugger enables debugging of hybrid MPI/OpenMP applications in launch mode concurrently on multiple nodes in HPC scenarios.

mpi_openmp_demo.c

Affinity Analyzer

Sample 1: 64-Bit Running Mode Check

This sample demonstrates how to use the 64-bit running mode check function of the Kunpeng DevKit Affinity Analyzer to port 32-bit applications (compiled using GCC 4.8.5 to 10.3.0) from the x86 platform to the 64-bit platform, perform the porting check, and provide modification suggestions.

Makefile

func001.c

func002.c

func003.c

func004.c

Sample 2: Byte Alignment

The tool performs the byte alignment check to check the byte alignment of the structure variables in the source code.

Makefile

bytecheck.cpp

bytecheck.hpp

Sample 3: Memory Consistency

(common, atomic, and lock protection scenarios)

This sample explains how to identify memory inconsistency issues through source code scanning, and modify the code based on the suggestions provided by the tool.

common.c

atomic.c

lock.c

Makefile