浏览模式: 普通 | 列表

Fedora7教育网更新配置

[ 2008-07-15 14:01:30 | 作者: Admin ]
Fedora7教育网更新配置

将/etc/yum.repos.d 更名为yum.repos.d.bak 让后新建一个文件夹名为yum.repos.d。

在该目录下写入如下文件

1。新建一个文件命名为tsinghuafedora.repo。将如下内容写入到该文件中:

[fedora]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

[fedora-source]
name=Fedora $releasever - Source
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-source-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
保存。

2。添加清华的livna源。新建一个名为livna.repo的文件。写入如下内容:
[livna]
name=Livna for Fedora Core $releasever - $basearch - Base
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-debuginfo]
name=Livna for Fedora Core $releasever - $basearch - Debug
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/debug/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

[livna-source]
name=Livna for Fedora Core $releasever - $basearch - Source
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/SRPMS/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

保存

3。新建名为livna-devel.repo写入:

[livna-development]
name=Livna for Fedora Core $releasever - $basearch - Development Tree
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/
failovermethod=priority
#mirrorlist=http://rpm.livna.org/mirrorlist-development
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-development-debuginfo]
name=Livna for Fedora Core $releasever - $basearch - Development Tree - Debug
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/debug/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

[livna-development-source]
name=Livna for Fedora Core $releasever - $basearch - Development Tree - Source
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/SRPMS/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

保存。

4。新建livna-testing.repo写入:
[livna-testing]
name=Livna for Fedora Core $releasever - $basearch - Testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/
failovermethod=priority
#mirrorlist=http://rpm.livna.org/mirrorlist-testing-6
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-testing-debug]
name=Livna for Fedora Core $releasever - $basearch - Testing - Debug
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/debug/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1

[livna-testing-source]
name=Livna for Fedora Core $releasever - $basearch - Testing - Source
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/SRPMS/
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
gpgcheck=1
保存。

5。添加freshrpms源。新建freshrpms-repo写入:

[freshrpms]
name=Fedora Core $releasever - $basearch - Freshrpms
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/ayo.freshrpms.net/pub/freshrpms/ayo/fedora/linux/$releasever/$basearch/freshrpms/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-freshrpms
gpgcheck=1

保存。

完成以上就可以进行更新了。不过可能有有的系统缺乏livna与的KEY文件,会报错。
如下可以解决:在/etc/pki/rpm-gpg目录中新建一个文件命名为RPM-GPG-KEY-livna的文件
并在其中写入如下内容:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.3 (GNU/Linux)

mQGiBD9uKNURBAD9LSuQNt6yzZ4Zvs1eRit7qnEXxptel30kSX5pFT4+e3NwLAr6
Krlw8Ieo7w4o+kaHL1likVLCAZzBnz9X6l5C2LtUcKX772ieRZUnLd93wWRQiRYj
u8QRD5CFS7sgT0xG6KZV1GJ13BjqBb3VRHJXw2lQn9JrQkhzuRF+YItW+wCgpFKN
VMWJQXjSy87RLOELulEA7YEEAOCvbVSB/yfm2VByB9yb3S2OOEDyeQpx75xzW1tK
5paC6qmu6ptCN7MvBOlIPqJtJzk9dxcJIQrOeCkmm4rUhuNIujr+1h+vOwtm158K
IahJMGirDJjXxAKJdAU/OCo6z54TLR9WkiNieZhcMvHNeVwgcmSv5o0lBwzYnsvN
U9JIBACaXi6fQ3yFeoUhCXYQUku9SDKgEnjbNWRn+7LPAVRYIHLTrs8nhZm7eKBA
oUPtam96zhEU8LWkgP9OzgJrFeScaBsuoOStsFHBUALs9y6n274e7ITXOtd/bRZU
2fCV3Jo0MR6Y27tDRMqhEHNfkqFn7aOdQcTTPoDP0Z5pkVVsjbQiTGl2bmEub3Jn
IHJwbXMgPHJwbS1rZXlAbGl2bmEub3JnPohbBBMRAgAbBQI/bijVBgsJCAcDAgMV
AgMDFgIBAh4BAheAAAoJEHEpVEGhCbHsytIAn1FrK/66lNuHSe9DalzCT5aHSBhM
AKCcDE77KF+b7/uyeujjY0dBOdODJYhGBBARAgAGBQI/bimuAAoJEFv/iQKOJ5Ah
Kf4AoIFEBNeQLA3SJhawlZMVFOM4X2o0AJ9Q1x/2iJjmW65A4Wfy5U63fp58q7kB
DQQ/bijWEAQArpxAXvjCHNQxiKPHagpx/OgDBRvN/eseZzHz3N+c8iglwTSkNjcV
LiH2Bdz7+RxdRVvgjq4PUgs1+mNnY5H8Gptb0brvvW6BQHKNSE8y/rwYil3jzW6l
HruhOuYr4uiGUNbOBsJYCFpccDi2w0Z72NtPgLcUrBtNiiybHs6HPh8AAwUEAJt/
dwOOUbfDF0EodRmDJs9Brkq2TBoT/9ylxGTVH+j+1tkDOs5ByX/MoGhYyBnTbN0/
lgGq85nQgFq23hvHDZDAUfZDIArMOjYJIwP2dS7E+UTsSNgnv0/lCJ6qfgo76Rn0
fWkGyRpUKjrdvfRkCNpQu5RWxQ5ZC/hRwBrI/5guiEYEGBECAAYFAj9uKNYACgkQ
cSlUQaEJsewfJwCfWjWmrNyMVtz2MRUIqgM93sXHuUUAn2l9FUDpSPnLII1G25Sm
abfgX6Wq
=7Wqv
-----END PGP PUBLIC KEY BLOCK-----

新建RPM-GPG-KEY-freshrpms写入:
The following public key can be used to verify RPM packages
downloaded from http://freshrpms.net/ using `rpm -K' if you
have the GNU GPG package.
Questions about this key should be sent to :
Matthias Saou <matthias.saou@est.une.marmotte.net>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: For info see http://www.gnupg.org/

