取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
PhDSong
Observer
Observer
215 次查看
注册日期: ‎07-22-2020

如何设置线程数使得效率最大化以及threads,jobs与CPU 核数的关系

跳至解决方案

ug904中提到了两个参数,threads和jobs,以下理解是否正确:

1.发挥最大性能,对于threads,linux下无需设置线程数,因为默认为最大值8,除非减小线程数;windows下想发挥最大性能,应将2改为8

2.虽然jobs可选择数值与本地线程数一致,但它与线程数无关;对于单个design run,jobs的数量不影响编译速度;在多个design runs时,jobs的数量决定了当前可以同时运行的design run的个数。

举例set_param general.maxThreads 8,如果有3个run(impl 1 2 3),如果我同时选中3个run,launch runs -number of jobs = 2时,impl 3为queued状态,此时3个run为一个整体;如果我分别启动3个run,launch runs- number of jobs = 2时,3个run都会执行,因为对每个run来说jobs都为2;
对于以上所有执行的run,每个run所用线程数都为8?这个8是指的硬件上8个核吗?
对于10个run(impl 1-10),jobs = 48 ,执行,linux(逻辑cpu总数48,centos7)使用top命令查看如下,感觉CPU使用率与设置的线程数不对应,top来看只用了10个核,即每个run用了1个核,这与set_param general.maxThreads 8看不出关联

所以应如何发挥服务器性能?

 

2021-02-19_103547.png
0 项奖励
回复
1 解答

已接受的解答
txu
Xilinx Employee
Xilinx Employee
93 次查看
注册日期: ‎08-13-2012

线程是逻辑概念,基于请求任务的数量,如果CPU core有多余空闲的core,可以将这些任务分配到上面运行。

https://www.zhihu.com/question/274189552

最大线程数8,只是说有些步骤可以被最大拆分成8个子任务,然后由CPU分配这些子任务。如果可用的CPU不足,那么这些子任务可能就不能并行执行。

UG904上提到,最大并行数量是这3个值的最小值:

To summarize, the number of simultaneous threads is the smallest of the following values:

•Maximum number of processors

•Limit of threads for the task

•General limit of threads

10个job的情况下,因为每个job申请一个core,那么就是10个core并行在跑,只有当运行到“可以进行多进程拆分”的步骤时,才能出现更多core运行的情况。UG904里面提到只有部分step才可以进行多线程拆分,像比如report这些步骤是无法进行拆分的。

在原帖中查看解决方案

2 回复数
PhDSong
Observer
Observer
160 次查看
注册日期: ‎07-22-2020

please give some advice

0 项奖励
回复
txu
Xilinx Employee
Xilinx Employee
94 次查看
注册日期: ‎08-13-2012

线程是逻辑概念,基于请求任务的数量,如果CPU core有多余空闲的core,可以将这些任务分配到上面运行。

https://www.zhihu.com/question/274189552

最大线程数8,只是说有些步骤可以被最大拆分成8个子任务,然后由CPU分配这些子任务。如果可用的CPU不足,那么这些子任务可能就不能并行执行。

UG904上提到,最大并行数量是这3个值的最小值:

To summarize, the number of simultaneous threads is the smallest of the following values:

•Maximum number of processors

•Limit of threads for the task

•General limit of threads

10个job的情况下,因为每个job申请一个core,那么就是10个core并行在跑,只有当运行到“可以进行多进程拆分”的步骤时,才能出现更多core运行的情况。UG904里面提到只有部分step才可以进行多线程拆分,像比如report这些步骤是无法进行拆分的。

在原帖中查看解决方案