---
title: OpenMP线程核绑定
description: "绝大多数HPC应用程序属于CPU计算密集型，对CPU的资源占用会长期处于100%状态，计算程序的进程或线程在不同核上的调度会导致性能下降。因此建议将线程与核绑定，并且计算线程总数不要超过节点的CPU核总数。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/tngg/kunpenghpcsolution_05_0025.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/tngg/kunpenghpcsolution_05_0025.html
indexId: cbe885f8d1d41c9a47fcbd0c6388e8e05eaff1eee07d8be2f054f209b5b5339169
---
# OpenMP线程核绑定

#### 原理

绝大多数HPC应用程序属于CPU计算密集型，对CPU的资源占用会长期处于100%状态，计算程序的进程或线程在不同核上的调度会导致性能下降。因此建议将线程与核绑定，并且计算线程总数不要超过节点的CPU核总数。


#### 使用方法

执行以下命令将OpenMP线程绑定到核。
```
e
xport OMP_PROC_BIND=true
```


也可以设置环境变量GOMP_CPU_AFFINITY控制线程绑定在哪些核上。具体可以参考GNU编译器手册中对OpenMP环境变量的使用(https://gcc.gnu.org/onlinedocs/libgomp/GOMP_005fCPU_005fAFFINITY.html#GOMP_005fCPU_005fAFFINITY)。