mQGiBDlgvfERBADevsErSu+DAnE90dFPnpEX20elyZAmuRExGbcUJWSoJynohtGC
a9fW6JY8zm/Dm2dC8f1sSNQ2w7CFG7XRBfyQcL4AqrNKbOMeCl66Tgj+NURUHsnV
yU3ASXROxVQ4/yJ69PVFomj0sealdEyDXDQoXhvgyI26qe3rriKBefCbRwCg+TdH
q5I8B/9X7QLnWg7sZk7iI7sD/27S9r4PS+FU9N26BvdgOvGeW6+1O/oqAU6HB+EF
eGw0+uNbLjxPy1A9R5+M/FBZBMeyTO0S8i4hYKnGbeESfUWdFom7kc0DOEF3bLlf
NOe+6rsqH2DPOOVbPfcJdOjBTldR7ETx/IyYLWSwdNx71kl/C8GTKKtw31BPUOf7
sZ7FA/9aDy9sG5Km7fJBGKx66Z3Tmu9bH7oNDesm7uQ8+45qO+njOjFvQ6CfAzzV
MjzKEm0LSIySaKttDSU9AnlxNypbH9gCx1FwcPcip6vgV10D6YRG8n4cl0LB6Ins
DoR/MbAv4c8ROw/xiNVYrukxoX7EVpJuNQaP+UoqS9waVfqOh7Q6TWF0dGhpYXMg
U2FvdSAoVGhpYXMpIDxtYXR0aGlhcy5zYW91QGVzdC51bmUubWFybW90dGUubmV0
PohWBBMRAgAWBQI5YL3xBAsKBAMDFQMCAxYCAQIXgAAKCRBpKsRZ5C1Ue2rvAKDa
sk63CmO+/L8cq7HdI98AheFMBwCgwjgUeOCQTVHIlMypOLLvnni7tEa5AQ0EOWC9
9hAEAMa6uFwa3AZVJW3kTkeoijTmOGkTo15fOivfuyfV5o8JdTc9Fxs/yFV6YVgx
iKTSUQkPti33irv19bMx5m5nHYccftkagh3y+lDXj4TVrFhgMeucZndXMqREsmbN
oy3vBdKx/YChWuhRrnhye5ZBztYWgEgMtrIC0F+slHWIdTaTAAMFBAC1g46HPYSA
UplLYRdd5oTXWG7SoiCvu4wLmNOkVclIK1tepMVFAKhhu3m5w1EiYdfMYW4sRFWA
+z9YyzmWeoJwBkbkmWgR8MHvf5Xp56GSKlB93artFRPuad45vVnoFuwX6yZeSj1i
TbXFe+YxVm/YoqJkegLMX2HU/C4u2rOcoIhGBBgRAgAGBQI5YL32AAoJEGkqxFnk
LVR7G4UAoLkksoQD45ntA5PUkJbIGXaEqokPAKCa3RVrnNfp5qzfAn8uo4EWg8eb
1w==
=Sm+P
-----END PGP PUBLIC KEY BLOCK-----
如此可以解决。

yum服务器架设

[ 2008-07-15 13:56:59 | 作者: Admin ]
yum服务器架设
(RHEL5之前的对光盘支持不是很完美)

  查了网上的资料, 好像RHN的up2date升级必须使用redhat自己的服务器, 所以内网的Fedora升级就考虑使用yum来代替.


  我是用以前在192.168.1.43上做的FC4的FTP安装为基础架的. 这样FC4的安装盘的RPM不需要重新复制了. FC4 FTP安装目录是/home/homepage/software/os/fc4/Fedora/,学生只要在安装的时候使用启动盘启动, 选择ftp安装, 地址填写192.168.1.43, 目录填写/, 帐号密码都填写fc4就可以了.

  然后下载FC4迄今为止所有的补丁, 在任何一台Fedora的镜像服务器上都可以找到. 把它们放在/home/homepage/software/os/fc4/update下. 然后创建yum需要的header文件. 在Fedora以前,这一步使用yum-arch命令完成, 由于fedora3之后使用了新版本的yum, 需要使用XML的数据文件, 所以需要使用新的方法. 首先确认安装了createrepo软件包(在FC3之后版本的安装盘里都有这个rpm), 使用createrepo 来生成需要的yum数据文件. 安装盘的RPM目录和update目录都要做一遍. 需要注意的是, 由于我之前做的FC4 FTP安装使用了软链接, 而yum-arch无法处理软链接, createrepo就没有这个问题.

接下来确定FTP或者HTTP服务器是否正常运行. 这样服务器端基本上配置完成了.

最后需要在客户端更改yum的配置文件/etc/yum.conf的几处:

[base]
name=Red Hat Linux $releasever - $basearch - Base
baseurl=ftp://fc4:fc4@192.168.1.43/Fedora

[updates]
name=Red Hat Linux $releasever - Updates
baseurl=ftp://fc4:fc4@192.168.1.43/update

FC3以及FC4中也可以把配置独立放在/etc/yum.repos.d/下, fedora.repo设定base, fedora-updates.repo设定update.

之后客户端就可以利用yum更新了, 简单命令介绍:

#更新升级
$yum update
#安装软件包
$yum install 软件包1 [软件包2] [...]
#功能和yum update类似, 不同在于yum upgrade会连一些旧的软件也一起升级, 类似在做大规模的版本升级动作(例如从xxx Linux 8.0升级到xxx Linux 9)
$yum upgrade [软件包1] [软件包2] [...]
#卸载软件包
$yum remove 软件包1 [软件包2] [...]
#清除缓存目录下(/var/cache/yum)的软件包
$yum clean packages
$yum clean (或yum clean all)
#列出所有的软件包
$yum list
#列出所有可以更新的包
$yum list updates
#列出所有已安装的软件包
$yum list installed
#列出所有已安装但不在Yum Repository内的软件包
$yum list extras
#检查可以更新的软件包
$yum check-update
#列出所有软件包的信息
$yum info
#列出所有可以更新的软件包信息
$yum info updates
#列出所有已安装的软件包信息
$yum info installed
#列出所有已安装但不在Yum Repository内的包信息
$yum info extras
#列出安装包提供哪些文件
$yum provides 安装包1 [安装包2] [...]
#搜索软件包
$yum search [参数]

