AMD数学核心库acml的安装使用

由于需要在共享内存机器上实现Lapack+openmp,安装acml(Intel® MKL也是可以的,不过考虑到服务器使用的是AMD多核心CPU就用acml了)。acml包含BLAS, Lapack, FFT, RNG四个部分,内建了openmp,也就是说不用手动控制多线程和多任务。在运用acml的程序中,只需要在运行的时候设置OMP_NUM_THREADS=n(例如export OMP_NUM_THREADS=n)就会以n线程运行。

根据操作系统和编译器,选择的acml版本,目前安装的版本是acml_gfortran_64bit_fma4_mp_int64用于gcc/gfortran编译器,acml_open64_64_fma4_mp_int64用于open64编译器。

安装目录/opt/acml。

编译方式:gfortran -fopenmp -m64 test.f -L/opt/acml/gfortran64_fma4_mp_int64/lib -static -lacml_mp -lrt
gcc需要加上-I, -lgfortran参数。
openf95 -mp test.f -L/opt/acml/open64_64_fma4_mp_int64/lib -lacml_mp
opencc需要加上-I,-lfortran参数
如果使用动态链接库so库文件而不是a库文件,需要
export LD_LIBRARY_PATH=open64_64_fma4_mp_int64/lib:$LD_LIBRARY_PATH

gcc(gfortran)是一个好的选择。

如果一定要使用open64的话,需要做以下open64的路径设置:
在个人用户.profile,或者/etc/profile文件添加:
AMDSDK_ROOT=/opt/amdsdk/v1.0
CodeAnalyst=/opt/CodeAnalyst
export PATH=$AMDSDK_ROOT/x86_open64-4.2.4/bin:$PATH
export PATH=$CodeAnalyst/bin:$PATH

由于open64的部分核心是32位的,必须安装i386的库:sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
然后建立lib64的符号链接:sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
注意,修改的路径在sudo下不能识别,必须用 sudo su – 模拟一个有通常路径的sudo用户。
(AMD的open64还是做的不够好!难道就不能完全64bit?)

fma4在Intel CPU上会出错,因此在Intel CPU上用acml_gfortran_mp就可以。当然,这种情况用Intel® MKL更好。

我会编辑一个gcc的和open64的Makefile。

Mediawiki的使用

组权限控制,wiki目录下的LocalSetting.php
用于组属性更改:特殊页面

基本概念:分类页面,通常页面,分类组织系统

常用编辑:

建立新页面:在检索框中查询XX,发现没有相关条目,自动出现创建界面,点击即可创建新页面。默认创建通常页面,如果需要创建分类页面,见下一条说明。
建立新分类:在检索框中查询Category:XX,发现没有相关条目,自动出现创建界面,点击即可创建新分类页面。
加入到存在的上级分类:在文章内容中加入[[Category:上级]],则此文章会自动在上级分类下显示。

节标题:== 节 ==
列表:*, **, ***
更多编辑的细节见Mediawiki编辑帮助
链接到分类:[[:Category:目标分类|需要的话可以换一个名字]]
链接到通常页面:[[页面名称]],例如[[人]],如果词条“人”存在,则链接自动建立

服务器上安装的软件

系统:Ubuntu 12.04LTS 64位 英语
语言:C (gcc), C++(g++),Fortran (gfortran), python, perl, linux-shell, make, install
科学计算工具包:Python-numpy, Python-scipy, Python-matplotlib, networksX, Python-setuptools, igraph, fftw, xdms2, gsl, r, blas, lapack, atlas, petsc, slepc, gnuplot, sprng2
并行计算:openmpi, mpich2 (mpiexec)
其他:latex, latex-cjk
大部分软件有两个版本,系统自带的,从源程序编译以后安装在/opt/目录下的。

注意:多核心并行运算必须用/opt/mpich2/bin/mpiexec,不能用系统默认的mpiexec。后者实际上是多核心重复计算。

需要高质量随机数的话,可以考虑用sprng2,一般情况gsl也基本够用。

线性代数:BLAS, lapack, atlas单核心;Petsc, Slepc并行
科学计算(积分、插值、特殊函数、随机数):gsl
傅立叶变换:fftw
网络:networkX, igraph

Linux下通常库函数的用法:已经安装在标准库函数的工具,直接引用头文件,然后编译的时候加一个相应的-lXXX,其中XXX为库的名字;安装在特定位置的软件包含用户在自己目录下安装的软件,需要-I头文件地址,-L库函数地址。

如果需要查看某一个软件包的编译参数,可以利用pkg-config命令,例如:
pkg-config –libs –cflags igraph

我自己的Ubuntu里的附加软件

gcc, gfortran, gsl, petsc, slepc, emacs, mpich2, torque, atlas, lapack, blas

latex, latex-extra, latex-publishers, latex-beamer, pdf-shuffler, pdf-chain

grace, gnuplot

sage(数学软件系统), xmds(微分方程数值求解,包含Schroedinger方程)

dropbox (改用https协议就能够登陆和下载)

chromium

vmplayer, windows 7, word(专门填表用的,丫的)