q-chem 在linux *** 作系统下的中文安装说明

q-chem 在linux *** 作系统下的中文安装说明,第1张

1.通常Linux应用软件的安装包有三种:

1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。

2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。安装rpm包的命令是"rpm -参数,包管理工具 yum 。"

3) deb包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。安装deb包的命令是"dpkg -参数",包管理工具 apt-get。

2.包命名规则:

大多数Linux应用软件包的命名也有一定的规律,它遵循:名称-版本-修正版-类型

例如:

1) software-1.2.3-1.tar.gz 意味着:

软件名称:software

版本号:1.2.3

修正版本:1

类型:tar.gz,说明是一个tar包。

2) sfotware-1.2.3-1.i386.rpm

软件名称:software

版本号:1.2.3

修正版本:1

可用平台:i386,适用于Intel 80x86平台。

类型:rpm,说明是一个rpm包。

注:由于rpm格式的通常是已编译的程序,所以需指明平台。

3.包里的内容:

一个Linux应用程序的软件包中可以包含两种不同的内容:

1) 一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所 有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。

2) 另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。

通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般一个软件总会提供多种打包格式的安装程序的。你可以根据自己的情况来选择。

4.tar包:

整个安装过程可以分为以下几步:

1) 取得应用软件:通过下载、购买光盘的方法获得;

2) 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;

阅读附带的INSTALL文件、README文件;

3) 执行“./configure”命令为编译做好准备;

4) 执行“make”命令进行软件编译;

5) 执行“makeinstall”完成安装;

6) 执行“makeclean”删除安装时产生的临时文件。

7) 运行应用程序:一般来说,Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的 INSTALL和README文件,一般都会有说明。

8) 卸载:通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。有两个软件能够解决这个问题,那就是Kinstall和Kife,它们是tar包安装、卸载的黄金搭档

5.rpm包:

1) *** 作系统:RedHat(Red Hat/Fedora)

2) 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”

3) 包管理工具 yum

4) 支持tar包

5.1rpm命令

安装: rpm –ivh 软件包名.rpm( -I 安装软件,-t测试安装,不是真的安装,-p显示安装进度,-f忽略任何错误,-U升级安装,-v检测套件是否正确安装)

卸载: rpm –e 软件名(注意使用的是软件名,而不是软件包名)

查询:查询当前系统安装的软件包: rpm –qa ‘*软件包名*’

rpm

description

rpm -Uvh packages(s).rpm

install/upgrade package file(s)

rpm -e package

emove package

rpm -qa '*spell*'

show all packages whose names contain the word spell and already installed in system

rpm -q package

show version of package installed

rpm -q -i package

show all package metadata

rpm -q -i -p package.rpm

show all package file's metadata

rpm -q -f /path/file

what package does file belong

rpm -q -l package

list where files were installed

rpm -q -l -p package.rpm

list where files would be installed

rpm2cpio package.rpm | cpio -id

extract package files to current directory

rpm -q --requires package

list files/packages that package needs

rpm -q --whatrequires package

list packages that need package (see also whatrequires)

5.2yum命令

yum

Description

yum update [package list]

upgrade specified packages (or all installed packages if none specified)

yum install <package list>

install latest version of package(s), Yum refreshes each time it's used

yum remove <package list>

remove specified packages from system

yum list [package list]

list available packages from repositories

6.deb包:

1) *** 作系统:Debian系列(Ubuntu)

2) 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”

3) 包管理工具apt-get

4) 支持tar包

6.1dpkg命令

安装: dpkg –i 软件包名.deb

卸载: dpkg –e 软件名

查询:查询当前系统安装的软件包: dpkg –l ‘*软件包名*’

dpkg

description

dpkg -Gi package(s).deb

install/upgrade package file(s)

dpkg -r package

emove package

dpkg -l '*spell*'

show all packages whose names contain the word spell and already installed in system

dpkg -l package

show version of package installed

dpkg -s package

show all package metadata

dpkg -I package.deb

show all package file's metadata

dpkg -S /path/file

what package does file belong

dpkg -L package

list where files were installed

dpkg -c package.deb

list where files would be installed

dpkg -x package.deb

extract package files to current directory

dpkg -s package | grep ^Depends:

list files/packages that package needs

dpkg --purge --dry-run package

list packages that need package (see also whatrequires)

6.2apt-get命令

Apt-get命令只能用于在repositories中的包,不能用于处理自己下载的deb包,要想处理自己下载的deb包,只能用dpkg命令。

apt-get

Description

apt-get dist-upgrade

upgrade specified packages (or all installed packages if none specified)

apt-get install <package list>

install latest version of package(s)