需要注意的是, 如果在yum.conf中的gpgcheck=1, 那么在更新的时候需要导入GPG KEY, 使用命令

$rpm --import ftp://fc4:fc4@192.168.1.43/RPM-GPG-KEY

就可以正常更新了.

AMBER分子动力学简例(三)

[ 2008-07-14 17:45:58 | 作者: Admin ]
AMBER分子动力学简例(三)

分子动力学(2)

水环境中的分子动力学模拟

溶剂环境中的分子动力学模拟分为以下四步进行:

1、溶剂环境能量最优化。这一步保持溶质(蛋白)不变,去除溶剂中能量不正常的范德华相 互作用。

2、整系统能量最优化。去除整个系统中能量不正常的相互作用。

3、有限制的分子动力学。保持蛋白质不动,溶解溶剂的不同层,同时逐渐将系统温度从0K提升到300K。

4、整系统分子动力学模拟。在一个大气压,300K的环境下整个系统分子动力学模拟。可以得到成果的分子动力学模拟。
#############################

1、溶剂环境能量最优化。

该步骤的配置文件min1.in如下:

--------------------------------------------------------------------------------

oxytocin: initial minimisation solvent + ions
&cntrl
imin = 1,
maxcyc = 1000,
ncyc = 500,
ntb = 1,
ntr = 1,
cut = 10
/
Hold the protein fixed
500.0
RES 1 9
END
END

--------------------------------------------------------------------------------

该过程保持肽链不动,其中500.0单位是kcal/mol,表示作用在肽链上使其不动的力。“RES 1 9”表示肽链残基数目,因为我们学习使用的oxytocin有9个残基。

模拟命令如下:

sander –O –i min1.in –o min1.out –p oxy.top –c oxy.crd –r oxy_min1.rst –ref oxy.crd &

2、整系统能量最优化。

配置文件min2.in如下:

--------------------------------------------------------------------------------

oxytocin: initial minimisation whole system
&cntrl
imin = 1,
maxcyc = 2500,
ncyc = 1000,
ntb = 1,
ntr = 0,
cut = 10
/

--------------------------------------------------------------------------------

命令如下:

sander –O –i min2.in –o min2.out –p oxy.top –c oxy_min1.rst –r oxy_min2.rst &

3、有限制的分子动力学。

第一步分子动力学保持蛋白分子位置不变,但是不是完全固定每个原子,同时缓解蛋白分子周围的水分子,是溶剂环境能量优化。在这个步骤中,我们将主要目的是对特定的原子使用作用力使其能量优化。我们要优化溶剂环境,至少需要10ps,我们将使用20ps用来优化我们上两步制作的分子系统的周期性边界的溶剂环境。

命令配置文件md1.in如下:

--------------------------------------------------------------------------------

oxytocin: 20ps MD with res on protein
&cntrl
imin = 0,
irest = 0,
ntx = 1,
ntb = 1,
cut = 10,
ntr = 1,
ntc = 2,
ntf = 2,
tempi = 0.0,
temp0 = 300.0,
ntt = 3,
gamma_ln = 1.0,
nstlim = 10000, dt = 0.002,
ntpr = 100, ntwx = 500, ntwr = 1000
/
Keep protein fixed with weak restraints
10.0
RES 1 9
END
END

--------------------------------------------------------------------------------

上述参数解释如下:
ntb = 1:表示分子动力学过程保持体积固定。
imin = 0:表示模拟过程为分子动力学,不是能量最优化。
nstlim = #:#表示计算的步数。
dt = 0.002:表示步长,单位为ps,0.002表示2fs。
temp0 = 300:表示最后系统到达并保持的温度,单位为K。
tempi = 100:系统开始时的温度。
gamma_ln = 1:表示当ntt=3时的碰撞频率,单位为ps-1(请参考AMBER手册)
ntt = 3:温度转变控制,3表示使用兰格氏动力学。
tautp = 0.1:热浴时间常数,缺省为1.0。小的时间常数可以得到较好的耦联。
vlimit = 20.0:保持分子动力学稳定性速度极限。20.0为缺省值,当动力学模拟中原子速度大于极限值时,程序将其速度降低到极限值以下。
comp = 44.6: 溶剂可压缩单位。
ntc = 2:Shake算法使用标志位。1表示不实用使用,2表示氢键将被计算,3表示所有键都将被计算在内。
tol = #.#####:坐标位置重新设置的几何位置相对容忍度。

我们将使用一个较小的作用力,10kcal/mol。在分子动力学中,当ntr=1时,作用力只需要5-10kcal/mol(我们需要引用一个坐标文件做分子动力学过程的比较,我们需要使用"-ref"参数)。太大的作用力同时使用Shake算法和2fs步长将使整个系统变得不稳定,因为大的作用力使系统中的原子产生大频率的振动,模拟过程并步需要。

运行命令如下:

sander –O –i md1.in –o md1.out –p oxy.top –c oxy_min2.rst –r oxy_md1.rst –x oxy_md1.mdcrd –ref oxy_min2.rst –inf md1.info&

进行MD的运行时间一般较长,可以使用程序的并行版本提交集群计算。在主频位2.0GHz的P4单机上,大概需要一个钟头。可以随时查看md1.in文件的程序输出。

4、整系统分子动力学模拟。

这一步中,我们将进行整个系统的分子动力学模拟,而不对某些特定原子位置进行限制。因为知识一个小例子,我们将只进行250ps的MD计算。配置文件md2.in如下:

--------------------------------------------------------------------------------

oxytocin: 250ps MD
&cntrl
imin = 0, irest = 1, ntx = 7,
ntb = 2, pres0 = 1.0, ntp = 1,
taup = 2.0,
cut = 10, ntr = 0,
ntc = 2, ntf = 2,
tempi = 300.0, temp0 = 300.0,
ntt = 3, gamma_ln = 1.0,
nstlim = 125000, dt = 0.002,
ntpr = 100, ntwx = 500, ntwr = 1000
/

--------------------------------------------------------------------------------

上面一些参数解释如下:
ntb=2:表示分子动力学过程的压力常数。
ntp=1:表示系统动力学过程各向同性。
taup = 2.0:压力缓解时间,单位为ps。
pres=1:引用1个单位的压强。
使用以下命令进行MD:
sander –O –i md2.in –o md2.out –p oxy.top –c oxy_md1.rst – r oxy_md2.rst –x oxy_md2.mdcrd –ref oxy_md1.rst –inf md2.info &

模拟时间较长,在P4单机2.0GHz的上需要7.5个小时。
到此,模拟全部完成,接下来要对得到的数据进行分析。主要数据文件.out文件,包含系统能量、温度,压力等等;.mdcrd文件,是分子动力学轨迹文件,可以求系统蛋白的RMSD,回转半径等等。数据分析根据不同的研究目的不同而不同,我们将在后文中进行一些简单的分析。

AMBER分子动力学简例(二)

[ 2008-07-14 17:44:56 | 作者: Admin ]
AMBER分子动力学简例(二)

分子动力学(1)

真空模式

真空模式分子动力学模拟将使用NVT系宗分两步进行,即系统能量最优化和分子动力学过程。

1、系统能量最优化。我们将使用淬火能量最优化解除系统内原子之间的不正常相互作用,这些原子之间的高能量相互作用如果不消除,可能影响后续的分子动力学过程。因为动力学过程是能量梯度变化的,太高的能量壁垒可能让MD局限在某一个能量局部最小化位置中。

Sander程序是分子动力学模拟程序,它的主要功能是能量最优化,动力学模拟和NMR优化计算。我们必须给Sander一个运行的配置文件,使其按照我们的要求进行计算。能量最优化的配置文件如下:

"min_vac.in"

--------------------------------------------------------------------------------

oxytocin: initial minimization prior to MD

&cntrl
imin = 1,
maxcyc = 500,
ncyc = 250,
ntb = 0,
igb = 0,
cut = 12
/

--------------------------------------------------------------------------------

Sander程序的基本命令参数如下:

sander –O –i in –o out –p prmtop –c inpcrd –r restrt [-ref refc –x mdcrd –v mdvel –e mden –inf mdinfo]

所以我们的命令可以如下:

sander –O –i min_vac.in –o min_vac.out –p oxy_vac.top –c oxy_vac.crd –r oxy_vacmin.rst &

可以使用more命令或者tail命令查看min_vac.out的输出内容,那是能量最优化的记录。

2、分子动力学模拟。

Sander程序的配置文件为:

md_vac.in

--------------------------------------------------------------------------------

oxytocin MD in-vacuo, 12 angstrom cut off, 250 ps
&cntrl
imin = 0, ntb = 0,
igb = 0, ntpr = 100, ntwx = 500,
ntt = 3, gamma_ln = 1.0,
tempi = 300.0, temp0 = 300.0,
nstlim = 125000, dt = 0.002,
cut = 12.0
/

--------------------------------------------------------------------------------

命令为:

sander –O –i md_vac.in –o md_vac.out –p oxy_vac.top –c oxy_vacmin.rst –r oxy_vacmd.rst –x oxy_vacmd.mdcrd –ref oxy_vacmin.rst –inf mdvac.info &

MD的计算过程一般比较久,真空相对与溶剂中要快以下,250ps的模拟大概在一个主频为2。0GHz的Linux单机上运行5分钟。

以上配置文件中用到很多参数,这些参数这是sander程序参数的一小部分,以下将相应解释。如果要了解sander的其他参数,请阅读AMBER用户指南。

&ctrl和"/":sander的参数一般要求出现在这两个标识符号之间,参数以及这两个标识符被称做控制模块。

cutoff:以纳米为单位的截矩。即超出截矩范围的非键连接相互作用将不计。

ntr:原子位置能量抑制位,1表示抑制,0表示不抑制。

imin:能量最优化标志位。1表示sander将进行能量最优化,0表示让sander进行分子动力学模拟。

macyc:能量最优化次数。

ncyc:便是经过多少次能量优化以后,能量优化从淬火过程变为梯度变化过程。

ntmin:能量优化方法标志位。0表示前10个能量最优化为淬火过程,然后进行梯度能量优化;1表示ncyc次淬火过程,然后进行梯度能量优化,为默认值;2表示只进行淬火过程。

dx0:表示启动模拟步长。

dxm:最大优化步数。

drms:梯度能量优化标准,默认值为1.0E-4 kcal/mol.A。

更多参数将在后文中解释。

AMBER分子动力学简例(一)

[ 2008-07-14 17:42:53 | 作者: Admin ]
AMBER分子动力学简例(一)

概述

以下是使用AMBER包的简单教程,希望对开始学习分子动力学的同学有用处。申明一下,以下教程原版来自网上,是最最基本的教程,同时也非常实用,有非常好的借鉴意义。

AMBER分子动力学程序包是加州圣弗兰西斯科大学(University of California San Francisco,UCSF)的Peter A Kollman和其同事编的,程序很全,现在已经发展到版本9.0。AMBER功能涵盖种类非常多的生物分子,包括蛋白、核算以及药物小分子。软件详细情况请浏览http://amber.scripps.edu.

以下是AMBER软件包中四个主要的大程序:

--------------------------------------------------------------------------------

Leap:用于准备分子系统坐标和参数文件,有两个程序:

xleap:X-windows版本的leap,带GUI图形界面。

tleap:文本界面的Leap。

Antechamber:用于生成少见小分子力学参数文件的。有的时候一些小分子Leap程序不认识,

需要加载其力学参数,这些力学参数文件就要antechamber生成。

Sander:MD数据产生程序,即MD模拟程序,被称做AMBER的大脑程序。

Ptraj:MD模拟轨迹分析程序。

--------------------------------------------------------------------------------

学习项目

