24小时热门版块排行榜    

查看: 2837  |  回复: 37
当前主题已经存档。

zyz1981

至尊木虫 (文坛精英)

医学物理

mm5运行指南-pgi安装

1、从http://www.pgroup.com/下载。需注册帐号,注册帐号还必须有.edu.com.cn后缀的邮箱,否则不会注册成功,郁闷啊。
2、下载pgi for linux,5.X~6.X随你遍。
3、解压缩,进入当前目录
4、转到系统管理员,su root,执行安装,./install
5、按提示安装成功
6、用户主目录的bashrc,设置环境变量
         PATH=/opt/pgi/linux86/6.2/bin:$PATH
         export PATH
         MANPATH=/opt/pgi/linux86/6.2/man
         export MANPATH
         LM_LICENSE_FILE=/opt/pgi/license.dat
         export LM_LICENSE_FILE
         export PGI=/opt/pgi
    对应安装目录设置好即可,如果你的cpu为x86-64上面的目录就相应改为/opt/pgi/linux86-64/6.2
    然后source .bashrc 即可
7、如果你的系统为red hat linux as 5及以上fc5-fc8就会出现pgi识别不了glibc的错误。
查看glibc版本的命令为rpm -qa | grep glibe
    如果为2.5及以上,则不能识别,此时需要设置localrc 文件
8、进入/opt/pgi/linux86-64/6.0/bin 目录建立localrc 文件,输入
set LFC=-lg2c;
set LDSO=/lib64/ld-linux-x86-64.so.2;                  

set GCCDIR=/usr/lib/gcc/x86_64-redhat-linux/4.1.2;

set GCCINC=/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include;

set G77DIR=/usr/lib/gcc/x86_64-redhat-linux/4.1.2;
set LOCALRC=YES;

set THROW=__THROW=;
set HAMMER=;
然后 makelocalrc 则会出现提示命令,输入提示命令,还是提示glibe无法识别,但是此时pgi已可以运行。
9、安网上教程输入下面这些,我的系统的pgi还是无法用。 但粘出来供大家参考。
    set LDSO=/lib64/ld-linux-x86-64.so.2;                  

set GCCDIR=/usr/lib/gcc/x86_64-redhat-linux/4.1.2;

set GCCINC=/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include;

set G77DIR="";

set THROW=__THROW=;
10 其实这些都不用你安装个pgi7.x版本,glibc 多高版本照样支持。而且编译速度比pgi6.x快了好多,文件也小了点,主要是编译速度太快了,哈哈。
11、关于pgi7.x的高版本,大家可以搜索下,国内好多网站都可以下,而且有crack文件。

建议intel的cpu用intel的fortran编译器,那个速度比pgi要快好多。

转自:http://blog.sina.com.cn/s/blog_5f4f67510100cldk.html
21楼2010-01-29 14:12:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

PGI-linux 安装编译