apt-get remove <package list>

remove specified packages from system

apt-cache list [package list]

list available packages from repositories

7.rpm包和deb包安装命令对比:

Task

Red Hat/Fedora

Ubuntu

Adding Removing and Upgrading Packages

Refresh list of available packages

Yum refreshes each time it's used

apt-get update

Install a package from a repository

yum install package_name

apt-get install package_name

Install a package file

yum install package.rpm或者rpm -i package.rpm

dpkg --install package.deb

Remove a package

rpm -e package_name

apt-get remove package_name

Check for package upgrades

yum check-update

apt-get -s upgrade或者apt-get -s dist-upgrade

Upgrade packages

yum update或者rpm -Uvh [args]

apt-get dist-upgrade

Upgrade the entire system

yum upgrade

apt-get dist-upgrade

Package Information

Get information about an available package

yum search package_name

apt-cache search package_name

Show available packages

yum list available

apt-cache dumpavail

List all installed packages

yum list installed或者rpm -qa

dpkg --list

Get information about a package

yum info package_name

apt-cache show package_name

Get information about an installed package

rpm -qi package_name

dpkg --status package_name

List files in an installed package

rpm -ql package_name

dpkg --listfiles package_name

List documentation files in an installed package

rpm -qd package_name

-

List configuration files in an installed package

rpm -qc package_name

-

Show the packages a given package depends on

rpm -qR package_name

apt-cache depends

Show other packages that depend on a given package (reverse dependency)

rpm -q -whatrequires [args]

apt-cache rdepends

Package File Information

Get information about a package file

rpm -qpi package.rpm

dpkg --info package.deb

List files in a package file

rpm -qpl package.rpm

dpkg --contents package.deb

List documentation files in a package file

rpm -qpd package.rpm

-

List configuration files in a package file

rpm -qpc package.rpm

-

Extract files in a package

rpm2cpio package.rpm | cpio -vid

dpkg-deb --extract package.deb dir-to-extract-to

Find package that installed a file

rpm -qf filename

dpkg --search filename

Find package that provides a particular file

yum provides filename

apt-file search filename

Misc. Packaging System Tools

Show stats about the package cache

-

apt-cache stats

Verify all installed packages

rpm -Va

debsums

Remove packages from the local cache directory

yum clean packages

apt-get clean

Remove only obsolete packages from the local cache directory

-

apt-get autoclean

Remove header files from the local cache directory(forcing a new download of same on next use)

yum clean headers

apt-file purge

General Packaging System Information

Package file extension

*.rpm

*.deb

Repository location configuration

/etc/yum.conf

/etc/apt/sources.list

引自 http://hustcat.github.io/qos-in-roce/

  TCP/IP协议栈满足不了现代IDC工作负载(workloads)的需求,主要有2个原因:(1)内核处理收发包需要消耗大量的CPU;(2)TCP不能满足应用对低延迟的需求:一方面,内核协议栈会带来数十ms的延迟;另一方面,TCP的拥塞控制算法、超时重传机制都会增加延迟。

  RDMA在NIC内部实现传输协议,所以没有第一个问题;同时,通过 zero-copy 、 kernel bypass 避免了内核层面的延迟。

  与TCP不同的是,RDMA需要一个无损(lossless)的网络。例如,交换机不能因为缓冲区溢出而丢包。为此,RoCE使用 PFC(Priority-based Flow Control) 带进行流控。一旦交换机的port的接收队列超过一定阀值(shreshold)时,就会向对端发送 PFC pause frame ,通知发送端停止继续发包。一旦接收队列低于另一个阀值时,就会发送一个 pause with zero duration ,通知发送端恢复发包。

  PFC对数据流进行分类(class),不同种类的数据流设置不同的优先级。比如将RoCE的数据流和TCP/IP等其它数据流设置不同的优先级。详细参考 Considerations for Global Pause, PFC and QoS with Mellanox Switches and Adapters

对于IP/Ethernet,有2种方式对网络流量分类:

详细介绍参考 Understanding QoS Configuration for RoCE 。

  对于RoCE,有2个机制用于流控: Flow Control (PFC) 和 Congestion Control (DCQCN) ,这两个机制可以同时,也可以分开工作。

  PFC是一个链路层协议,只能针对port进行流控,粒度较粗。一旦发生拥塞,会导致整个端口停止pause。这是不合理的,参考 Understanding RoCEv2 Congestion Management 。为此,RoCE引入 Congestion Control 。

DC-QCN 是RoCE使用的拥塞控制协议,它基于 Explicit Congestion Notification (ECN) 。后面会详细介绍。

前面介绍有2种方式对网络流量进行分类,所以,PFC也有2种实现。