本教程研究的题目是脑下垂体荷尔蒙之一的oxytocin,需要X光衍射晶体结构文件1NPO.PDB。该文件包含了该荷尔蒙和其运载蛋白的复合物,可以从蛋白数据库下载。

PDB文件是不包含氢原子的,Leap程序会自动的加上PDB文件缺少的东西。当第一次使用PDB文件的时候,要十分留意文件包含的信息,所以PDB文件缺少的残疾、侧链或者添加的变异都在这个地方记录。可以用文本阅读程序阅读PDB文件头部的信息,即以REMARKS开头的信息文本行。PDB一个重要的信息是SSBOND记录,该记录说明结构中二硫键的位置,这样的信息在使用Leap程序建立分子结构的时候需要。在本教程中,我们将比较oxytocin在真空和溶液中分子动力学的差异,如果没有二硫键,将影响整个结果。整个过程在Linux系统下完成,如对Linux不熟悉,请翻阅有关Linux书籍。

建立项目目录,并进入该目录:

mkdir myproj

cd myproj

下载1NPO.PDB文件到该目录下,使用文本阅读器阅读该PDB文件。从在文件的开头部分可以得到该文件是一个二聚物的PDB文件,删除文件中A、C、和D链对应的文本行,剩下的就是oxytocin的晶体机构了,保存为oxyt.pdb文件。

使用Swiss PDB viewer分析以下oxyt.pdb文件,可以得知该pdb文件缺少了一个侧链。如果使用Deep View,它会自动给文件加上侧链。重新保存pdb文件为oxyt.pdb文件。

xleap和tleap程序功能是一样的,都是准备分子结构的坐标文件和拓扑文件。xleap启动一个X界面,比较慢。tleap纯文本,要快一些,我们选择tleap:

tleap -s -f leaprc.ff03

其中leaprc.ff03是AMBER的2003力场文件。力场是一个很重要的文件,定义了分子、原子和残疾等的信息,请查阅有关资料。

oxy=loadpdb oxyt.pdb

该命令读入oxyt.pdb文件到oxy变量中。

bond oxy.1.SG oxy.6.SG

连接oxy变量的第一和第六个残疾的SG原子,即是连接二硫键。可以使用check命令检查oxy是否完好,没有特殊情况的话,最后应该是“OK”,表示分子系统状态是好的,可以保存。

check oxy

接下来就是保存分子系统了:

saveamberparm oxy oxy_vac.top oxy_vac.crd

其中oxy_vac.top和oxy_vac.crd分别是分子系统真空状态下的拓扑和坐标文件。

接下来要给分子系统添加水环境,

solvateoct oxy TIP3PBOX 9.0

该命令让Leap程序使用TIP3PBOX水模型,水环境距离分子为9纳米。也可以用solvatebox命令,但是solvatebox添加的水环境是一个立方体,不是八面体。一般要求水表面到蛋白距离要达到8.5纳米,避免MD过程中蛋白冲出水环境,但是水环境越大计算时间将越长。如果MD过程内含PME,那么水箱长度要大于2倍截矩(cutoff),截矩在MD配置文件中定义。加溶剂之后,要计算系统是否为电中性,使用命令:

charge oxy

如果现实不是电中性,要使用addions添加反性电荷,如Cl-或者Na+等。

最后保存溶剂环境的系统拓扑结构和坐标文件,并退出Leap程序:

saveamberparm oxy oxy.top oxy.crd

quit

也可以把命令集中到一个,让tleap读取。如将上面的命令集中到以下文件中

"oxy.leaprc"

--------------------------------------------------------------------------------

source leaprc.ff03

oxy=loadpdb oxyt.pdb

bond oxy.1.SG oxy.6.SG

check oxy

saveamberparm oxy oxy_vac.top oxy_vac.crd

solvateoct oxy

saveamberparm oxy oxy.top oxy.crd

quit

--------------------------------------------------------------------------------

将以上两横线之间的命令保存为"oxy.leaprc",然后使用以下命令一步搞定:

tleap -s -f oxy.leaprc

到此,分子系统准备已经完成,目录中会多了一个leap.log文件,这是Leap程序的记录文件,它包含了leap程序所做的一切,包括自动的和手动命令。

现在已经有了可以进行分子动力学的基本文件了,再编写sander的控制文件,就可以进行模拟了。这些将在后文中介绍。

MPI的使用

[ 2008-07-14 17:31:37 | 作者: Admin ]
环境设置

一.1000A

环境变量的设置

  在曙光天潮 1000A并行系统中,MPICH 安装于 ‘/usr/local/mpich’, 因此应设置相应的环境变量。若使用csh ,则在 $HOME/.cshrc 文件中加入以下内容:

  set path=( $path /usr/local/mpich/bin )
  setenv MANPATH ${MANPATH}: /usr/ local/mpich/man

  类似地,若使用ksh 或 bsh,则应在 $HOME/.profile文件中加入相应内容。

[注]: 通常系统管理员已为你设置好环境。

Architecture和Device

  Architecture (简记为ARCH) 是指MPICH所用的机器类型;而device(简记为DEV) 是指MPICH采用何种方式实现处理机之间的通信。对应于每个ARCH/DEV对的MPI库和命令置于子目录 ‘/usr/local/mpich/lib//’中, 对于 1000A来说, 即是 ‘/usr/local/mpich/lib/rs6000/ch_p4,这一路径一般也应置于用户的 $HOME/.cshrc文件中, 否则有些命令将用全路径名称。

二.2000-I及3000

  在曙光3000系统中,MPI省缺地安装于”/cluster/mpi”下,因此应设置相应的环境变量。若使用csh,则在$HOME/.cshrc文件中加入相关内容;类似地,若使用ksh或bsh,则应在$HOME/.profile文件中加入相应内容。模板文件在”/cluster/userenv/CSHRC, PROFILE”。

[注]:往往系统管理员已为你设置好环境。若在系统设置为MESH版的同时,运行网络版MPI程序,只需按网络版要求设置环境变量MPI_ROOT即可。另外,还需系统管理员开放所需节点用户的rsh权限。

  为使用方便起见,我们建议用户作如下的设置:

(1)设置环境变量

