计算化学公社
标题: 在管理节点和计算节点上编译模拟软件、及编译完后使用有何区别? [打印本页]
作者Author: bobosiji 时间: 2020-10-24 12:01
标题: 在管理节点和计算节点上编译模拟软件、及编译完后使用有何区别?
管理节点也是登录节点,用pbstorque系统管理其他计算节点跑模拟。
我的理解,计算节点和管理节点的linux系统和环境都是独立的。我们可以把编译需要的库都安装在管理节点上,在计算节点上编译软件的时候,只要设置好环境变量,让计算节点知道这些库的路径;那么,在计算节点或管理节点上编译模拟软件,以及编译完后使用软件都是没有区别的。这个理解不知道对不对?多谢提点~
我们服务器主要是e5v4的CPU,也有两个白金CPU的节点;最近买管理服务器,不知道是买新的skylakeCPU服务器;还是利用实验室闲置的e5v4CPU搭建?如果管理服务器是e5v4CPU,又要用上白金CPU的avx512加速,就只能去计算节点上编译了:所以有上面这个问题。
我们很少编译软件。服务器是本实验室专用,真要去计算节点上编译软件的时候,协调其他用户使用也容易。就是不知道和管理节点比起来,在计算节点上编译及编译完后使用软件有没有特别的麻烦或困难?多谢各位提点~
作者Author: abin 时间: 2020-10-24 12:59
新机器并入到现有的集群就得了,
搞什么新的管理节点, 浪费资源。
我所有的计算节点,基本都是mini install + ssh + NFS client,其他啥也没有。
按照你的理解,计算节点还不能干活了?
Linux系统中的各种的lib32、lib64是通用的, 就你选用的系统,是针对x86的,
AMD也能跑,intel也可以跑,还怎么在乎什么处理器版本吗?
如果特别涉及到特定指令集,比如说的神乎其技的AVX512,如果编译采用了该指令集,
那么,不支持该指令集的处理器,当然无法运行编译之后的二进制文件的。<--- illegal instructions.
再说,去节点编译软件, 为何要协调用户?
PBS申请时间就可以了, 节点当然会被分派出来, ssh去操作就可了。
当然,安全模式比较高级的集群,就是申请到了集群,也不允许去登录的。
我目测,你的集群应该没有安全管理设定。
作者Author: abin 时间: 2020-10-25 10:44
本帖最后由 abin 于 2020-10-25 10:47 编辑
(, 下载次数 Times of downloads: 93)
补充一个示例。
以免被道德模范艺术家指责我瞎吹水。
计算节点node2, 请留意哦,是最小安装,占用空间很小的。
这也回复多数人的疑问, 安装系统,120GB硬盘,够用吗? 难道没有去看看天河2号,系统盘还用的是30GB的?
lib不全怎么办? 把别人的拿过来啊!!!
Linux系统的精髓在于,基于网络的各种操作。
如果对于操作系统仅仅停留在微软的层面,估计是无法理解并灵活应用以上Linux网路性能的。
另外,插播一句,
如果你使用Linux桌面工作,任何远程服务器上的文件,也可以sshfs到本地啊,
然后就是GUI界面工作啊,鼠标点击可以完成所有的事情:包含图形界面下完成各种输入文件编辑修改,以及远程计算加载(可能需要right-click --> Open in remote terminal --> qsub XXX.pbs)。
各种乱七八糟的ssh客户端,根本没任何意义。
看看这里提到的视频,也许有更好的理解。
http://bbs.keinsci.com/thread-17644-1-1.html
作者Author: 乐平 时间: 2021-2-1 01:15
你好,我遇到一个问题。我在管理节点上用 root 编译了 Environment Modules,设置了 modulefiles,然后用普通用户登陆,在管理节点上可以运行 module 命令,但是,ssh 到计算节点上就不能用 module 命令了…… 不知道需要在什么地方设置一下?
作者Author: abin 时间: 2021-2-1 08:04
本帖最后由 abin 于 2021-2-1 19:56 编辑
看来你不晓得集群的工作原理。
你可以根据以上这句,立即搞定。
或者邮件联系hpc4you@163.com。
作者Author: 乐平 时间: 2021-2-1 19:41
您好,我的确不太懂。因为 ssh 到计算节点,cd 的路径和管理节点一样,感觉应该是共享的硬盘空间。但是,~/.bashrc 文件的内容却不一样。
另外,您的 “你可以根据以上这句,以及,搞定。”这句话更是看得一头雾水……
作者Author: doublezhang 时间: 2021-2-1 19:48
本帖最后由 doublezhang 于 2021-2-1 19:49 编辑
首先,你要确定module编译在节点共享的硬盘里了。
其次,你要确定module命令在计算节点的环境变量里。
举个例子,你可以which module 看看module在哪儿
然后 echo $PATH 看看计算节点和登录节点的PATH是不是哪里不一样
作者Author: abin 时间: 2021-2-1 19:52
本帖最后由 abin 于 2021-2-1 20:02 编辑
看得一头雾水就说明,你不太了解集群如何工作的,
所以去看看集群相关的书籍,或者了解一下集群的实现方案,
立即就搞定了。
补充一下。
集群可以顺利工作的核心要义是,所有机器,运行中的系统,要镜像唯一,
用户数据也要镜像唯一。
实现一堆机器“操作系统镜像”和应用数据镜像唯一的方案有多种,
你能问出所谓这里编译安装了,而后其他机器无法用,可见是没有做到操作系统和应用程序所有机器镜像唯一,
我建议你看看集群架构和运作原理方面的书,没有问题啊。
至于,镜像唯一,数据同一这种,有多个方案实现。
鬼知道你用什么方案?
你只要定位到没有做到”操作系统和应用程序镜像唯一“,就锁定问题了。
剩下的,就是去实现这个问题就搞定了。
这不难呀。
作者Author: 乐平 时间: 2021-2-1 22:06
谢谢回复。应该是没有同步到计算节点,但是不知道什么用什么命令。
Bing 了一天也没找到相关的命令……
如果一个节点一个这么操作也不是不行,但是显然应该有更好的方法……
作者Author: abdoman 时间: 2021-2-2 08:30
其实abin已经说得很具体了。
1. module安装的位置要在一个NFS,网络共享盘上面。
2,每个节点都要mount这个共享盘,也就是说能够找到module的文件
3. 设置你的节点环境变量(当然也可以用root设置成系统级的,那样不用每个用户都要修改.bashrc),告诉你节点去哪找module这个命令并执行。
作者Author: doublezhang 时间: 2021-2-2 09:07
在你的提交任务脚本里面加一句 source ~/.bashrc 试试
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |