我要评分
获取效率
正确性
完整性
易理解

Glossary

A

Annotation

Annotations are introduced into the Java language with JDK 1.5. They give you the ability to provide additional metadata alongside a Java entity (such as classes, interfaces, and enumerations). Annotations can be declared before packages, classes, fields, methods, local variables, and method parameters to describe and comment on these elements.

B

basic input/output system

The basic input/output system (BIOS) is a relatively small program that resides in programmable, non-volatile memory on a server or server device and that is responsible for booting the device and performing certain operating system–independent I/O operations.

BiSheng Compiler

The BiSheng Compiler is a high-performance compiler developed based on the open source LLVM and optimized for the Kunpeng platform. It uses Flang as the default frontend compiler for the Fortran language.

BiSheng JDK

Based on OpenJDK, the BiSheng JDK is a high-performance OpenJDK release that can be used in production environments. With the accumulation of extensive application scenarios and feedback from Java developers, it addresses various challenges encountered during service running. Additionally, it has been optimized specifically for the Arm architecture.

Build affinity

A feature of the Kunpeng DevKit Affinity Analyzer. It analyzes the content in Makefile and CMakeLists.txt that can be replaced with content in the Kunpeng library, and provides replacement suggestions and function repair.

Byte alignment check

A feature of the Kunpeng DevKit Affinity Analyzer. It checks the structure variables in the user software, analyzes the memory allocation, and provides feedback to the user.

C

Cache line alignment check

A feature of the Kunpeng DevKit Affinity Analyzer. It checks the 128-byte alignment of structure variables in the C/C++ source code to improve memory access performance.

Calculation precision analysis

A feature of the Kunpeng DevKit Affinity Analyzer. It locates the precision differences of the Fortran, C, and C++ languages caused by x86 and Kunpeng instructions.

CMakeLists

Configuration file of the software build tool CMake. This configuration file defines the software compilation process.

Compute Unified Device Architecture

Compute Unified Device Architecture (CUDA) introduced by NVIDIA is a general purpose parallel computing platform and programming model that leverages the parallel compute engine in NVIDIA GPUs to solve many complex computational problems in a more efficient way than on a CPU.

CPI

Ratio of CPU cycles/Retired instructions, which indicates the clock cycle consumed by each instruction.

client application

A client application (CA) is an application that works with trusted applications (TAs) in a rich execution environment (REE) and is responsible for external communication.

CUDA-GDB

CUDA-GDB is the NVIDIA tool for debugging CUDA applications running on Linux and QNX. CUDA-GDB is an extension to GDB, the GNU Project debugger. CUDA-GDB delivers a seamless debugging experience that allows developers to debug both the CPU and GPU portions of an application simultaneously.

cuda-gdbserver

cuda-gdbserver is a control program for Unix-like systems, which is installed on the to-be-debugged node and allows you to connect your program with CUDA-GDB.

CUDA information

CUDA information displayed during CUDA program debugging.

CUDA Toolkit

CUDA Toolkit consists of all CUDA tools delivered by NVIDIA.

D

Data Processing & Acceleration Kit

The Kunpeng Data Processing & Acceleration Kit (DPAK) provides a unified software framework for data processing units (DPUs) and SmartNICs. With the Kunpeng DPAK, Huawei will cooperate with users and peer vendors to build a complete software ecosystem. DPAK applications are scenario-specific samples provided by the Development Assistant.

DDR

Double Data Rate (DDR) is a type of memory technology that transfers data on both the rising and falling edges of a clock signal. This doubles the memory bandwidth and increases the speed of data transfer.

Docker

Docker is an open source containerization platform. It enables developers to package applications into containers—standardized executable components that combine application source code with all the OS libraries and dependencies required to run the code in any environment. Containers use the sandbox mechanism, which eliminates interface between containers.

E

eBPF

Extended Berkeley Packet Filter (eBPF) is a kernel technology that lets programs run without need to modify the kernel source code.

F

flame graph

Flame graphs, introduced by Brendan Gregg, are a visualization of hierarchical data, created to visualize stack traces of profiled software so that the most frequent code-paths to be identified quickly and accurately.

G

garbage collection

Garbage collection (GC) is process of reclaiming the runtime unused memory automatically. In other words, it is a way to destroy the unused objects.

GCC for openEuler

GCC for openEuler is a high-performance compiler for Kunpeng 920 processors in Linux. It is developed based on open source GCC 10.3. It has optimizations in software and hardware collaboration, and explores the ultimate performance in fields such as OpenMP, Scalable Vector Extension (SVE) vectorization, and math libraries.

GDB

GDB is the GNU Project debugger that allows you to see what is going on inside another program while it executes or what another program was doing at the moment it crashed.

gdbserver

gdbserver is a control program for Unix-like systems, which is installed on the to-be-debugged node and allows you to connect your program with GDB.