csh类:
  setenv MPI_INSTALL_DIR /cluster/mpi
  #according to the network setting to select MPI protocol
  if ( -f /cluster/config/sys.conf ) then
  @ net={ grep NET /cluster/config/sys.conf }
  if ($net) then
  setenv MPI_ROOT $MPI_INSTALL_DIR/net
  else
  @ mesh={ grep MESH /cluster/config/sys.conf }
  if ($mesh) then
  setenv MPI_MODE 1
  setenv MPI_ROOT $MPI_INSTALL_DIR/mesh
  endif
  endif
  else
  echo “/cluster/config/sys.conf is not found”
  endif
ksh类:
  MPI_INSTALL_DIR=/cluster/mpi
  export MPI_INSTALL_DIR
  #according to the network setting to select MPI protocal
  if [ -f /cluster/config/sys.conf ]
  then
  if cat /cluster/config/sys.conf | grep NET
  then
  export MPI_ROOT=$MPI_INSTALL_DIR/net
  else
  if cat /cluster/config/sys.conf | grep MESH
  then
  export MPI_MODE=1
  export MPI_ROOT=$MPI_INSTALL_DIR/mesh
  fi
  fi
  else
  echo “/cluster/config/sys.conf is not found”
  fi

(2)增加路径

  MPI系统本身提供了一些命令,例如简化的编译命令mpicc和mpif77,命令行执行命令mpirun等。建议用户将以下路径加入自己的命令路径中。
  set path=( $path $MPI_ROOT/bin ) 或
  export PATH=$PATH:$MPI_ROOT/bin
  
  用户可以随时使用man命令获取MPI各函数的帮助信息,需加入如下的帮助信息路径。
  setenv MANPATH $MANPATH: $MPI_ROOT/man 或
  export MANPATH=$MANPATH:$MPI_ROOT/man

[注]上述路径和环境变量在用户模板启动文件CSHRC和PROFILE中均已设置,用户可以检查系统缺省配置的.cshrc或.profile文件。不要改动.rhosts和.login文件。


INCLUDE文件

一.1000A

C语言应用程序开头应有:

  #include “ mpi.h”
  若使用cc 编译,命令行应有: - I/usr/local/mpich/include

Fortran语言应用程序开头应有:

  include ’mpif.h’
  若使用Fortran 编译, 命令行应有: -I/usr/local/mpich/include

二.2000-I及3000

在C语言应用程序中添加:
  #include “mpi.h”
  编译的时候,建立头文件路径为:
  net版:-I/cluster/mpi/net/include
  mesh版:-I/cluster/bcl/include -I/cluster/rms/include -I/cluster/sdr/include -I/cluster/mpi/mesh/include

在Fortran语言应用程序添加:
  include ‘mpif.h’
  编译的时候,建立头文件路径为:
  net版:-I/cluster/mpi/net/include
  mesh版:-I/cluster/bcl/include -I/cluster/rms/include -I/cluster/sdr/include -I/cluster/mpi/mesh/include


MPI库文件

一.1000A

C语言:

  使用C编译器时需作下述链接:
  -L/usr/local/mpich/lib/rs6000/ch_p4 -lmpi -lbsd

  数学函数库还应链接: -lm

Fortran语言:

  使用Fortran编译器时应作下述链接:
  - L/usr/local/mpich/lib/rs6000/ch_p4 -lmpi -lbsd



二.2000-I及3000

C语言:

  使用C编译器时需作下述链接:
  -L/cluster/mpi/net/lib -lmpi -lbsd (net版)
  -L/cluster/mpi/mesh/lib -L/cluster/bcl/lib -L/cluster/rms/lib -L/cluster/sdr/lib -lmpi -lbcl -lrms -lsdr (mesh版)

  数学函数库还应链接:-lm

Fortran语言:

  使用Fortran编译器时应作下述链接:
  -L/cluster/mpi/net/lib -lmpi -lbsd (net版)
  -L/cluster/mpi/mesh/lib -L/cluster/bcl/lib -L/cluster/rms/lib -L/cluster/sdr/lib -lmpi -lbcl -lrms -lsdr (mesh版)

  MPI提供了两个工具(mpif77和mpicc)来简化MPI应用程序的编译,在曙光3000系统上, 若编译器仅安装在login节点上,编译过程应在login节点进行。


编译MPI程序

一.1000A

  MPICH提供了两个工具来简化MPI应用程序的编译, 在曙光1000A并行系统上,编译过程应在主控节点进行。

make

  MPICH应用程序常常需要链接特殊的库和编译选项, 这时用户就要使用Makefile。为方便用户, MPICH提供了一个 make 文件的模板 ,同时也提供了命令‘mpireconfig’,以按所用并行机特点将这一模板转换为用户可用的‘Makefile’。这一模板即为 ‘/usr/local/mpich/examples/Makefile.in’ 文件。

  用户将其转换为自己可用的‘Makefile’文件的过程如下:

  1.用户 login 入主控节点 (如carrot), 并转入适当子目录下, 如包括MPI应用程序test.f 的子目录下。
  2.将文件拷入子目录 % cp /usr/local/mpich/examples/Makefile.in 下。
  3. 由 ‘Makefile.in’ 产生 ‘Makefile’ 文件:% mpireconfig Makefile。
  4. 按需要修改Makefile。

  上述过程产生的 Makefile 中包含一个Fortram程序 (pi3.f) 和两个C语言程序 (cpi.c和cpilog.c) 的编译命令, 按需要加入或修改所需要的内容, 如按 pi3.f 的编译命令加入test.f 编译所需内容或将 pi3 改为 test, 以备编译 test.f 之需。xlc 与 xlf 的编译选项也应按需要修改。

  编译有关程序只需使用下述命令:
    % make

  则 ‘Makefile’ 中所有列入的程序均被编译, 若只编译 test.f, 则需键入命令:
    % make test

  这时只编译test.f并生成目标test。

