Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1105285
  • 博文数量: 264
  • 博客积分: 7225
  • 博客等级: 少将
  • 技术积分: 5096
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-17 08:53
文章分类

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类:

2008-12-22 20:41:15

« 上一篇 | 下一篇 »
 
CPMD编译(一)
[ 2008-07-26 10:01 | By: fpmd ]
 

总结网络上CPMD的编译和自己的情况,写到这里,供大家参考;第一部分

###########CPMD############################

转自http://wsunccake.spaces.live.com/blog/cns!AB8DB0BB93B43420!210.entry

 
SuSE 9.3上CPMD安裝設定(2)

5. 編譯CPMD

5.1 CPUx86_64 compilerPGI

./mkconfig.sh PGI-AMD64 > makefile

make

若沒有錯誤了,可以看到cpmd.x的執行檔,就恭喜你,已經編譯完成在用PGI安裝不太會有問題,會有問題通常是忘了設PGI的環境變數,而無法執行PGI

5.2 CPUx86_64 compilerPGIMPICH

./mkconfig.sh PGI-AMD64-MPI > makefile

vi makefile

修改23, 24行中的內容,因為CPMD是使用pgf90compile,所以安裝的mpich也必須用pgf90

23, 24

FC = mpif77 -c -fastsse -tp k8-64

LD = mpif77 -fastsse -tp k8-64

FC = mpif90 -c -fastsse -tp k8-64

LD = mpif90 -fastsse -tp k8-64

make

若沒有使用MPICH都可以編譯的過,有用MPICH也應該沒有多少問題

5.3 CPUx86_64 compilerIFORT

./mkconfig.sh IFORT-AMD64 > makefile

vi makefile

修改15行中的內容,現在的使用的CPU架構以苻合ia32ia32e,所以就改p7

15

FFLAGS = -pc64  -tpp6 -O2 -unroll

FFLAGS = -pc64  -tpp7 -O2 -unroll

make

5.4 CPUx86_64 compilerIFORTMPICH

./mkconfig.sh IFORT-AMD64-MPI > makefile

vi makefile

要修改的地方同5.3,在使用FCLD不需要修改

make

5.5 CPUx86    compilerPGI

./mkconfig.sh PC-PGI > makefile

vi makefile

修改15行中的內容-pc64有點語法錯要改成-pc 64

15

FFLAGS = -Mr8 -pc64 -Msignextend -Msecond_underscore

FFLAGS = -Mr8 -pc 64 -Msignextend -Msecond_underscore

21-23行,要針對不同的機器挑選不同的最佳化參數,FCLD不改還可以,但是CC-tp px選項一定要刪除,因為gcc沒有這語法

21-23

CC = gcc -O2 -Wall -tp px

FC = pgf90 -c -fast -tp px

LD = pgf90 -fast -tp px

CC = gcc -O2 -Wall -mcpu=pentium-m

FC = pgf90 -c -fast -tp p7

LD = pgf90 -fast -tp p7

make

compile時所用的函式庫是用PGI內附的,所以安裝上不太會有問題

5.6 CPUx86    compilerPGIMPICH

./mkconfig.sh PC-PGI > makefile

vi makefile

要修改的地方如5.5

修改15行中的內容-pc64有點語法錯要改成-pc 64

15

FFLAGS = -Mr8 -pc64

FFLAGS = -Mr8 -pc 64

21-23行,要針對不同的機器挑選不同的最佳化參數以及設定FCLD

21-23

CC = mpicc -O2 -Wall

FC = mpif77 -c -fast

LD = mpif77 -fast

CC = mpicc -O2 -Wall -mcpu=pentium-m

FC = mpif90 -c -fast -tp p7

LD = mpif90 -fast -tp p7

make

6. 測試CPMD

CPMD的網站上有提供測試範例,可以下載到cpmd-test.tar.gz,這個檔同樣的是個壓縮檔,所以一樣要解壓縮

tar zxvf cpmd-test.tar.gz

解完壓縮後可以看到CPMD-test的目錄,裡面有很多個資料夾,放的都是測試檔案

cd CPMD-test

在這裡就挑kpoints的目錄

cd kpoints

裡面有很多測試檔,這裡選用si8-k8x8x8-auto.inp此輸入檔,將這個測試檔複製到/tmp底下去測試,記得SI_MT_LDA要一起複製

cp si8-k8x8x8-auto.inp SI_MT_LDA /tmp

/tmp底下

cd /tmp

6.1 without MPICH

執行cpmd.x,後面要接輸入檔的全名,然後將輸出導到si8-k8x8x8-auto.log檔案裡

./cpmd.x si8-k8x8x8-auto.inp >& si8-k8x8x8-auto.log

若可以執行無誤,及沒問題了

6.2 with MPICH

mpirun -np 2 cpmd.x si8-k8x8x8-auto.inp >& si8-k8x8x8-auto.log

若有用MPICH的話,要藉由mpirun去執行才會達成平行運算的效果

Reference :

Homepage of Axel Kohlmeyer ~axel.kohlmeyer/home.html

CPMD Official Website

转自http://wsunccake.spaces.live.com/blog/cns!AB8DB0BB93B43420!210.entry
阅读(2532) | 评论(0) | 转发(0) |
0

上一篇:CPMD申请程序

下一篇:CPMD编译二

给主人留下些什么吧!~~