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. |