mpif77和 mpicc

  MPICH提供了两个命令 (mpif77和mpicc) 来编译和链接Fortran或C语言程序, 用户可使用此二命令编译MPI应用程序, 特别是当程序只包含少量文件时。mpif77 (mpicc) 与一般Fortran (或C) 编译命令使用方式类似, 可加入同样的选项,如:

    mpif77 -c foo.f
    mpicc -c foo.c 与
    mpif77 -o foo foo.o
    mpicc -o foo foo.o

  有时链接时需一些特殊库,应在链接时注明。

二.2000-I及3000

make

  MPI应用程序常常需要链接特殊的库和编译选项, 这时用户就要使用”makefile”。按需要修改makefile,主要是编译器路径的设置。编译有关程序只需使用下述命令:
    % make
  则 ‘makefile’ 中所有列入的程序均被编译,若只编译test.f,则需键入命令
    % make test
  这时只编译test.f并生成目标文件test。

  用户可以用以下的Makefile文件模板作C程序的编译:
  # Makefile for compiling MPI programs on Dawning-3000 system.
  #
  # This makefile is used to compile and link with MPI programs for BCL-1e
  # communication library and RMS resource management system written in C.
  #
  CC = /usr/bin/cc

  CLINKER = /usr/bin/cc
  OPTFLAGS =
  LIBS = -L$(MPI_ROOT)/lib -L/cluster/bcl/lib -L/cluster/rms/lib -L/cluster/sdr/lib -lmpi -lbcl -lrms -lsdr
  INCLUDES = -I/cluster/bcl/include -I/cluster/rms/inc -I$(MPI_ROOT)/include
  default: hello-world
  hello-world: hello-world.o
  $(CLINKER) $(OPTFLAGS) ${INCLUDES} -o hello-world hello-world.o ${LIBS}
  /bin/rm -f *.o *~
  clean:
  /bin/rm -f *.o *~ $(default)
  .c.o:
  $(CC) $(CFLAGS) ${INCLUDES} -c $*.c

  Fortran程序的Makefile文件模板如下:
  # Makefile for compiling MPI programs on Dawning-3000 system.
  #
  # This makefile is used to compile and link with MPI programs for BCL-1e
  # communication library and RMS resource management system written in Fortran.
  #
  F77 = /usr/bin/f77
  CLINKER = /usr/bin/f77
  OPTFLAGS =
  LIBS = -L$(MPI_ROOT)/lib -L/cluster/bcl/lib -L/cluster/rms/lib -L/cluster/sdr/lib -lmpi -lbcl -lrms -lsdr
  INCLUDES = -I/cluster/bcl/include -I/cluster/rms/inc -I$(MPI_ROOT)/include
  default: hello-world
  hello-world: hello-world.o
  $(CLINKER) $(OPTFLAGS) ${INCLUDES} -o hello-world hello-world.o ${LIBS}
  /bin/rm -f *.o *~
  clean:
  /bin/rm -f *.o *~ $(default)
  .f.o:
  $(F77) $(CFLAGS) ${INCLUDES} -c $*.f

mpif77和mpicc

  如果用户设置了正确的MPI系统命令的执行路径,就可以直接地使用命令行方式mpicc或mpif77来编译C或Fortran程序,编译方式与cc和f77完全一致。

  MPI提供了两个命令 (mpif77和mpicc) 来简化编译和链接MPI Fortran或C语言程序的过程,用户可使用此二命令编译MPI应用程序,特别是当程序只包含少量文件时。mpif77 (mpicc) 与一般Fortran (或C) 编译命令使用方式类似, 可加入同样的选项(详细选项可见有关编译器选项的说明),如:
    mpif77 -c foo.f
    mpicc -c foo.c
    mpif77 -o foo foo.o
    mpicc -o foo foo.o

  有时链接时需一些特殊库, 应在链接时注明。使用mpicc和mpif77省略了有关MPI的路径设置。


运行MPI程序

一.1000A

  在曙光天潮1000A系统上, 所有MPI应用程序均应在计算节点 (即node1 - node 8或hnode1 - hnode8) 运行, 因此在应用程序编译好后, 用户应登录到适当节点, 运行应用程序。

  MPICH提供了如下方式来运行MPI程序, 现分述如下.

1.mpirun 命令

  命令mpirun -help会给出全部可用的选项, 适当地使用这些选项能更好地运行应用程序, 并改善系统运行状况。

  mpirun的基本格式为:

    mpirun [mpirun-options…]

[options…]

  其中 [mpirun-options…], 主要选项如下:

    -np      要加载的进程个数。

    -p4pg

  按照pgfile文件中的要求加载用户进程。pgfile文件描述用户在那些结点上加载什么样的用户进程。该文件的格式为:

  第一行:<结点名> <0> <用户要加载的进程--允许使用绝对路径>
  第二行:<结点名> <1> <用户要加载的进程--允许使用绝对路径>
              ……
  第n行:<结点名> <1> <用户要加载的进程--允许使用绝对路径>

  其中n为用户要加载进程的个数。结点名可以相同,也可以不同。且用户使用此选项后, -np选项无效。

  最简单的运行一个MPI应用程序的例子是:

    % mpirun -np 4 a.out,它将在并行机上加载4个用户执行程序 --a.out。

  一般情况下最好用-p4pg选项,pgfile文件包含有关进程在哪些节点上运行的信息。如你已登录到节点node1, 并用4个节点执行你的并行程序 a. out, 执行文件的全路径是:/public/user1/example/a.out, 则pgfile内容如下:

  node1 0 /public/user1/example/a.out
  node2 1 /public/user1/example/a.out
  node3 1 /public/user1/example/a.out
  node4 1 /public/user1/example/a.out

  这时的执行命令为:

    % mpirun -p4pg pgfile a.out

  你也可以在一个节点(如node1)上模拟多进程并行程序的执行, 这时pgfile的一个例子是:

  node1 0 /public/user1/example/a.out
  node1 1 /public/user1/example/a.out
  node1 1 /public/user1/example/a.out
  node1 1 /public/user1/example/a.out

2.程序的直接执行

  用户也可以不用mpirun, 而直接运行目标程序(a.out),但此时需用pgfile,其命令格式如下:

    % a.out -p4pg pgfile