基于 VLAN tag 的Priority code point (PCP,3-bits)定义了8个 Priority .

In case of L2 network, PFC uses the priority bits within the VLAN tag (IEEE 802.1p) to differentiate up to eight types of flows that can be subject to flow control (each one independently).

HowTo Run RoCE and TCP over L2 Enabled with PFC .

例如:

参考 HowTo Set Egress Priority VLAN on Linux .

  基于VLAN的PFC机制有2个主要问题:(1)交换机需要工作在trunk模式;(2)没有标准的方式实现 VLAN PCP 跨L3网络传输(VLAN是一个L2协议)。

   DSCP-based PFC 通过使用IP头部的 DSCP 字段解决了上面2个问题。

DSCP-based PFC requires both NICs and switches to classify and queue packets based on the DSCP value instead of the VLAN tag.

The type of service (ToS) field in the IPv4 header has had various purposes over the years, and has been defined in different ways by five RFCs.[1] The modern redefinition of the ToS field is a six-bit Differentiated Services Code Point (DSCP) field[2] and a two-bit Explicit Congestion Notification (ECN) field.[3] While Differentiated Services is somewhat backwards compatible with ToS, ECN is not.

详细介绍参考:

RDMA的PFC机制可能会导致一些问题:

  尽管PFC可以避免 buffer overflow 导致的丢包,但是,其它一些原因,比如FCS错误,也可能导致网络丢包。RDMA的 go-back-0 算法,每次出现丢包,都会导致整个message的所有packet都会重传,从而导致 livelock 。TCP有SACK算法,由于RDMA传输层在NIC实现,受限于硬件资源,NIC很难实现SACK算法。可以使用 go-back-N 算法来避免这个问题。

  当PFC机制与Ethernet的广播机制工作时,可能导致出现 PFC Deadlock 。简单来说,就是PFC机制会导致相应的port停止发包,而Ethernet的广播包可能引起新的 PFC pause 依赖(比如port对端的server down掉),从而引起循环依赖。广播和多播对于 loseless 是非常危险的,建议不要将其归于 loseless classes 。

  由于 PFC pause 是传递的,所以很容易引起 pause frame storm 。比如,NIC因为bug导致接收缓冲区填满,NIC会一直对外发送 pause frame 。需要在NIC端和交换机端使用 watchdog 机制来防止 pause storm 。

  由于NIC的资源有限,它将大部分数据结构,比如 QPC(Queue Pair Context) 和 WQE (Work Queue Element) 都放在host memory。而NIC只会缓存部分数据对象,一旦出现 cache miss ,NIC的处理速度就会下降。

  ECN是一个端到端的拥塞通知机制,而不需要丢包。ECN是可选的特性,它需要端点开启ECN支持,同时底层的网络也需要支持。

  传统的TCP/IP网络,通过丢包来表明网络拥塞, router/switch/server 都会这么做。而对于支持ECN的路由器,当发生网络拥塞时,会设置IP头部的ECN(2bits)标志位,而接收端会给发送端返回拥塞的通知( echo of the congestion indication ),然后发送端降低发送速率。

  由于发送速率由传输层(TCP)控制,所以,ECN需要TCP和IP层同时配合。

rfc3168 定义了 ECN for TCP/IP 。

IP头部 有2个bit的ECN标志位:

如果端点支持ECN,就数据包中的标志位设置为 ECT(0) 或者 ECT(1) 。

  为了支持ECN,TCP使用了 TCP头部 的3个标志位: Nonce Sum (NS) , ECN-Echo (ECE) 和 Congestion Window Reduced (CWR) 。

   RoCEv2 引入了ECN机制来实现拥塞控制,即 RoCEv2 Congestion Management (RCM) 。通过RCM,一旦网络发生拥塞,就会通知发送端降低发送速率。与TCP类似,RoCEv2使用传输层头部 Base Transport Header (BTH) 的 FECN 标志位来标识拥塞。

  实现RCM的RoCEv2 HCAs必须遵循下面的规则:

  (1) 如果收到IP.ECN为 11 的包,HCA生成一个 RoCEv2 CNP(Congestion Notification Packet) 包,返回给发送端;

  (2) 如果收到 RoCEv2 CNP 包,则降低对应QP的发送速率;

  (3) 从上一次收到 RoCEv2 CNP 后,经过配置的时间或者字节数,HCA可以增加对应QP的发送速率。

参考 Congestion Control Loop 。

参考 How To Configure RoCE over a Lossless Fabric (PFC + ECN) End-to-End Using ConnectX-4 and Spectrum (Trust L2) 。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7113954.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存