QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2582|回复: 2

感觉应该是和内核有关的? 谢谢

[复制链接]
发表于 2008-2-9 22:55:32 | 显示全部楼层 |阅读模式
我们的高性能计算机是:cluster,每个node上有4个cpu,总共有16个node
1. 并行的时候在linux下必须要加上下面几句话,不知道为什么?
export  LD_ASSUME_KERNEL=2.4.1 (知道这个语句是设置环境变量,但是为什么是2.4.1,怎么查找这个参数)
ulimit -s 102400 (必须加上这个语句,不然不能并行,为什么?好像有的机子上不用这个命令的)

2.并行的时候感觉无法使用多个cpu,具体的情况如下。
当设置export OMP_NUM_THREADS=2的时候,用top查看,每个cpu的使用率大概是100%
当设置export OMP_NUM_THREADS=4的时候,每个cpu的使用率大概是50%
当设置export OMP_NUM_THREADS=8的时候,每个cpu的使用率大概是25%

想让export OMP_NUM_THREADS=8(或者更多)的时候,cpu的使用率也是100%如何设置呢?还是说机器的性能就这样呢?

非常谢谢
发表于 2008-2-11 00:46:03 | 显示全部楼层
1.可能是你的某些程序运行需要老的线程库,所以要修改LD_ASSUME_KERNEL。请参阅“Red Hat Linux 9 发行注记”
Red Hat Linux 9 包括 Native POSIX Thread Library (NPTL),它是 Linux 的 POSIX 线程的新实现。该库为 i686 或更高的处理器提供了性能增进和增加了的可缩放性。

该线程库的设计目标是与原有的 LinuxThreads 实现在二进制上兼容;不过,依赖于脱离 POSIX 标准的 LinuxThreads 实现之处的应用程序将需要被修正。值得注意的不同之处包括:

- 信号处理已从每线程信号处理改成 POSIX 进程信号处理。

- getpid() 在所有的线程中返回相同值。

- 如果使用了 vfork(),用 pthread_atfork 注册的线程处理程序就不会运行。

使用 NPTL 时会遇到问题的已知应用程序包括:

- 版本 1.4.1 之前的 Sun JRE

- IBM JRE

如果某应用程序使用 NPTL 无法正确运行,它可以使用原有的 LinuxThreads 实现来运行,方法是设置以下的环境变量:

LD_ASSUME_KERNEL=<kernel-version>

可用的版本如下:

- 2.4.1 — 带有浮动堆栈的 Linuxthreads

- 2.2.5 — 没有浮动堆栈的 Linuxthreads

所有动态链接的程序的 NPTL 支持可以使用以下引导时间选项来禁用:

nosysinfo

详细可以参见 http://www-128.ibm.com/developerworks/cn/linux/l-threading.html

普通用户打开文件数有限制,所以要ulimit一下,root用户没有这种限制

2.没用过,不知道
回复

使用道具 举报

 楼主| 发表于 2008-2-11 12:47:06 | 显示全部楼层
非常谢谢 还是不在。
继续等待高手回答第二个问题。
再次感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-25 05:03 , Processed in 0.104877 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表