3.使用计算网

  使用计算网的优点是通信速度快, 程序运行性能得到改善。建议用户使用计算网来运行MPI应用程序,这时只需将pgfile中第一列的nodei (其中1≤i≤8) 改为hnodei。则pgfile内容将改为:

  hnode1 0 /public/user1/example/a.out
  hnode2 1 /public/user1/example/a.out
  hnode3 1 /public/user1/example/a.out
  hnode4 1 /public/user1/example/a.out
  则,用户进程a.out的加载命令为:

    %mpirun -p4pg pgfile a.out

  或者,

    %a.out -p4pg pgfile

二.2000-I及3000

  在曙光3000系统上,所有MPI应用程序均应在计算节点运行,因此在应用程序编译好后,使用mpirun命令运行MPI应用程序。mpirun命令完整的格式如下:
  mpirun [-h|-?|-help] [-sz size|-sz hXw] [-np nprocs] [-pl poolname]

  各个选项的值由用户从命令行中显示地指定,选项的含义如下:
  -h
  -?
  -help:显示帮助信息。

  -sz
  指定物理节点的数目有两种指定形式。一是直接指定size值,另一种是指定物理节点的矩形域的长和宽。size值和h*w的值如果超过所在pool的节点数,sz项的值取pool的节点数,h*w值取整个pool。两者的缺省值分别为所在pool的节点数和整个pool。

  -np
  用户期望运行的进程数。进程数与实际申请的物理节点数没有任何联系,因为允许一个节点上运行同一个应用的多个进程。如果未指定,取实际sz项的值。

  -pl

  应用程序执行的pool。应用程序的每次执行能且只能在一个pool中执行。缺省值为系统为用户设置的缺省的pool名(每个用户在创建时已自行指定或系统分配了一个缺省的pool)。

  在运行选项后,是用户的程序名。该可执行文件必须在所指定的或缺省的pool中的所有节点上能找到,并且与启动节点上的路径一致。用户程序名后的一切字符串都视为其参数(不包括被shell解释的重定向等,对shell解释的一些特殊字符,如需作为参数,应作相应的转换)。因此运行选项与用户程序名有先后的顺序,先运行选项,后用户程序名和参数。

  执行mpirun命令的一些简洁方式举例如下:

    mpirun [-np nprocs][-pl poolname]

  未显示指出物理节点数,缺省值是整个pool的节点数。表明该应用程序在整个pool的所有节点上运行。如果nprocs > pool的节点总数,每个节点上至少有一个进程;否则仅在该pool中nprocs个节点上执行,每个节点上运行一个进程。

    mpirun [-pl poolname]

  未显示指出物理节点数和进程数,两者的缺省值是pool的节点总数。

    mpirun [-np nprocs]

  未显示指出物理节点数和pool名,该程序在缺省的pool的所有节点上运行。

    mpirun [-pl poolname]

  未显示指出物理节点数和进程数,该程序在pool内所有节点上运行,每个节点上一个进程。

    mpirun

  在缺省的pool内的所有节点上运行该程序,每个节点上一个进程。

  用户调式MPI程序时,可以启动DCDB(Dawning Cluster DeBugger),在该环境下进行程序的调试。曙光3000安装有MPI版1.1版本(MPI_ch_p4),使用方法与曙光1000A上或任何网络环境上MPI的使用方法相同。MPI_ch_p4(MPI网络版)的系统路径在/cluster/mpi/net,在设置环境变量时要注意,具体运行方法参见曙光1000A

GPU通用计算开放行业标准计划启动

[ 2008-06-18 09:30:09 | 作者: Admin ]
负责推广OpenGL等开放标准的行业组织Khronos Group日前宣布,正式组建一个新的“计算工作组”,负责起草针对GPU、CPU并行计算进行编程的全免费开放行业标准。

该工作组的首批成员包括:3Dlabs、AMD、苹果、ARM、Codeplay、爱立信、飞思卡尔、Graphic Remedy、IBM、Imagination Technologies、Intel、诺基亚、NVIDIA、摩托罗拉、QNX、高通、三星、Seaweed、德州仪器和瑞典Umeå大学。工作组的目标非常明确,将运算核心越来越多,性能越来越强的GPU从仅限于图形运算领域的桎梏中解放出来,充分调动其运算能力。未来,该标准能够提供给不同厂商的硬件提供一个通用的应用程序接口,使计算机中的GPU和CPU共同发挥运算能力完成各类计算任务,包括同为该组织标准的OpenGL、OpenGL ES API加速,以及诸如物理效果运算,图像处理和图像识别等等。

有趣的是,这一开放标准的最初贡献者是一向以“封闭”著称的苹果公司。上周的WWDC苹果开发者大会上,苹果宣布预计明年发布的Mac OS X 10.6 Snow Leopard操作系统将引入名为OpenCL(Open Computing Language开放运算语言)的新特性,通过基于C语言的编程接口实现GPU通用计算支持。Khronos工作组表示,他们欢迎成员企业和全球其他任何企业为开放通用运算标准提供内容。但毫无疑问,苹果提出的OpenCL已经成了该标准的奠基石。甚至现在看来,苹果当初的命名想必也已经考虑了成为行业标准的前景。未来该标准直接定名为OpenCL,从目前来看几乎是一件顺理成章的事情。

当前,AMD和NVIDIA甚至Intel都有各自独立的GPU通用计算计划。而对消费者来说,一个开放的行业标准无疑要比各自为战的企业标准亲切的多。由于AMD、NVIDIA、Intel同为工作组成员,这一标准的提出为我们描绘了一个美好的未来:无需区分哪家厂商的产品,不分GPU、CPU,系统可以根据当时的应用需要,调动各个处理器的运算能力,以协同合作的方式最快速度完成工作。另外,Khronos Group还表示,该标准不仅面向桌面PC,还将针对嵌入式系统。从工作组名录中出现的诺基亚、爱立信、摩托罗拉、三星、高通等名字也能看出端倪,移动设备的通用计算肯定也在工作组的计划当中。

uploads/200806/GPU.png