m*****r 发帖数: 3822 | 1 双路i7的机器,相当于有8个cpu。一些并行程序是正常的,比如开8个并行
系统load为~8,top里八个进程各位99%cpu占用。但是某个程序很奇怪,
就算只开1个进程,系统load都会很高,这个进程的占用率也会达到800%。如果多个
进程并行的话非常慢。感觉好像是一个进程就占满所有cpu。
因为有些程序表现正常,系统配置应该没有问题。但是什么情况下会导致以上这种现象?
谢谢 |
v*****r 发帖数: 1119 | 2 1. Make sure no memory swapping.
2. Turning off hyperthreading and retry.
3. Reduce parallelism if that particular process is really cpu intensive. |
m*****r 发帖数: 3822 | 3 这个程序在别的8core机器上一直运行正常,目前唯一的差别是用了64bit
内存应该完全够用的
【在 v*****r 的大作中提到】 : 1. Make sure no memory swapping. : 2. Turning off hyperthreading and retry. : 3. Reduce parallelism if that particular process is really cpu intensive.
|
v*****r 发帖数: 1119 | |
m*****r 发帖数: 3822 | 5 数值计算的,用到了blas和lapack
我现在分别用了mkl,goto和atlas,只有atlas的时候是正常的。
这里面会是什么原因造成的?
【在 v*****r 的大作中提到】 : 什么程序?
|
v*****r 发帖数: 1119 | 6 你能 post 一段 “vmstat 2" 的命令结果吗 (在你认为程序表现不正常的时候)? |
m*****r 发帖数: 3822 | 7 这个是不正常情况下,用mpirun -np 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu- |
m*****r 发帖数: 3822 | 8 这个是正常情况下,也是-np 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu- |
m*****r 发帖数: 3822 | 9 看上去和top的结果差不多,不正常的时候一个进程就吧系统占满了(99%)
现在atlas倒是可以用,但是单进程速度太慢了,比用mkl和goto要慢30%左右 |
m*****r 发帖数: 3822 | 10 看上去和top的结果差不多,不正常的时候一个进程就吧系统占满了(99%)
现在atlas倒是可以用,但是单进程速度太慢了,比用mkl和goto要慢30%左右 |
v*****r 发帖数: 1119 | 11 vmstat 的结果显示正如你所说的,不正常的时候 cpu usage 很高,正常情况 cpu 基
本 idle.
what about 你比较一下 你的老 32bit 机子 和 新 64bit 机子的 performance (比如
用 UnixBench tool), 可能两个机子 performance 就差很多。
还有 ATLAS installation guide 要求 CPU throttling to be turned off,不知道你
查了没有。 |
m*****r 发帖数: 3822 | 12 大概找到问题了。是lapack库multi-threaded的问题。
atlas我link了single-thread的lib所以没问题。现在link mkl的single library也
没问题了。不过目前goto和atlas里用single-thread都会报错,好在mkl还能用,
而且single和multi performance差不多。
thanks anyway!
【在 v*****r 的大作中提到】 : vmstat 的结果显示正如你所说的,不正常的时候 cpu usage 很高,正常情况 cpu 基 : 本 idle. : what about 你比较一下 你的老 32bit 机子 和 新 64bit 机子的 performance (比如 : 用 UnixBench tool), 可能两个机子 performance 就差很多。 : 还有 ATLAS installation guide 要求 CPU throttling to be turned off,不知道你 : 查了没有。
|