t*****t 发帖数: 285 | 1 cpu是3770k, 在ubuntu12.10下,有的程序跑起来可以把cpu的8线程(800%)都占满就
很快,但是有的程序,甚至linux的基本命令sort什么的,就只用5%的cpu,然后文件大
一点就跑一天,剩下的750%完全是闲置的,内存32g也是有空余的,放到我的老机器跑
一样的程序,反而很快(因为把cpu都用上了),求问诸位有类似的经历么?有解决的
办法么?多谢多谢!!
真是太郁闷了。。。 |
Z**0 发帖数: 1119 | 2 有这样的怪事?你说说你的程序吧。商业的,还是homebrew的?
我看是十有八九,你忘记什么设定了。估计是和线程或者和使用多少个CPU的设定。 |
g*******t 发帖数: 7704 | 3 程序不支持多线程,16核也没用,
所以游戏都是单线程, 多核没什么帮助 |
d*******3 发帖数: 6550 | |
t*****t 发帖数: 285 | 5 对啊,这个难道有问题?
【在 d*******3 的大作中提到】 : 你是不是装的32bit的ubuntu?
|
t*****t 发帖数: 285 | 6 别提了,那里是多核运算啊,我这就是个homework,现在我把程序复制到我原来的破机
子上,1个小时就跑完了。是单线程的啊。。。
【在 Z**0 的大作中提到】 : 有这样的怪事?你说说你的程序吧。商业的,还是homebrew的? : 我看是十有八九,你忘记什么设定了。估计是和线程或者和使用多少个CPU的设定。
|
t*****t 发帖数: 285 | 7 大哥,就是单线程的程序啊,关键是他现在只占一个cpu的0.5%了,我都快哭了,今晚
deadline啊。。。
【在 g*******t 的大作中提到】 : 程序不支持多线程,16核也没用, : 所以游戏都是单线程, 多核没什么帮助
|
w*x 发帖数: 3456 | 8 32位用不了超过4G的内存,至于效率慢就不知道了
我的3770k在Debian虚拟机下跑程序速度都不慢。
要是C或Fortran的话换Intel编译器加上-fast试试...
gcc编译的话优化选项貌似是-O3
【在 t*****t 的大作中提到】 : 对啊,这个难道有问题?
|
g*******t 发帖数: 7704 | 9 单线程在多核上是慢,
以前有程序,把多核屏蔽,变成单核跑游戏, |
t*****t 发帖数: 285 | 10 很奇怪的是,我做research,用c++,有的就可以充分利用cpu,有的完全不行,cpu其
实很快,但是只用0.5%就不行了。
现在是sort慢,我都无语了。。。我的破电脑1小时就行了,这个化了12小时。。。
【在 w*x 的大作中提到】 : 32位用不了超过4G的内存,至于效率慢就不知道了 : 我的3770k在Debian虚拟机下跑程序速度都不慢。 : 要是C或Fortran的话换Intel编译器加上-fast试试... : gcc编译的话优化选项貌似是-O3
|
|
|
t*****t 发帖数: 285 | 11
其实也不是多核的问题,但现在问题是,cpu直接闲置了,只用了其中一个核的1%来算
,怎么算也慢啊。。。一直找不到答案。。。
【在 g*******t 的大作中提到】 : 单线程在多核上是慢, : 以前有程序,把多核屏蔽,变成单核跑游戏,
|
Z**0 发帖数: 1119 | 12 CPU被限制速度了?没有运行在performance下?主板bios有bug?
http://wiki.debian.org/HowTo/CpuFrequencyScaling
运行程序的时候,检查CPU的freq,看看是不是运行在最高频率下。
你把你编译好的程序,放出来让大家给你运行运行。看看是不是你说的现象。
【在 t*****t 的大作中提到】 : 大哥,就是单线程的程序啊,关键是他现在只占一个cpu的0.5%了,我都快哭了,今晚 : deadline啊。。。
|
l******n 发帖数: 1683 | 13 内存的问题, 32位系统程序只能使用4G的内存空间, 一旦你程序里面需要操作的数据大
于4G, 那么就很容易出现你说的这种情况.
【在 t*****t 的大作中提到】 : 很奇怪的是,我做research,用c++,有的就可以充分利用cpu,有的完全不行,cpu其 : 实很快,但是只用0.5%就不行了。 : 现在是sort慢,我都无语了。。。我的破电脑1小时就行了,这个化了12小时。。。
|
t*****t 发帖数: 285 | 14 你说的太对了。我这就改装64位去。。。没文化害死人啊。。。。太感谢了。。。
只是还有一点疑问,我用top查看状态,发现32g的内存用了31g多,这个是内存泄漏了
么?
【在 l******n 的大作中提到】 : 内存的问题, 32位系统程序只能使用4G的内存空间, 一旦你程序里面需要操作的数据大 : 于4G, 那么就很容易出现你说的这种情况.
|
l******n 发帖数: 1683 | 15 贴一下free的输出吧
【在 t*****t 的大作中提到】 : 你说的太对了。我这就改装64位去。。。没文化害死人啊。。。。太感谢了。。。 : 只是还有一点疑问,我用top查看状态,发现32g的内存用了31g多,这个是内存泄漏了 : 么?
|
t*****t 发帖数: 285 | 16 这是之前的截屏
top - 21:48:57 up 2 days, 20:30, 9 users, load average: 1.58, 1.62, 1.85
Tasks: 261 total, 2 running, 256 sleeping, 0 stopped, 3 zombie
%Cpu(s): 1.2 us, 0.7 sy, 0.0 ni, 84.3 id, 13.8 wa, 0.0 hi, 0.0 si, 0.0
st
KiB Mem: 33092832 total, 25816920 used, 7275912 free, 166896 buffers
KiB Swap: 9765884 total, 66788 used, 9699096 free, 23217068 cached
有一阵子我看内存到了31多。。。
【在 l******n 的大作中提到】 : 贴一下free的输出吧
|
l******n 发帖数: 1683 | 17 你是想说33092832<32*1024*1024? kernel会占用一些内存空间, 还会reserve一些, 少
点是正常的.
.0
【在 t*****t 的大作中提到】 : 这是之前的截屏 : top - 21:48:57 up 2 days, 20:30, 9 users, load average: 1.58, 1.62, 1.85 : Tasks: 261 total, 2 running, 256 sleeping, 0 stopped, 3 zombie : %Cpu(s): 1.2 us, 0.7 sy, 0.0 ni, 84.3 id, 13.8 wa, 0.0 hi, 0.0 si, 0.0 : st : KiB Mem: 33092832 total, 25816920 used, 7275912 free, 166896 buffers : KiB Swap: 9765884 total, 66788 used, 9699096 free, 23217068 cached : 有一阵子我看内存到了31多。。。
|
t*****t 发帖数: 285 | 18 不是啊,你看used的内存远远大于4gb啊。。。
【在 l******n 的大作中提到】 : 你是想说33092832<32*1024*1024? kernel会占用一些内存空间, 还会reserve一些, 少 : 点是正常的. : : .0
|
l******n 发帖数: 1683 | 19 你说哪个呀, linux下面used memory跟在windows下面不是一个概念. 你看见的哪个
used memory是包括了系统buffer和cached的内存的. 所以如果free memory很多的话倒
是不正常了.
【在 t*****t 的大作中提到】 : 不是啊,你看used的内存远远大于4gb啊。。。
|
t*****t 发帖数: 285 | 20
我错了。。。我这就改装去。。。多谢多谢
【在 l******n 的大作中提到】 : 你说哪个呀, linux下面used memory跟在windows下面不是一个概念. 你看见的哪个 : used memory是包括了系统buffer和cached的内存的. 所以如果free memory很多的话倒 : 是不正常了.
|
|
|
d*****a 发帖数: 1319 | 21 读写文件多?
测测硬盘速度
【在 t*****t 的大作中提到】 : cpu是3770k, 在ubuntu12.10下,有的程序跑起来可以把cpu的8线程(800%)都占满就 : 很快,但是有的程序,甚至linux的基本命令sort什么的,就只用5%的cpu,然后文件大 : 一点就跑一天,剩下的750%完全是闲置的,内存32g也是有空余的,放到我的老机器跑 : 一样的程序,反而很快(因为把cpu都用上了),求问诸位有类似的经历么?有解决的 : 办法么?多谢多谢!! : 真是太郁闷了。。。
|
t****t 发帖数: 6806 | 22 unlike 32-bit windows, 32-bit linux kernel can use maximum memory of 64G, if
PAE is enabled. however, the maximum memory of each process is still 4GB. s
o i think your program didn't consider maximum memory, or considered but fai
l a lot since memory is out.
【在 t*****t 的大作中提到】 : : 我错了。。。我这就改装去。。。多谢多谢
|
t*****t 发帖数: 285 | 23 我跑的是java,但是用了限制内存命令,到128m,所以内存照道理说不该是个问题,我
是一边print,然后pipeline到sort。。。
if
s
fai
【在 t****t 的大作中提到】 : unlike 32-bit windows, 32-bit linux kernel can use maximum memory of 64G, if : PAE is enabled. however, the maximum memory of each process is still 4GB. s : o i think your program didn't consider maximum memory, or considered but fai : l a lot since memory is out.
|
t*****t 发帖数: 285 | 24 基本没有读写文件,只有print到屏幕,然后直接pipe给sort了。。。
【在 d*****a 的大作中提到】 : 读写文件多? : 测测硬盘速度
|
w*x 发帖数: 3456 | 25 Debian有自己带的Ramdisk,ubuntu是Debian的改版应该也有这个,内存占满了是挺正常的
【在 t*****t 的大作中提到】 : 你说的太对了。我这就改装64位去。。。没文化害死人啊。。。。太感谢了。。。 : 只是还有一点疑问,我用top查看状态,发现32g的内存用了31g多,这个是内存泄漏了 : 么?
|
t****t 发帖数: 6806 | 26 pipe to sort? that's one creative way to sort big files.
if memory is not enough, sort has to use external sort algorithm, which read
/write a lot. that's why you only use 0.5% cpu, because time is consumed on
I/O.
【在 t*****t 的大作中提到】 : 基本没有读写文件,只有print到屏幕,然后直接pipe给sort了。。。
|
l*******b 发帖数: 2586 | 27 这个是怎么玩的。sort可以来一个sort一个么。像bst那样
read
on
【在 t****t 的大作中提到】 : pipe to sort? that's one creative way to sort big files. : if memory is not enough, sort has to use external sort algorithm, which read : /write a lot. that's why you only use 0.5% cpu, because time is consumed on : I/O.
|
t****t 发帖数: 6806 | 28 你不把所有的数据都看一遍怎么能知道结果? 动动脑子么.
【在 l*******b 的大作中提到】 : 这个是怎么玩的。sort可以来一个sort一个么。像bst那样 : : read : on
|
a***e 发帖数: 27968 | 29 是不是i/o设置有什么问题
【在 t*****t 的大作中提到】 : 很奇怪的是,我做research,用c++,有的就可以充分利用cpu,有的完全不行,cpu其 : 实很快,但是只用0.5%就不行了。 : 现在是sort慢,我都无语了。。。我的破电脑1小时就行了,这个化了12小时。。。
|
a***e 发帖数: 27968 | 30 这样你32GB用不上吧
【在 t*****t 的大作中提到】 : 对啊,这个难道有问题?
|
|
|
a***e 发帖数: 27968 | 31 sort输出到哪?
【在 t*****t 的大作中提到】 : 基本没有读写文件,只有print到屏幕,然后直接pipe给sort了。。。
|
a***e 发帖数: 27968 | 32 是比较有意思,这个sort得来回忙死
read
on
【在 t****t 的大作中提到】 : pipe to sort? that's one creative way to sort big files. : if memory is not enough, sort has to use external sort algorithm, which read : /write a lot. that's why you only use 0.5% cpu, because time is consumed on : I/O.
|
p***r 发帖数: 1098 | |
e*i 发帖数: 10288 | 34 记得以前穷举密码时,生成的密码通过管道传送到处理程序中,结果破解速度
很慢,后来还是加了个硬盘,先将生成的密码写入大文件,然后再将文件送到
处理程序中,结果就快多了,至少CPU利用能到100%。
【在 a***e 的大作中提到】 : 是比较有意思,这个sort得来回忙死 : : read : on
|
a***e 发帖数: 27968 | 35 管道buffer不过来忙死了?
【在 e*i 的大作中提到】 : 记得以前穷举密码时,生成的密码通过管道传送到处理程序中,结果破解速度 : 很慢,后来还是加了个硬盘,先将生成的密码写入大文件,然后再将文件送到 : 处理程序中,结果就快多了,至少CPU利用能到100%。
|
l******n 发帖数: 1683 | 36 刚才拿了一个1.5G的文件测试了一下(系统内存8G), 直接sort filename
没有cat filename | sort快.
【在 e*i 的大作中提到】 : 记得以前穷举密码时,生成的密码通过管道传送到处理程序中,结果破解速度 : 很慢,后来还是加了个硬盘,先将生成的密码写入大文件,然后再将文件送到 : 处理程序中,结果就快多了,至少CPU利用能到100%。
|
t*****t 发帖数: 285 | 37 unix会做merge sort,读一批进buffer,然后sort,然后存到临时文件,最后merge
【在 t****t 的大作中提到】 : 你不把所有的数据都看一遍怎么能知道结果? 动动脑子么.
|
t*****t 发帖数: 285 | 38 我有另外一个程序,就可以充分利用cpu啊。。。
【在 Z**0 的大作中提到】 : CPU被限制速度了?没有运行在performance下?主板bios有bug? : http://wiki.debian.org/HowTo/CpuFrequencyScaling : 运行程序的时候,检查CPU的freq,看看是不是运行在最高频率下。 : 你把你编译好的程序,放出来让大家给你运行运行。看看是不是你说的现象。
|
t*****t 发帖数: 285 | 39 其实也没有print出来,直接给sort了。。。
我这门课就是做large data,要求内存很小。。。那肯定是要牺牲速度的。。。
【在 p***r 的大作中提到】 : print屏幕很慢吧? : 不print试试?
|
t*****t 发帖数: 285 | 40 我看进程,就是一边java在运算输出结果,一边在sort,然后两个都只占很小的cpu,
但是同样的东西我放到老电脑去做,就java和sort都占100%的cpu,就比较快能做完。
。。
我的硬盘是WD的红盘这个有问题吗?
我的老电脑也不是ssd啊,thinkpad的标配啊。。。应该不会差那么多把。。。
【在 a***e 的大作中提到】 : 是比较有意思,这个sort得来回忙死 : : read : on
|
|
|
t*****t 发帖数: 285 | 41 但是我的老电脑也是普通硬盘啊,为啥没有这个问题?
read
on
【在 t****t 的大作中提到】 : pipe to sort? that's one creative way to sort big files. : if memory is not enough, sort has to use external sort algorithm, which read : /write a lot. that's why you only use 0.5% cpu, because time is consumed on : I/O.
|
a9 发帖数: 21638 | 42 linux就经常有这问题
我用ps3mediaserver向ps3播放视频。结果在linux下4个核最高只能每个核跑到80%,
后来发现是管道的问题。
在windows下就没事。
【在 t*****t 的大作中提到】 : 我看进程,就是一边java在运算输出结果,一边在sort,然后两个都只占很小的cpu, : 但是同样的东西我放到老电脑去做,就java和sort都占100%的cpu,就比较快能做完。 : 。。 : 我的硬盘是WD的红盘这个有问题吗? : 我的老电脑也不是ssd啊,thinkpad的标配啊。。。应该不会差那么多把。。。
|
t*****t 发帖数: 285 | 43 这里怎么上传程序和数据?
【在 Z**0 的大作中提到】 : 有这样的怪事?你说说你的程序吧。商业的,还是homebrew的? : 我看是十有八九,你忘记什么设定了。估计是和线程或者和使用多少个CPU的设定。
|
t*****t 发帖数: 285 | 44 有个80%我就谢天谢地了,我的是0.5%,这个忍不了啊,我打算去装一个64位的,然后
又买了个ssd做ubuntu的home,看能不能快点
【在 a9 的大作中提到】 : linux就经常有这问题 : 我用ps3mediaserver向ps3播放视频。结果在linux下4个核最高只能每个核跑到80%, : 后来发现是管道的问题。 : 在windows下就没事。
|
a9 发帖数: 21638 | 45 你这搞了一天了吧?有这功夫早装上了。
【在 t*****t 的大作中提到】 : 有个80%我就谢天谢地了,我的是0.5%,这个忍不了啊,我打算去装一个64位的,然后 : 又买了个ssd做ubuntu的home,看能不能快点
|
t****t 发帖数: 6806 | 46 because your old computer can use more than 4G?
【在 t*****t 的大作中提到】 : 但是我的老电脑也是普通硬盘啊,为啥没有这个问题? : : read : on
|
t*****t 发帖数: 285 | 47 没,我今天定了ssd,等到了装。。。
【在 a9 的大作中提到】 : 你这搞了一天了吧?有这功夫早装上了。
|
t*****t 发帖数: 285 | 48 确实是,我老电脑是64bit的,我装完再上来报告。。。
【在 t****t 的大作中提到】 : because your old computer can use more than 4G?
|
l******n 发帖数: 1683 | 49 ssd不是万能的, 尤其是对做计算来说. ssd读写速度虽然是机械硬盘的几倍, 但是跟内
存比起来还是差得太远.
【在 t*****t 的大作中提到】 : 没,我今天定了ssd,等到了装。。。
|
a9 发帖数: 21638 | 50 先在硬盘上装上试试啊。
【在 t*****t 的大作中提到】 : 没,我今天定了ssd,等到了装。。。
|
|
|
t****t 发帖数: 6806 | 51 那不就结了, 外部排序和内部排序的速度能比么.
【在 t*****t 的大作中提到】 : 确实是,我老电脑是64bit的,我装完再上来报告。。。
|
t****t 发帖数: 6806 | 52 你看懂他说什么了没? 他说要跟真的管道似的读一部分写一部分. 问题是排序这个问题
本身要求在没读完所有数据以前, 一个输出都不应该有. 所以数据规模一大(大于可用内
存), 必定要借助临时文件做外部排序.
【在 t*****t 的大作中提到】 : unix会做merge sort,读一批进buffer,然后sort,然后存到临时文件,最后merge
|
t*****t 发帖数: 285 | 53 看错了。。。不好意思。。。
用内
【在 t****t 的大作中提到】 : 你看懂他说什么了没? 他说要跟真的管道似的读一部分写一部分. 问题是排序这个问题 : 本身要求在没读完所有数据以前, 一个输出都不应该有. 所以数据规模一大(大于可用内 : 存), 必定要借助临时文件做外部排序.
|
c***r 发帖数: 4631 | |
t*****t 发帖数: 285 | 55 解决了,确实是32位系统的关系。。。谢谢帮忙的诸位了。。。
【在 c***r 的大作中提到】 : 有结果了么?
|
T****n 发帖数: 6187 | 56 终于都看完了,也松了口气
【在 t*****t 的大作中提到】 : 解决了,确实是32位系统的关系。。。谢谢帮忙的诸位了。。。
|