glibc

The GNU C Library (glibc) is the GNU Project's implementation of the C standard library.

H

high-performance computing

High-performance computing (HPC) is a computer cluster system that connects computer systems using interconnection technologies. It relies on the integrated compute capability of all the connected systems to execute computing tasks at scale. For this reason, HPC is also often referred to as an HPC cluster.

Hypertext Transfer Protocol Secure

Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It uses encryption for secure communication over a computer network, and is widely used on the Internet.

Hyper MPI

Based on Open MPI 4.1.1 and Open UCX 1.10.1, Hyper MPI supports parallel computing APIs of the MPI-3.1 standard, and optimizes the collection communication framework.

I

instructions per cycle

Instructions per cycle (IPC) is the average number of instructions executed by a CPU in each clock cycle. It reflects the smoothness of CPU execution. If a four-transmitter Kunpeng 920 processor executes four instructions in each clock cycle when its pipeline operates in full load, the IPC is 4.0. An IPC value closer to 4.0 indicates that the program uses the processor features to a greater extent.

instrumentation

In program development, instrumentation refers to inserting extra logic (such as logging, performance statistics, and debugging information) into code to detect, debug, or analyze program running behavior without changing original functions.

interrupt

A temporary suspension of a process. The computer suspends one activity in case of an exception and starts processing another activity. The computer resumes the interrupted activity after completing the other activity.

iTrustee SDK

The software development kit for trusted applications (TAs) and client applications (CAs), including the basic rsa-demo and secstorage-demo source code.

J

Java Development Kit

Java Development Kit (JDK) is a software development kit in Java. It is mainly used by Java applications on mobile devices and embedded devices. JDK is the core of Java development. It contains the Java Runtime Environment (JVM + Java system class libraries) and Java tools.

Java Virtual Machine

A virtual machine capable of running Java bytecode, implemented as a stack machine. It is a part of the Java platform and can run software programs written in Java. The JVM has a comprehensive hardware architecture, including processors, stacks, and registers, along with corresponding instruction sets.

K

key

A key is a parameter that is entered when converting plaintext into ciphertext or ciphertext into plaintext. Keys are classified into symmetric keys and asymmetric keys.

Kunpeng Math Library

The Kunpeng Math Library (KML) provides high-performance mathematical functions which are optimized based on the Kunpeng platform. All interfaces are implemented by C/C++ and assembly languages. Some interfaces are compatible with Fortran, and some interfaces are encapsulated using Java.

M

makefile

Configuration file of the software build tool Make. This configuration file defines the software compilation process.

matricization check

A feature of the Kunpeng DevKit Affinity Analyzer. It checks matricizable source code snippets and provides modification suggestions.

memory consistency check

A feature of the Kunpeng DevKit Affinity Analyzer. It checks for memory inconsistency issues in C/C++ source code running on the Kunpeng platform and provides check results and suggestions for inserting memory barriers.

N

non-uniform memory access

Non-uniform memory access (NUMA) is a CPU architecture that consists of multiple CPU modules. Each CPU module consists of multiple CPUs (for example, four CPUs) and has its independent local memory and I/O slots. The nodes in the NUMA can be connected and exchange information by using an interconnect module, enabling each CPU to access the memory of the entire system.

O

Open vSwitch

Open vSwitch (OVS) is an open source, industrial-grade multi-layer virtual switch software.

P

passphrase

It is used when generating a key.

Perf

perf is a performance profiling tool built in the Linux kernel source code tree. Based on the event sampling principle and performance events, perf analyzes performance metrics related to processors and operating systems. It can be used to locate performance bottlenecks and hotspot code.

PMU event

A group of data provided by the Performance Monitor Unit (PMU) and CPU hardware unit that reflects the performance of a processor.

private key

A private key is the secret key used to encrypt and decrypt messages between communicators. It is a form of symmetric encryption, for the same key is utilized for both encryption and decryption purposes. Private keys must be protected from being obtained by unauthorized agents.

profile-guided optimization

Profile-guided optimization (PGO) improves application performance by reducing cache-thrashing, reorganizing code layout, reducing code length, and reducing branch mispredictions.

process identifier

A process identifier (PID) is a unique number to identify each process running in an operating system. It is allocated by the operating system when the process is running and does not represent a fixed process.

PS

Parallel Scavenge (PS) is a throughput-first garbage collector for Java programs and has adaptive adjustment policies.

public key

During login to a Linux OS through SSH, an SSH key pair will be generated on the client and uploaded to the target server. Each key pair consists of a public key and a private key. The associated public key can be shared freely without any negative consequences.

PuTTY

PuTTY is a connection tool supporting Telnet, SSH, rlogin, pure TCP, and serial ports.

R

Remote Direct Memory Access

Remote Direct Memory Access (RDMA) is a function that enables a computer to directly transmit data to the memory of another computer over a network.