安装PGI编译器
tar zxvf *.tar.gz #解包
cd /* #进入目录
./install #运行安装脚本文件
依照提示,一步一步安装,完成后,把license.dat(许可文件)拷如安装目录(补充:Intel网上下载的PGI非商业版:https://www.pgroup.com/support/downloads.php试用期限为15天,license.dat文件需要从注册后Intel回复的邮件链接中登陆才能获取,并且注册邮件需要单位提供的邮箱,163,雅虎等免费邮箱不能下载PGI包及license文件),然后修改bash环境变量,编辑.bash_profile,加入下面几行:

#######################################

PGI=/usr/pgi #指出PGI所在目录

export PGI #装载

PATH=$PGI/linux86/5.1/bin:$PATH #指出明令的目录

export PATH LD_LIBRARY_PATH=$PGI/linux86/5.1/lib:$LD_LIBRARY_PATH #指出库文件的目录

export LD_LIBRARY_PATH MANPATH=$MANPATH:$PGI/linux86/5.1/man #指出在线帮助的目录

export MANPATH LM_LICENSE_FILE=$LM_LICENSE_FILE:$PGI/license.dat #指出许可协议文件的目录

export LM_LICENSE_FILE

#######################################

PGI编译器安装完成注消一下再登录在控制台输入pgf90,报告命令语法错误就证明安装好了,报告命令没找到就先看看PGI/linux86/5.1/bin下面有没有pgf90这个程序, 没有就重新安装(这种情况不太可能出现).PGI/linux86/5.1/bin下面有pgf90的话,就是环境变量没设置好,检查. bash_profile.

注意:

(1)在Ubuntu下,如果不存在.bash_profile文件,可在/etc/profile_d里新建一个.sh文件(文件名可根据需要命名),并将上述内容写入.sh文件。系统启动时将自动扫描/etc/profile_d内的.sh文件,从而实现环境变量的设置。

(2)也可在终端Shell中,输入以上语句设置临时环境变量,可测试pgf90是否安装成功,但在Shell中设置属于一次性临时设置,若需要环境变量设置长期有效,还需要在/etc/profile_d中建立pgf90环境变量说明文件才行。

转自:http://liusimin122.blog.sohu.com/134176508.html
22楼2010-01-29 14:14:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

fedora下mpich安装和运行心得

第一步,到相关网站上下载mpich的安装包:

我采用的是1.2.7版本的mpich:
$ tar xzvf mpich-1.2.7.tar.gz
$ cd mpich-1.2.7

$ ./configure --prefix=/usr/local/mpich -rsh=ssh(注意这个地方)
$ make
$ make install

第二步,设置环境变量
vim /etc/profile
修改path,增加mpich的bin文件夹目录/usr/local/mpich/bin
source /etc/profile

第三步,修改配置文件

1.权限设置

为了能够在多个不同的机器上运行MPI程序,首先需要其它机器对启动MPI程序的机器放权,即允许启动MPI程序的机器访问其它机器。权限的设置主要有两种方法,一种是在其它所有机器的/etc/hosts.equiv文件中加入启动MPI程序的机器名。例如要在pc01这台机器上启动MPI进程,而计算过程中要用到pc02和pc03两台计算机,则需要在pc02和pc03机器的/etc/hosts.equiv文件中加入如下一行:

pc01

单机内此账户登陆无需授权,如果/etc/hosts.equiv文件不存在,则需要先创建该文件。

2.主机设置

要使MPI程序启动后能够在多个主机上并行执行,还必须对可用的主机进行设置,相应的配置文件为/usr/local/share/machines.LINUX。编辑该文件,在每一行写上可用的机器名。例如,只要在该文件中添加以下几行:

pc01
pc02
pc03

如果是单节点的话,不同的行可以写相同的节点。

第四步:书写并行程序

#include
#include “mpi.h”
int main(int argc, char **argv)
{
int myrank, nprocs, namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];

MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
MPI_Get_processor_name(processor_name, &namelen);

printf(“Hello World! I’m rank %d of %d on %s\n”, myrank,
nprocs, processor_name);

MPI_Finalize();
return 0;
}

第五步:编译运行

[xcz@localhost document]$mpicc -o hello hello.c
[xcz@localhost document]$ mpirun -np 4 hello
xcz@localhost.localdomain's password:
xcz@localhost.localdomain's password:
xcz@localhost.localdomain's password:
Hello World! I’m rank 0 of 4 on localhost.localdomain
Hello World! I’m rank 2 of 4 on localhost.localdomain
Hello World! I’m rank 3 of 4 on localhost.localdomain
Hello World! I’m rank 1 of 4 on localhost.localdomain

由于我在并行计算的时候,使用的是ssh,而我并没有配置ssh,进行无密码登陆,所以运行程序的时候需要输入用户密码。用户可以根据自己的系统环境,如果有rsh的可以直接在编译的时候不用加上-rsh=ssh选项。

出现的问题:

看问题之前,首先让我们来了解一下关于ssh和rsh的知识:

SSH(Secure Shell)是一安全的网络连接程序,它可以让你通过网络连接至其他电脑,在其他电脑上执行程序,在电脑之间拷贝文件,它甚至可以提供给你更安全的X连接,而以上的这些连接,都是在编码的保护下完成的。也就是说安装了SSH后就可以将不安全的Telnet和FTP给关掉了。

上面所说的各项功能,早期BSD所提供的r指令(rsh,rlogin,rcp)几乎都能完成,那为什么要用SSH呢?理由就在于r指令所提供的连接并没有经过编码加密,有心人只要使用合适的工具就能够截下你所输入的每一个字,包括密码。如果你利用X protocol在远端机器执行X程序,也可以截下你传输的资料,当然也包括密码。而SSH就针对了这些弱点做了弥补,对所传输的资料加以编码。

rsh(Remote Shell Protocol),远程shell协议(rsh)是允许一个用户在一个远程系统上执行命令而不需要登录这个系统的协议。例如,rsh能够用于远程检查许多接入服务器的状态而不需要连接到每个通信服务器,执行这个命令,然后从这个通信服务器断开。 Rsh起源作为BSD Unix操作系统的一部分作为在1983年在 4.2BSD远程登录命令包中的一部分。Rsh从那开始已经开始支持其它操作系统。Rsh基本上被安全Shell协议在现今的环境中取代。

了解了上面的知识以后,我们来看看我的问题。mpich运行环境既可以采用rsh也可以采用ssh登陆远程节点,MPICH默认采用rsh连接,若要使用安全性更高的ssh连接,安装MPICH时configure需加-rsh=ssh选项,而到了mpich2就默认的是采用ssh,而不用rsh了。

由于当时我不知道这一点,在configure的时候采用的是默认安装,所以选用的是rsh,可是我的系统fc8没有rsh,它支持的是ssh,所以当我安装完后,根本无法运行程序,经过查看后台服务,我发现机器上没有装rsh的任何服务,而是安装了ssh的服务sshd,所以我就试着安装mpich2,安装完成后,运行成功,说明就是rsh的祸,然后我又查找了一些资料,知道了解决的方法,那就是在configure的时候加上-rsh=ssh选项。


转自:http://doc.linuxpk.com/81183.html
23楼2010-01-29 14:18:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

MPICH的安裝和設定

1. ???dmpich

??ftp.mcs.anl.gov??pub/mpi?????????d

ex :

wget ftp://ftp.mcs.anl.gov/pub/mpi/mpich.tar.gz



2. ???s

ex :

tar zxvf mpich.tar.gz

????

gzip -dc mpich.tar.gz | tar xvf -



3. ?M?B?O??

???M????s???????????./configure???M?B?O?????O???????A?O?

./configure

?????help file?????????????

./configure --help

?????????PGI????fortran compiler?????ε??O??????

./configure -fc=pgf77 -f90=pgf90 --prefix=/tmp/mpich

-fc??????????????fortran compiler??-f90???O??????fortran90 compiler????????@?e????PGI??server?棬??????b?O????PGI??--prefix???compile??????????????????

??PGI??????????h????????O??env CFLAGS="-fast" CXXFLAGS="-fast" FFLAGS="-fast" F90FLAGS="-fast" LDFLAGS="-fast" \OPTFLAGS="-fast" CC="pgcc" CXX="pgCC"  F90="pgf90"  FC="pgf77"  CPP="pgCC -E" \./configure --prefix=/path/to/install/dir???fortran compiler??pgf77??pgf90???Bc & c++ compiler???pgcc

?????vasp????mpich???M?B?O??????

./configure -prefix=/usr/local/mpich_nodvdbg -fc="pgf77 -Mx,119,0x200000"  \

-f90="pgf90 -Mx,119,0x200000" \

--without-romio --without-mpe -opt=-O



4. ???g???b

???M?B?O?????????????make??M??compile

ex :

make

?Bcompile???]???e?`?l???????????????make install???b

ex :

make install



5. ?O??????????a??File System??remote shell

???P?O??????????NServer??????????a??????????(???h???NIS????NIS+)??File Systemy??????C?g??mount(???d)????????(??????NFS??autofs???)????????????node??????????thread?@?N??????SMP???C??????O????????Server??????remote shell?????O??(????M?B?O???r?]???????úηNremote shell??mpich?A?O?????rsh)



6. ?O??share/machine.LINUX

?????b???mpich????????shrea/machine.LINUX

ex :

cd /usr/local/mpich

???????mpich???b??/usr/local/mpich

cd share

vi machine.LINUX

hpk1:2

k31

k32

??machine.LINUX?n??????????mpich?????C???Q???????C?ж???thread???????????????????thread????



7. ?O??MPICH??h?????

export MPI_HOME=/usr/local/mpich

export MPI_ARCH=$MPI_HOME/bin/tarch

export PATH=$MPI_HOME/bin:$PATH

export MANPATH=$MPI_HOME/man:$MANPATH



8. ?y?MPICH

cd /usr/local/mpich

cd example

make

mpirun -np 4 pi3f90



Note :

????????ε??????C????O????MPICH??h?????????MPICH???????A?O??compiler?r??B??compiler??h?????????O??

????http://wsunccake.spaces.live.com ... B93B43420!116.entry
24楼2010-01-29 14:21:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

mpich2安装全过程

说明:本系统测试环境为centos4.3,并且以获得mpich2-1.0.5p4.tar.gz软件包。假设你的mpich2-1.0.5p4.tar.gz软件包已经下载到/root/目录下。以root用户登录。要求会使用vi文本编辑器修改文件。下面以四台pc为例。


准备工作:设置IP,更改主机名为node01,node02,node03,node04.


一、创建SSH信任连接(在root目录下)


1、更改/etc/hosts文件
#vi /etc/hosts   打开hosts文件,更改如下:


  127.0.0.1 localhost.localdomain localhost
  node01的IP scc-m(可以不做)
  node01的IP node01
  node02的IP node02
  node03的IP node03
  2、在node01生成SSH秘钥对.
#ssh-keygen -t rsa  一路回车即可
产生.ssh文件,
#ls -a   查看是否有.ssh文件夹

3、进入.ssh目录
#cd .ssh


4、生成authorized_keys文件
#cp id_rsa.pub authorized_keys


5、退出到root目录
#cd ..


6、建立本身的信任连接
#ssh node01     按提示输入yes(三个字母要打全)


7、设置node02(node02的root目录下)
#ssh-keygen -t rsa     生成.ssh文件夹
#scp node01的IP:/root/.ssh/* /root/.ssh    拷贝node01上的.ssh文件夹覆盖本地的
#scp node01的IP:/etc/hosts /etc/hosts      拷贝node01上的hosts文件覆盖本地的
#ssh node01  提示处输入yes回车


设置node03的方法与node02相同


8、确认3台机器的信任连接已建立
对每个节点执行:
#ssh node01
#ssh node02
#ssh node03
  在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)



二、安装MPICH2(在节点root目录下)


1、解压缩
#tar -zxvf mpich2-1.0.1.tar.gz
或者 #gunzip -c mpich2-1.0.1.tar.gz|tar xf mpich2-1.0.1.tar


2、创建安装目录
#mkdir /usr/MPICH-instsll


3、进入mpich2解压目录
#cd mpich2-1.0.1


4、设置安装目录
#./configure --prefix=/usr/MPICH-install


5、编译
#make


6、安装
#make install


7、退出到root目录
#cd ..


8、通过编辑.bashrc文件修改环境变量
#vi .bashrc
修改后的.bashrc文件如下:


# .bashrc


# User specific aliases and functions
  PATH="$PATH:/usr/MPICH-install/bin"   新增加的


#Source .bashrc


9、测试环境变量设置
#which mpd
#which mpicc
#which mpiexec
#which mpirun


10、修改/etc/mpd.conf文件,内容为secretword=myword
#vi /etc/mpd.conf


设置文件读取权限和修改时间
#touch /etc/mpd.conf
#chmod 600 /etc/mpd.conf


11、创建主机名称集合文件/root/mpd.hosts
#vi mpd.hosts


文件内容如下:
node01
node02
node03
三、测试


1、本地测试
#mpd &    启动
#mpdtrace 观看启动机器
#mpdallexit 退出


2、通过mpd.hosts运行集群系统
#mpdboot -n number -f mpd.hosts        number为要起动的机器个数
#mpdtrace
#mpdallexit



3、测试运行MPICH的例子程序
#mpdboot -n 4 -f mpd.hosts   启动4台机器
#mpiexec -n number /usr/MPICH-install/examples/cpi     number为使用的进程数
#mpdallexit


4、如果测试不能通过,请进行第四步



四、问题解决


1、通过mpdcheck获得一写帮助信息
#mpdcheck -pc

2、查错
#mpdcheck -l


3、通过mpd.hosts文件查错
#mpdcheck -f mpd.hosts  如果无错误
#mpdcheck -f mpd.hosts  -ssh


4、如果上述无错误,可略过此步
对任意两台机器进行查错
m1: #mpdcheck -s  输出主机名host和端口port
m2: #mpdcheck -c host port


注意:以上四步都是在没有运行mpd的情况下进行的


5、mpd查错
m1: #mpd -e & 返回使用的端口
m2: #mpd -h m1 -p echoed_port_m1 &

转自:http://www.xxlinux.com/linux/art ... /20070514/8413.html
25楼2010-01-29 14:22:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

MPICH的安装和配置

MPICH是MPI的一种具体实现。下面以1.2.4版本为例,介绍如何在Linux上安装和配置MPICH,此处采用的操作系统为Red Hat 7.3。

1.下载MPICH软件包

根据需要及机器配置的不同,可从http://www.mcs.anl.gov/mpi/mpich/download.html下载相应的MPICH软件包。此处采用的软件包是mpich-1.2.4.tar.gz。

$ tar xzvf mpich-1.2.4.tar.gz
$ cd mpich-1.2.4


$ ./configure --prefix=/usr/local
$ make


4.测试编译的正确性

$ cd examples/basic/
$ make cpi
$ ../../bin/mpirun -np 4 cpi


若该程序能正确运行,则表明整个MPI软件包的编译是正确的。注意,若在运行测试程序时出现“Permission denied.”的错误信息,可以试着以其它用户或重新登录后再运行该测试程序。

5.安装MPICH软件包

如果测试程序能够正确运行,则表明整个编译过程是正确的,此时就可以通过以下命令的执行来安装MPICH软件 $ cd ../../
$ su -c “make install”


6.权限设置

为了能够在多个不同的机器上运行MPI程序,首先需要其它机器对启动MPI程序的机器放权,即允许启动MPI程序的机器访问其它机器。权限的设置主要有两种方法,一种是在其它所有机器的/etc/hosts.equiv文件中加入启动MPI程序的机器名。例如要在node1这台机器上启动MPI进程,而计算过程中要用到node2和node3两台计算机,则需要在node2和node3机器的/etc/hosts.equiv文件中加入如下一行:

node1


这样就使得node2和node3都允许node1通过rlogin、rsh等命令进行访问。为了使一台机器能够同时运行多个 node1


如果/etc/hosts.equiv文件不存在,则需要先创建该文件。

设置权限的另外一种方法是通过.rhosts文件来实现。具体的做法是对MPI程序运行过程中要用到的所有计算机,在运行该程序账户的Home目录下创建一个.rhosts文件,并在该文件中标明允许哪些机器的哪些账户进行访问。

例如,在node1、node2和node3机器上都有gary这一账号,若要允许node1机器上的gary账号能够分别对nod node1 gary


为了简便起见,最好在每个机器上都建立相同的账户名,使得MPI程序能够在相同的账户下运行。以上的配置都是基于R系列命令的(包括rlogin、rsh、rexec等),这种配置对于一般应用来说已经足够了。但如果并行计算环境要求有相当高的安全性,则应该考虑用SSH来代替R系列命令,具体的做法请参考MPICH的相关文档。

7.主机设置

要使MPI程序启动后能够在多个主机上并行执行,还必须对可用的主机进行设置,相应的配置文件为/usr/local/share/machines.LINUX。编辑该文件,在每一行写上可用的机器名。例如,只要在该文件中添加以下几行:

node1
node2
node3


就可以有3台计算机供MPI使用。

至此,MPICH在一台机器上的安装和配置过程就基本结束。将相同的步骤应用于并行计算环境中其它的计算机后,就可以构造出一个基于MPICH的并行计算平台。



转自:http://www.cnblogs.com/twh/articles/446871.html

[ Last edited by zyz1981 on 2010-1-29 at 14:27 ]
26楼2010-01-29 14:24:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

单机UBUNTU下MPICH的安装与使用

第一步 安装SSH服务器和客户端
打开新立得,在全部里键入openssh,选择openssh-client和openssh-server标记安装应用,或者直接执行

$ sudo apt-get install openssh-client openssh-server


第二步 安装MPICH
打开新立得,在全部里键入mpi,选择mpi-bin、mpi-doc、libmpich1.0-dev标记安装应用

$ sudo apt-get install mpi-bin mpi-doc libmpich1.0-dev

第三步 测试安装

$ touch hello.c

键入以下内容到hello.c

1 #include
2 #include
3 int main(int argc, char *argv[])
4 {
5     int npes, myrank;
6     MPI_Init(&argc, &argv);
7     MPI_Comm_size(MPI_COMM_WORLD, &npes);
8     MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
9     printf("From process %d out of %d, Hello World!\n", myrank, npes);
10    MPI_Finalize();
11 }


$ mpicc -o hello hello.c

$ mpirun -np 2 hello #应该会输出两次Hello,中间可能要求输入密码,如不想输入密码,看第四步


第四步 取消SSH的密码步骤
$ ssh-keygen -t dsa #中间提示输入密码,直接回车,会在生成文件~/.ssh/id_dsa.pub

$ cat id_dsa.pub >> authorized_keys

$ mpirun -np 2 hello #应该没有密码输入提示了


转自:http://www.cnblogs.com/shaohm/archive/2009/06/12/1502311.html
27楼2010-01-29 14:37:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

在Windows上编译并安装ATLAS BLAS

如何在Windows上编译并安装ATLAS BLAS(上)
最近由于一些实验要用到线性代数库,因此便要找一个性能优良的,同时有公信力的线性代数库。
很早就知道了ATLAS的大名,在跨平台的高性能线性代数数学包中,可能要属ATLAS最有名了。因此从一开始便决定了要用ATLAS BLAS作为CPU的线性代数部分的性能和数学基准。
只是我在shell下面的经验太少,所以编译的时候被狠狠郁闷了一把。

因此这篇文章将以我的血泪史为一些E文和我一样烂的人铺好前进的道路。

ATLAS的版本里面,我推荐ATLAS 3.6.0的版本。不仅仅是因为这个版本是Stable的,更重要的是,3.7的版本安装方式有了不小的变化,一切都需要命令行直接设置,不像360可以依靠它所带的向导可以一步步的完成设置工作。因此安装起来颇为头大。所以以下的例子将以360为准。并且,如果需要支持多核或者多CPU,建议使用ScaLAPACK。

下载好ATLAS 360以后,第一反应自然是看Install.txt。

Install.txt里面说,如果你是在Windows系统下工作的话,需要参考另外一个帮助文档。实际上另外一个帮助文档只告诉你两件事情:

第一是如果你使用cygwin的话,那么一切都as normal,就是和Linux/Unix平台一样;
第二是如果你使用其它的编译器,如msvc或者icc(intel c++ compiler)的话,请参见XXX云云。

尽管理论上说支持MSVC和ICC,但是我觉得想用MSVC的同学还是先忍一忍,因为所有的编译参数都已经不是默认的了,需要重新设置,比方说INCLUDE和LIB,又比方说编译器选项。我又是个比较笨的人,所以就选择了as normal的cygwin。理论上说mingw也可以,但是mingw的sh不太好用,因此我也就没有在mingw上面顺利通过。同时如果你的机器上已经有mingw,记得安装完cygwin以后,把path这个环境变量里面mingw的路径替换成cygwin的路径。

先下载CYGWIN。gcc, g77, gnu make, mingw-gcc, mingw-g77, mingw-runtime这几项是必须要的。建议大家先选择Download without installing,把需要下载的东西准备好,然后在选择第三项从本地install。服务器很多人都推荐kernel.org。实际用来效果也不错。

cygwin下载,安装都OK了以后,先要补丁两个文件:
“Assembler renaming problem for Windows machine“ 和
“String overrun in config for long compiler paths”。
我之所以失败了无数次就是因为把这个给漏掉了。

补丁打好以后,先测试一下make,gcc,g77能不能正常工作。
如果无误以后,就可以动手了。

先启动cygwin,bash进入atlas的安装目录(就是install.txt所在的目录)
然后就是直接运行
make
这一步是全部向导,按照向导的说明完成配置就好了,正常来说,这一步不会出现任何错误。
然后便是运行
make install arch=
这里的arch在上一步make完成的时候已经给了个样例,抄下来就可以了。
然后就是漫长又漫长的编译过程。。。

编译好以后,可以在$atlas/lib/下面见到一些.a文件。对于gcc来说,这些就足够用了,但是对于msvc来说,这一步还不行。我们还需要把.a文件转换成dll+lib的方式,vc才能使用。

如何在Windows上编译并安装ATLAS BLAS(下)
我们在cygwin环境中已经编译完成了.a文件。现在我们要把.a文件转换成动态链接库才能被大部分的Windows下的环境调用。

这一步可以分为两个部分,
第一部分是将.a使用gcc转换成win下面的动态链接库;
第二部分是为了隐式链接,可以使用lib工具再从dll里面生成lib。

本来这是个比较麻烦的事情,不过好在网上已经有现成的脚本了。(点击下载)
有两个地方需要修改,
第一个是libg2c.a需要指向到对应的文件夹。如果大家的cygwin附带的gcc344/g77 344的话,那么只需要找到libg2c的位置就可以了。
我的安装位置是
CLIBPATH=/usr/lib/mingw
mingwclib="/lib/gcc/i686-pc-mingw32/3.4.4/libg2c.a $CLIBPATH/libmoldname.a $CLIBPATH/libmsvcrt.a"
如果是默认安装的话,这个设置应该是正确的。
第二个需要修改的地方在使用lib.exe生成链接库的时候。大家可以把环境设置的批处理文件路径设置正确就可以了。

转自:
http://www.cppblog.com/lingjingqiu/archive/2007/05/21/24559.html
http://www.cppblog.com/lingjingqiu/archive/2007/05/22/24597.html
28楼2010-01-29 14:44:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

Linux下Lapack如何安装

安装lapack

1) gzip –cd lapack-3.1.1.tgz | tar xf -

2) cd lapack-3.1.1

3) cp make.inc.example make.inc

4) gedit make.inc

         

. . . . . . . . .
FORTRAN  = g77
OPTS     = -funroll-all-loops -O3
DRVOPTS  = $(OPTS)
NOOPT    =
LOADER   = g77
LOADOPTS =
. . . . . . . . .


   

修改成:

      


. . . . . . . . .
FORTRAN  = gfortran
OPTS     = -funroll-all-loops -O3
DRVOPTS  = $(OPTS)
NOOPT    =
LOADER   = gfortran
LOADOPTS =
. . . . . . . . .


   

保存

     

5) gedit Makefile

如果之前没安装blas:

   


include make.inc

all: lapack_install lib lapack_testing blas_testing

lib: lapacklib tmglib
#lib: blaslib lapacklib tmglib

clean: cleanlib cleantesting cleanblas_testing
. . . .


   

修改成:

  


include make.inc

all: lapack_install lib lapack_testing blas_testing

#lib: lapacklib tmglib
lib: blaslib lapacklib tmglib

clean: cleanlib cleantesting cleanblas_testing
. . . .


  

保存

   

6) make

7) 复制blas_LINUX.a   lapack_LINUX.a和tmglib_LINUX.a则三个文件到/usr/lib和/usr/local/lib两个文件夹中,并改名为:libblas.a   liblapack.a和libtmglib.a


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

用glibc的命令ldd就能知道程序是否动态连接的。

产生blas动态库要改动两处,一处是make.inc中给编译器加fPIC命令行参数,另一处是在makefile中修改制造库的命令,制造动态库是使用gcc,而制造静态库是ar命令。

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

我给楼上再补充一句,改成:
OPTS     = -funroll-all-loops -O3 -msse2 -mfpmath=sse -ftree-vectorize -g

加上-msse2 -mfpmath=sse -ftree-vectorize让gfortran编译成矢量sse代码而不是x87,速度甚至能提高50%;加上-g便于调试。

如果不是gfortran而是ifort,使用xP选项可达到同样的目的。

转自:http://blog.163.com/wanghui_jl@1 ... 734720082241046315/
29楼2010-01-29 14:52:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyz1981

至尊木虫 (文坛精英)

医学物理

在Linux环境下Lapack软件包的编译和使用

  1. 从 netlab 下载最新版本的源代码
 
  http://www.netlib.org/lapack/lapack-3.1.0.tgz
 
  2. 将源代码解压缩
 
  tar -zxf lapack-3.1.0.tgz
 
  3. 编辑 make.inc 文件,进行一些系统相关的编译参数设置
 
  PLAT : 设置生成的库函数的后缀,比如 SUN, LINUX之类的,当然也可以不设置;
 
  FORTRAN : 设置编译器,比如 g77, gfortran, ifort, g95 等等;
 
  OPT:设置编译选项,根据具体的编译器和优化要求进行设置;
 
  LOADER : 设置成和FORTRAN 一样就可以了;
 
  4. 编辑 Makefile
 
  找到 lib: 选项。然后设置需要编译的库函数如下
 
  #lib: lapacklib tmglib
 
  lib: blaslib lapacklib tmglib
 
  默认的情况是不编译 blas 库的。
 
  5. 编译和测试 Lapack.
 
  在源代码的根目录下输入 make 回车。然后 make 程序就会自动进行编译和测试。
 
  6. Lapack 函数的使用
 
  如果编译和测试顺利的话会在源代码的根目录下生成三个文件 lapack.a、blas.a、tmglib.a.lapack.a 和 blas.a 就是我们所需要的库函数。它们的使用有两种途径:
 
  a) cp lapack.a liblapack.a , cp blas.a libblas.a 并拷贝到 LD_LIBRARY_PATH 目录下,或者它们所在的目录加入到 LD_LIBRARY_PATH 环境变量中,或者在编译时候加上 “-L lapack所在目录/” 选项。编译的时候加上编译选项 -llapack -lblas.
 
  b) 编译的时候直接把 lapack.a 和 blas.a 一起同需要编译的代码一起编译。比如 要编译的文件为 main.f90 编译器为 gfortran . gfortran main.f90 lapack.a blas.a.
 
  当然也可以将 Lapack 做成动态链接库文件的形式来使用。当然,在 linux 系统下也可以直接安装编译好的文件比如 redhat 、suse 安装 rpm 格式的文件,在 ubuntu 和 debian 系统下,安装 deb 格式的文件。但是最好还是根据自己的环境自己编译库函数,这样速度会快一些。我曾在 ubuntu 下做过实验一般情况下速度关系为,自己编译的库函数 > 编译好的库函数 > 调用 matlab 函数。
 

转自:http://linux.chinaitlab.com/soft/736727.html
30楼2010-01-29 14:53:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 maomao1210 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见