- 浏览: 531119 次
- 性别:
- 来自: 深圳
最新评论
-
w_mojian180:
有用吗?为啥我的不生效
grep遍历文件夹查找文本内容 -
1634801662:
var flag='${not empty logout}'; ...
js 中使用el表达式 -
wojiaowangtao:
js 中使用el表达式 -
cqian59420:
单引号也行的
js 中使用el表达式 -
chengang292214:
后台 controller 在request中放入loanva ...
js 中使用el表达式
前天应老大要求安装hpl。而hpl需要mpi库和blas库支持,于是选用openmpi1.4.3和gotoblas2。
需要说明的是openmpi的安装没有什么问题,除了路径的设定(要在./bash_profile中设定PATH和LD_LIBRARY_PATH)。而gotoblas的安装也不需要特别复杂的说明,直接运行主目录下的configure.64bit(我是64位机,所以选择这个,如果是32位机,就选用configure.32bit)。
最后一步安装hpl。这才是最难得一部分,害得我浪费了两天的时间。两天的时间,我都可以把小月月全集看个好几遍了。痛心啊。不过这也源于我自己的一贯不太好的习惯。认为linux下的程序安装就是简单的make就完事儿了。岂料hpl给我上了教训惨痛的一课。现在自己记录一下hpl的安装步骤。首先从/hpl/setup中选择一个Make.*文件,我选择的是Make.Linux_PII_CBLAS,复制这个文件到/hpl目录下,然后修改此文件。直接贴出修改的Make文件:
SHELL = /bin/sh # CD = cd CP = cp LN_S = ln -s MKDIR = mkdir RM = /bin/rm -f TOUCH = touch # # ---------------------------------------------------------------------- # - Platform identifier ------------------------------------------------ # ---------------------------------------------------------------------- # ARCH = Linux_PII_CBLAS # # ---------------------------------------------------------------------- # - HPL Directory Structure / HPL library ------------------------------ # ---------------------------------------------------------------------- # TOPdir = $(HOME)/hpl-2.0 INCdir = $(TOPdir)/include BINdir = $(TOPdir)/bin/$(ARCH) LIBdir = $(TOPdir)/lib/$(ARCH) # HPLlib = $(LIBdir)/libhpl.a # # ---------------------------------------------------------------------- # - Message Passing library (MPI) -------------------------------------- # ---------------------------------------------------------------------- # MPinc tells the C compiler where to find the Message Passing library # header files, MPlib is defined to be the name of the library to be # used. The variable MPdir is only used for defining MPinc and MPlib. # MPdir = $(HOME)/openmpi-1.4.3 MPinc = -I$(MPdir)/build/include MPlib = $(MPdir)/build/lib/libmpi.so # # ---------------------------------------------------------------------- # - Linear Algebra library (BLAS or VSIPL) ----------------------------- # ---------------------------------------------------------------------- # LAinc tells the C compiler where to find the Linear Algebra library # header files, LAlib is defined to be the name of the library to be # used. The variable LAdir is only used for defining LAinc and LAlib. # LAdir = $(HOME)/GotoBLAS2 LAinc = LAlib = $(LAdir)/libgoto2_nehalemp-r1.13.so $(LAdir)/driver/others/xerbla.o # F2CDEFS = # # ---------------------------------------------------------------------- # - HPL includes / libraries / specifics ------------------------------- # ---------------------------------------------------------------------- # HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib) # # - Compile time options ----------------------------------------------- # # -DHPL_COPY_L force the copy of the panel L before bcast; # -DHPL_CALL_CBLAS call the cblas interface; # -DHPL_CALL_VSIPL call the vsip library; # -DHPL_DETAILED_TIMING enable detailed timers; # # By default HPL will: # *) not copy L before broadcast, # *) call the BLAS Fortran 77 interface, # *) not display detailed timing information. # #HPL_OPTS = -DHPL_CALL_CBLAS HPL_OPTS = # # ---------------------------------------------------------------------- # HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES) # # ---------------------------------------------------------------------- # - Compilers / linkers - Optimization flags --------------------------- # ---------------------------------------------------------------------- # CC = $(MPdir)/build/bin/mpicc CCNOOPT = $(HPL_DEFS) CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops # # On some platforms, it is necessary to use the Fortran linker to find # the Fortran internals used in the BLAS library. # LINKER = $(MPdir)/build/bin/mpif77 LINKFLAGS = $(CCFLAGS) # ARCHIVER = ar ARFLAGS = r RANLIB = echo # # ----------------------------------------------------------------------
之后运行make arch=<arch>命令,安装成功。安装成功的标志就是在/hpl/bin/<arch>下出现xhpl和HPL.DAT两个文件。
当然这一切都是在吃亏之后才总结出来的,感谢以前的大侠。现在找出原帖:http://www.cnblogs.com/xulei/archive/2009/03/30/1425258.html
这几天的一些总结,先发在这,以后整理
Dawning 5000A安装的OS有SUSE,遂决定装个SUSE,在Novell的site上down了64-bit的DVD,准备在虚拟机上安装
我的HP的laptop的OS是32-bit Vista Ultimate SP1,CPU是64-bit的Intel Core 2 Duo T7500,
在上面安装VMware Workstation 6.5.1 bulid-126130,但是从安装光盘启动后显示:
This is a 32-bit computer. You cannot use 64-bit software on it!
VMware给出的错误信息:
This host is VT-capable, but VT is not enabled.
This is usually due to a BIOS/firmware problem. Please:
(1) Verify the BIOS/firmware settings enable VT mode.
(2) Power-cycle the host, if the BIOS/firmware VT settings were changed at boot.
(3) Power-cycle the host, if you have not done so since installing VMware Workstation.
(4) Update host BIOS/firmware to the latest version.
You
have configured this virtual machine to use a 64-bit guest operating
system. However, this host is not capable of running 64-bit virtual
machines or this virtual machine has 64-bit support disabled.
For more detailed information, see
http://vmware.com/info?id=152
按照提示做了,修改BIOS的"Virtualisation Technology"为Enable,restart了pc无数次,问题依旧,耗时n久,最后在网上找到答案:关机再开机
也就是电脑冷启动才能让BIOS的设置生效,restart是不行的。
回头看看提示第(2),(3)点发现早有说明"Power-cycle the host",也就是重新加电啊
看来自己的e文还是太烂,以后要加强学习
安装完suse后,发现locate和updatedb都不能用
google到解决方案:
http://www.linuxquestions.org/questions/susenovell-60/what-is-the-equivlent-of-locate-and-updatedb-in-suse-321117/
安装rpm包,位于DVD的:/suse/x86_64/findutils-locate-4.2.27-14.15.x86_64.rpm
安装后就可以使用locate和updatedb命令了
*.tar.gz/*.tgz、*.bz2形式的源代码软件包
安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2 先解压
然后进入解压后的目录:
./configure 配置
make 编译
make install 安装
卸载:make uninstall 或 手动删除
说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make
install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,
那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf
软件目录名”命令来进行干净彻底的卸载。
在linux下运行程序时显示"error while loading shared libraries :xxx.so cannot open shared object file: No such file or directory"
Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。
但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢?
目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so.conf,然后运行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加载共享库的时候,会从 ld.so.cache 查找。
传统上, Linux 的先辈 Unix 还有一个环境变量 - LD_LIBRARY_PATH 来处理非标准路经的共享库。ld.so 加载共享库的时候,也会查找这个变量所设置的路经。
http://jicknan.blogspot.com/2007/09/ldlibrarypath.html
http://blogs.sun.com/rie/date/20040710
如何让.bash_profile里面的设置立即生效?
bash: source .bash_profile
MPI(Message Passing Interface)是一套高性能计算使用的公共的通信接口,也是这套接口软件实现的名称,MPICH是MPI在以太网上实现软件的名称。
MVAPICH是MPI接口在Infiniband网路上的实现版本,使用方法基本一致,在Infiniband上具有较高的性能。
OpenMPI是MPI2实现的高性能的MPI,可以运行于任何网络上。
在SUSE下安装openmpi
在http://www.open-mpi.org下载1.3版本的openmpi在suse 10SP2下安装
依次执行:
./configure --prefix=/usr/local/openmpi-1.3
make
make install
安装完成后,进入安装文件包的examples目录,make,编译完测试程序
在$HOME目录下新建.bash_profile文件(suse默认没有.bash_profile文件),写入内容
PATH=$PATH:/usr/local/openmpi-1.3/bin
LD_LIBRARY_PATH=/usr/local/openmpi-1.3/lib
export PATH LD_LIBRARY_PATH
完成后执行source .bash_profile
但是执行mpirun -np 4 hello_c输入password后,总是出现如下错误:
bash: orted: command not found
解决办法是在$HOME下,新建.bashrc,输入:
PATH=$PATH:/usr/local/openmpi-1.3/bin
LD_LIBRARY_PATH=/usr/local/openmpi-1.3/lib
export PATH LD_LIBRARY_PATH
然后再使用openmpi就没问题了
总结:问题出在对.bash_profile文件和.bashrc文件的作用的不了解,在网上搜到两个文件的区别如下:
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.修改后在shell中立即生效
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的
通常二者设置大致相同,所以通常前者会调用后者。
HPL+GotoBLAS
最近准备在SUSE 10SP2 x86_64下编译HPL,亲自动手后,发现问题原来是这么的多
我的GotoBLAS目录:$(HOME)/GotoBLAS
MPI使用的是openmpi,MPI目录:/usr/local/openmpi-1.3
HPL目录:$(HOME)/hpl-2.0
现在说一下我的安装过程中碰到的问题:
error 1:Make.inc 不存在
一开始就在GotoBLAS下make,
GotoBLAS/exports/下 make so
将 xerblas.o拷贝到GotoBLAS下面
修改完Make.Linux, 直接make arch=Linux,提示Make.inc不存在
找到出错的地方:ln -s /root/hpl-2.0 /Make.Linux Make.inc
看了半天才发现问题的所在,本来的操作是链接 Make.Linux和Make.inc
command应该为:ln -s /root/hpl-2.0/Make.Linux Make.inc
问题所在:在编辑Make.Linux文件时,在HPL目录后面多了些空格
看来Linux下空格的使用一定要慎重
error 2:/root/GotoBLAS/libgoto_core2-r1.26.so: could not read symbols: File in wrong format
除掉error 1后,出现error 2
在网上找资料,应该是libgoto_core2-r1.26.so是32-bit的库导致的
修改GotoBLAS下的Makefile.rule
将BINARY64 = 1
再make,出现error 3
SUSE 关闭防火墙
sudo SuSEfirewall2 stop
error 3: copy_sse_core2.S: Assembler message:
copy_sse_core2.S:244: Error: no such instruction: `palignr $4,%xmm0,%xmm1'
copy_sse_core2.S:249: Error: no such instruction: `palignr $4,%xmm9,%xmm2'
copy_sse_core2.S:254: Error: no such instruction: `palignr $4,%xmm10,%xmm3'
copy_sse_core2.S:259: Error: no such instruction: `palignr $4,%xmm11,%xmm4'
copy_sse_core2.S:264: Error: no such instruction: `palignr $4,%xmm12,%xmm5'
copy_sse_core2.S:269: Error: no such instruction: `palignr $4,%xmm13,%xmm6'
copy_sse_core2.S:274: Error: no such instruction: `palignr $4,%xmm14,%xmm7'
copy_sse_core2.S:279: Error: no such instruction: `palignr $4,%xmm15,%xmm8'
在网上搜到的解释:
Symptom:
GotoBLAS version 1.12 or greater fails to compile with
"copy_sse_core2.S:241: Error: no such instruction: `palignr $4,%xmm0,%xmm1'"
on SLES 10 x86_64.
Explanation:
This problem is caused by an incompatible binutils package released with
SLES 10 x86_64, as well as with SLES 10 SP1 x86_64.
Action:
While in the base build directory for GotoBLAS run the following commands:
cp level1/copy/x86_64/copy_sse.S level1/copy/x86_64/copy_sse_core2.S
cp level1/copy/x86_64/zcopy_sse.S level1/copy/x86_64/zcopy_sse_core2.S
cp level1/dot/x86_64/dot_sse.S level1/dot/x86_64/dot_sse_core2.S
上面这三条语句就是解决问题的办法。
Then re-run quickbuild.64bit.
下面是Kazushige Goto提供的解决这个问题的方法:
http://lists.tacc.utexas.edu/pipermail/gotoblas/2007-December/000003.html
http://lists.tacc.utexas.edu/pipermail/gotoblas/2008-April/000044.html
摘录如下:
What you need is the latest binutils (version 2.17 or 2.18).
Palignr instruction is in SSSE3, not SSE4.
Please
apply attached patch. Original source is wrong set force to build Core2
version instead of Nocona (you don't need latest binutils, actually).
But
if you want to solve this problem anyway, you may check actual path
that gcc executes as. It should be different path like
/usr/x86_64-linux/bin/as instead of /usr/bin/as.
最后一句是什么意思暂时还没明白
Kazushige Goto提供的这种解决办法需要安装新版本的binutils,没有测试过,以后有时间再试。
最后使用第一种解决办法解决,make成功。
正常的步骤如下:
(1)安装openmpi,见前面的文章
(2)编译GotoBLAS
编辑vi Makefile.rule
#BINARY64 = 1 ==>> BINARY64 = 1
在GotoBLAS目录下,执行:
cp level1/copy/x86_64/copy_sse.S level1/copy/x86_64/copy_sse_core2.S
cp level1/copy/x86_64/zcopy_sse.S level1/copy/x86_64/zcopy_sse_core2.S
cp level1/dot/x86_64/dot_sse.S level1/dot/x86_64/dot_sse_core2.S
编译
make
进exports目录,生成so文件
cd exports
make so
拷贝xerbla.o到GotoBLAS目录
cp level1/others/xerbla.o ./
done!
(3)编译HPL
在HPL目录下,在setup文件中选出Make文件,我的选择是Make.Linux_PII_CBLAS文件,copy在HPL的目录下,
重命名为Make.core2_SELS_x86_64
修改Make.core2_SELS_x86_64,如下:
ARCH = Linux_PII_CBLAS ==>>
ARCH = core2_SELS_x86_64
TOPdir = $(HOME)/hpl ==>>
TOPdir = $(HOME)/hpl-2.0
MPdir = /usr/local/mpi ==>> MPdir = /usr/local/openmpi-1.3
MPlib = $(MPdir)/lib/libmpich.a ==>>
MPlib = $(MPdir)/lib/libmpi.so
LAdir = $(HOME)/netlib/ARCHIVES/Linux_PII ==>>
LAdir = $(HOME)/GotoBLAS
LAlib = $(LAdir)/libcblas.a $(LAdir)/libatlas.a ==>>
LAlib = $(LAdir)/libgoto_core2-r1.26.so $(LAdir)/xerbla.o
HPL_OPTS = -DHPL_CALL_CBLAS ==>> HPL_OPTS =
CC = /usr/bin/gcc ==>>
CC = /usr/local/openmpi-1.3/bin/mpicc
LINKER = /usr/bin/g77 ==>>
LINKER = /usr/local/openmpi-1.3/bin/mpif77
编译
make arch=core2_SELS_x86_64
完成后在bin/core2_SELS_x86_64目录下会出现HPL.dat和xhpl两个文件,表示成功
附:
(1)HPL下载地址:
http://www.netlib.org/benchmark/hpl
(2)GotoBLAS下载地址:
http://www.tacc.utexas.edu/resources/software/
(3)openmpi下载地址:www.open-mpi.org
修改SUSE的hostname:修改/etc/HOSTNAME文件
Ctrl+D注销系统
发表评论
-
undefined reference to `std::ios_base::Init::Init()的解决
2010-12-24 10:25 4639在linux下编译c程序使用gcc,然而编译c++程序却需要使 ... -
linux 的make命令
2010-12-21 21:26 20241.autoscan (autoconf): 扫描 ... -
/etc/fstab文件详解
2010-12-10 13:51 1536/etc/fstab文件详解 ... -
suse 修改ip地址
2010-11-04 22:30 11966第一种SUSE Linux IP设置方法 ifconfig ... -
linux安装php5出现错误:configure: error: Cannot find libmysqlclient under /usr.
2010-10-31 15:59 13271最近在centOs上安装apache+mysql+php5.1 ... -
gcc 编译选项
2010-10-20 19:17 5414转自往上一篇博文:http://apps.hi.baidu.c ... -
grep遍历文件夹查找文本内容
2010-10-14 14:25 52263有时候我们需要在某一个包含很多子目录的目录中搜索查找包含某个文 ... -
no version information available动态链接库出错
2010-09-25 20:46 22799今天安装一个软件,使用了libz.so.1这样一个 ... -
linux c编程中的时间
2010-09-20 21:58 2506linux-时间相关结构体和函数 ... -
linux下文件的压缩与解压
2010-09-20 09:52 1571大致总结了一下linux下各种格式的压缩包的压缩、解压方法。但 ... -
LD_LIBRARY_PATH环境变量的设置
2010-09-14 18:52 112511在linux下的编程,毫无疑问的迟早都要用到LD_LIBRAR ... -
linux 不支持while(true)吗?
2010-09-11 22:01 4682今天闲来无事,竟然写了个while(true),然而结果也非常 ... -
小论内存访问方式对性能的影响
2010-09-09 20:41 1871最近两天有 ... -
Linux下发生段错误时如何产生core文件
2010-09-09 17:47 2259Linux下发生段错误时如何产生core文件 T ...
相关推荐
Ubuntu的OpenMPI安装 OpenMPI是开放源代码的消息传递接口(MPI)实现,用于高性能计算领域。下面是Ubuntu上安装OpenMPI的详细步骤和知识点总结。 安装前准备 在安装OpenMPI之前,需要下载最新的OpenMPI软件包...
OpenMPI 1.6.5 安装指导 OpenMPI 是一种广泛应用于高性能计算领域的消息传递接口(Message Passing Interface,MPI),它能够将多个处理器核心组合起来,进行大规模并行计算。OpenMPI 的安装过程相对简单,但需要...
通过安装OpenMPI并结合C语言,开发者可以构建高效的并行计算应用程序,尤其适用于大规模数据处理和科学计算。理解并掌握MPI接口和并行编程模式,对于提升计算性能和解决复杂计算问题具有重要意义。在实际应用中,还...
在本教程中,我们将探讨如何在Windows子系统Linux(WSL)环境下配置和安装OpenMPI以及并行版的Quantum Espresso。这对于想要学习第一性原理计算,并希望在个人电脑上进行编程实践,但又不想安装双系统或虚拟机的同学...
在Ubuntu操作系统中安装和配置OpenMPI是进行lammps计算的前提。 首先,让我们详细了解OpenMPI。OpenMPI(Open Message Passing Interface)是一个开源的MPI(Message Passing Interface)实现,它由多个研究机构和...
4. **编译和安装**:使用`make`命令编译源代码,然后用`make install`将OpenMPI安装到系统路径。 5. **测试运行**:编译完成后,你可以通过`mpirun`命令运行简单的MPI示例程序,验证OpenMPI是否安装成功。 6. **...
《深入理解HPC环境下的OpenMPI、SLURM与PMIX》 在高性能计算(HPC)领域,优化并行计算和资源管理是至关重要的。OpenMPI、SLURM和PMIX是这一领域的三大核心组件,它们协同工作,构建出高效、可扩展的计算集群环境。...
5. **安装**:使用`sudo make install`将OpenMPI安装到系统路径中,以便全局使用。 在使用OpenMPI进行并行计算时,开发者需要了解并掌握以下关键概念: 1. **进程管理**:MPI程序由多个进程组成,每个进程都有一个...
《OpenMPI 4.1.2:开启高性能计算的新篇章》 OpenMPI(Open Source Message Passing Interface)是一款开源、跨平台的并行计算框架,它实现了MPI(Message Passing Interface)标准,是进行大规模并行计算的重要...
OpenMPI 是一种高性能消息传递库,最初是作为融合的技术和资源从其他几个项目(FT- MPI, LA-MPI, LAM/MPI, 以及 PACX-MPI),它是MPI-2标准的一个开源实现,由一些科研机构和企业一起开发和维护。因此,OpenMPI能够...
##### 步骤2:构建并安装OpenMPI 1. **下载OpenMPI源代码**:通过官方网站或其他可信渠道下载最新版本的OpenMPI。 2. **解压并配置**: ```bash tar xvf openmpi-*.tar.gz cd openmpi-* ./configure --prefix=/...
5. **编译与安装**:解压"openmpi-2.0.1"后,通常需要执行配置、编译和安装三步。使用`./configure`进行配置,`make`进行编译,`sudo make install`进行安装。用户还可以根据需要指定编译选项,如选择特定的网络接口...
linux系统下的openmpi,用于并行程序的运行
0561_极智开发_解读ubuntu源码编译安装openmpi的方式
openmpi最新版编辑软件包,openmpi-3.1.2.tar.gz OpenMPI [1] 是一种高性能消息传递库,最初是作为融合的技术和资源从其他几个项目(FT- MPI, LA-MPI, LAM/MPI, 以及 PACX-MPI),它是MPI-2标准的一个开源实现,由...
实验的关键技术点包括OpenMPI的安装与配置、高性能计算库HPL的使用以及SSH集群免密登录的配置。 1. **OpenMPI的安装**: - **前置环境**:在开始安装OpenMPI之前,需要确保系统已经安装了GCC编译器、G++编译器和...
openmpi最新版编辑软件包,openmpi-3.1.2.tar.gz OpenMPI [1] 是一种高性能消息传递库,最初是作为融合的技术和资源从其他几个项目(FT- MPI, LA-MPI, LAM/MPI, 以及 PACX-MPI),它是MPI-2标准的一个开源实现,由...
环境: Ubuntu18.04 , Intel(R) Xeon(R) CPU ...压缩包包含如下软件GotoBLAS2 、 openmpi-3.1.0、 hpcg-master、 hpl-2.3 的源代码,配置文件、编译的笔记,是一个可重新编译、运行的工程包。在我的机器上可编译运行。
7. **验证安装**:安装完成后,可以运行`mpirun --version`来确认OpenMPI是否正确安装。 OpenMPI提供了丰富的功能,包括进程管理、通信库、错误处理等。其核心组件包括: - **MPI库**:实现MPI标准的各种通信原语...
标题中的“Linux编译好的OpenMPI库”指的是在Linux操作系统环境下,已经预先编译完成的OpenMPI(开源消息传递接口)库。OpenMPI是一个高性能、可扩展的消息传递库,广泛应用于分布式计算和并行计算领域,它实现了MPI...