rich execution environment

A rich execution environment (REE) refers to a standard operating system that a device is running. Compared with a trusted execution environment (TEE), an REE is a traditional server running environment.

Rivest-Shamir-Adleman

Rivest-Shamir-Adleman (RSA) is an asymmetric cryptographic algorithm.

rollback

Rollback is a return to a prior state by undoing the last operation or a series of operations under a certain condition (for example, a given period of time).

S

SME

Scalable Matrix Extension (SME) introduces a dedicated scalable matrix register based on SVE, enabling more efficient execution of core computations such as matrix multiplication through outer-product operations.

SVE

Scalable Vector Extension (SVE) is a vector-length-agnostic SIMD instruction set that allows the same code to automatically achieve optimal performance on Arm processors with different vector widths.

secure computing

Secure computing is a technology where data is processed confidentially. Secure computing projects (including CA and TA projects) are built based on TrustZone.

Secure Shell

Secure Shell (SSH) is set up by the Network Working Group of the Internet Engineering Task Force (IETF). It is an application layer protocol.

serialization

Serialization is the process of translating a data structure or an object state into a format that can be stored (for example, files in secondary storage devices and data buffers in primary storage devices) or transmitted (for example, data streams over computer networks) and reconstructed later (possibly in a different computer environment).

server

A server is a computer program that provides resources and services to another computer program, also known as the client.

SFTP

Secure File Transfer Protocol (SFTP) enables secure and encrypted file transfers between a client and a server.

64-bit running mode check

A feature of the Kunpeng Affinity Analyzer. It checks C/C++ software for porting software from 32-bit to 64-bit mode. The Kunpeng Affinity Analyzer compiles software in 64-bit mode and provides modification suggestions for the porting.

snapshot

A fast memory read technology based on hardware programming technologies.

SO dependency library

Linux shared object (SO) file, whose name is similar to libname.so.1.1.1.

soft link

A soft link, also called a symbolic link, is a file whose purpose is to point to a file or directory (called the "target") in various file systems by specifying a path thereto.

software development kit

A software development kit (SDK) is a set of software development tools for software engineers to create application software for specific software packages, software frames, hardware platforms, and OSs. Generally, an SDK refers to the SDK used to develop application programs running on Windows. An SDK provides API files for a programming language and may also provide hardware that communicates with an embedded system.

Software porting assessment

A feature of the Kunpeng DevKit Porting Advisor. It analyzes the SO library files in a software package installation path in the x86 environment and checks whether these files are compatible with the Kunpeng platform.

Source code porting

A feature of the Kunpeng DevKit Porting Advisor. It analyzes the portability of software written in C/C++/ASM/Fortran/Go/interpreted languages.

SSL certificate

A Secure Sockets Layer (SSL) certificate is an SSL-compliant digital certificate issued by a trusted root certificate authority.

Statistical Profiling Extensions

Statistical Profiling Extensions (SPE) is a mechanism provided by Arm, which uses random sampling to dynamically analyze programs.

T

Transmission Control Protocol

In Transmission Control Protocol/Internet Protocol (TCP/IP), a protocol used to break down data information into packets and send them over the IP protocol. The packets received via the IP protocol are checked and reassembled into complete information. TCP is a connection-oriented reliable protocol that ensures error-free transmission of information. It corresponds to the transport layer in the ISO/OSI benchmark model.

trusted application

A trusted application (TA) is an application deployed in a trusted execution environment (TEE) to process confidential data in the TEE. It works with client applications (CAs).

trusted execution environment

A trusted execution environment (TEE) is a hardware security feature that is isolated from a normal operating system, for example, a rich execution environment (REE).

TrustZone

The Kunpeng BoostKit for Confidential Computing TrustZone Kit offers the TrustZone feature based on the Kunpeng processor architecture. The time division multiplexing technology is used to distinguish the operating status of CPUs. Two independent environments (rich execution environment and trusted execution environment) are distinguished on the same hardware system.

U

unit test

A way of testing the smallest piece of code that can be logically isolated in a software application.

User Datagram Protocol

The User Datagram Protocol (UDP) is a standard TCP/IP protocol that allows an application program on one end to send datagrams to an application program on the other end.

UT generator

An automatic Java unit test generation tool designed for Maven and Gradle projects. As a plugin of IntelliJ IDEA, UTgen provides unit test case generation support with out-of-the-box availability.

V

Vectorization check

A feature of the Kunpeng DevKit Affinity Analyzer. It checks vectorizable source code snippets and provides modification suggestions.

virtualization

A technology that virtualizes a physical computer into multiple logical computers, which reside on the same physical computer. The OSs running on these logical computers can be different, and the applications running on these OSs work independently from each other. Therefore, the working efficiency of the physical computer is significantly improved.

W

weak password

A weak password can be easily guessed or cracked.