非root用户安装科学计算包blas、lapack和FFTW
一、安装FFTW
1、下载安装包
下载地址:http://www.fftw.org/download.html
2、编译安装
tar -zxvf fftw-3.3.10.tar.gz
cd fftw-3.3.10/
./configure --prefix=/BIGDATA2/nscc_sci_1/xujb/fftw --enable-threads
make
make install
3、测试例子
g++ test_fftw.cpp -o test_fftw -lfftw3 \
-L/BIGDATA2/nscc_sci_1/xujb/fftw/lib \
-I/BIGDATA2/nscc_sci_1/xujb/fftw/include
-L和-I后为我们指定软件的安装路径的lib文件夹和include文件夹
一、安装blas、lapack
1、环境准备
依赖库至少需要 gfortran、cmake。其他不能确定
2、下载lapack安装包
下载地址:https://www.netlib.org/lapack/
【lapack包里已经包含了blas包了,无需重新下载】
3、解压编译安装
tar -zxvf lapack-3.10.0.tar.gz
cd lapack-3.10.0/
解压之后它里面会含有BLAS,CBLAS,LAPACKE等文件夹,其中BLAS是BLAS的源码,CBLAS是BLAS的C语言接口
在make之前,需要先创建一个make.inc文件,可以直接根据make.inc.example创建
cp make.inc.example make.inc
1、修改Makefile文件
如果是使用gfortran,则无须更改make.inc里的内容,否则需要根据系统环境和编译器修改文件里对应的选项。
LAPACK依赖BLAS,因此在编译LAPACK前需要提供BLAS包,所幸LAPACK里已经集成了BLAS包,但默认并不编译它。
要想编译LAPACK前先编译BLAS,需要修改一下makefile:
vim Makefile
然后make编译
2、cd LAPACKE目录下,再次进行make操作!~【重要】
两处都make成功后,会在目录lapack-3.10.0下生成 liblapack.a、liblapacke.a、librefblas.a、libtmglib.a 这个4个静态库文件
把这4个静态库文件,拷贝到/usr/local/lib/目录下(非root用户拷贝到自己创建目录下)
cp *.a /BIGDATA2/nscc_sci_1/xujb/usr/local/lib/
把lapack目录下的include里的头文件拷贝到/usr/local/include/目录下(非root用户拷贝到自己创建目录下)
cd LAPACKE/include
cp *.h /BIGDATA2/nscc_sci_1/xujb/usr/local/include/
至此lapack 和 blas已经安装好了!
4、测试lapack和blas包是否安装成功
测试代码(test.c)放在最后面
使用软连接进行编译
gcc test.c -o test -I/BIGDATA2/nscc_sci_1/xujb/usr/local/include -L/BIGDATA2/nscc_sci_1/xujb/usr/local/lib -llapacke -llapack -lrefblas -lgfortran -lm -w
执行./test
三、测试的代码
1、FFTW的测试代码
ds
2、blas、lapack的测试代码
vim test.c #include <stdio.h>
#include <lapacke.h>
int main (int argc, const char * argv[])
{
double a[5*3] = {1,2,3,4,5,1,3,5,2,4,1,4,2,5,3};
double b[5*2] = {-10,12,14,16,18,-3,14,12,16,16};
lapack_int info,m,n,lda,ldb,nrhs;
int i,j; m = 5;
n = 3;
nrhs = 2;
lda = 5;
ldb = 5; info = LAPACKE_dgels(LAPACK_COL_MAJOR,'N',m,n,nrhs,a,lda,b,ldb); for(i=0;i<n;i++)
{
for(j=0;j<nrhs;j++)
{
printf("%lf ",b[i+ldb*j]);
}
printf("\n");
}
return(info);
}
非root用户安装科学计算包blas、lapack和FFTW的更多相关文章
- 源代码安装-非ROOT用户安装软件的方法
0. 前言 如果你没有sudo权限,则很多程序是无法使用别人编译好的文件安装的. 还有时候,没有对应你的主机配置的安装包,这时候需要我们自己下载最原始的源代码,然后进行编译安装. 这样安装的程序 ...
- Linux 下非 root 用户安装 theano(配置 GPU)
非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...
- 非root用户安装软件
下面简要说一下Linux下非root用户安装软件的一般流程: 1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar - ...
- Linux环境(服务器)下非root用户安装Python3.6
Linux环境(服务器)下非root用户安装Python3.6 在管理实验室集群时候,遇到的问题--非root用户在搭建自己环境时候,如何搭建. 注意: root用户的根目录是root,非root用户 ...
- Linux 以非root用户安装zsh&配置on my zsh
此文章参考以下三篇文章,如有侵权请联系 Linux非root用户安装zsh, 并用oh-my-zsh进行配置 在没有sudo权限的Linux服务器下安装oh-my-zsh 不使用root权限安装zsh ...
- zzw_非root用户安装python3.5
目的:不想改变linux 自带的python,只想要用特定的非root用户运行特定版本的python 1.进入非root用户 2.新建一个python3.5的安装目录 [a4_csbdc@bdc816 ...
- linux非root用户安装ncurses-devel依赖
很明显,如果我们通过yum或rpm下载安装,始终无法绕开root用户,除非我们不用yum或rpm.嗯,我们直接用源码安装.下载源码包,到http://ftp.gnu.org/gnu/ncurses/我 ...
- linux centos7 非root用户安装源码版docker
注意:非root用户必须要有sudo权限 一.安装前的准备 1.查看当前主机是否有docker组 若没有输出结果则新建 再次查看,发现已经有了docker组 2.新增拥有sudo权限的用户(若知道ro ...
- perl 下使用非root用户安装模块
perl下安装模块可以使用cpan命令,但是通常我们不具有root用户权限,所以只能以sudo方式安装模块. 例如需要安装Net::SCP::Expect模块, 执行cpan Net::SCP::Ex ...
随机推荐
- 解构HE2E中的Kubernetes技术应用
摘要:我们从Kubernetes技术应用的角度解构华为云DevCloud HE2E DevOps实践. 本文分享自华为云社区<解构HE2E中的Kubernetes技术应用>,作者: 敏捷小 ...
- .net 项目使用 JSON Schema
.net 项目使用 JSON Schema 最近公司要做配置项的改造,要把appsettings.json的内容放到数据库,经过分析还是用json的方式存储最为方便,项目改动性最小,这就牵扯到一个问题 ...
- tomcat 1.2 负载均衡
实验效果:访问同一个ip或域名,轮询显示两个不同的tomcat界面, nginx服务器ip:192.168.213.4 tomcat服务器ip:192.168.213.3 实验环境:两台服 ...
- 29. Divide Two Integers - LeetCode
Question 29. Divide Two Integers Solution 题目大意:给定两个数字,求出它们的商,要求不能使用乘法.除法以及求余操作. 思路:说下用移位实现的方法 7/3=2, ...
- Java中如何快捷的创建不可变集合
在Java 9中又新增了一些API来帮助便捷的创建不可变集合,以减少代码复杂度. 本期配套视频:Java 9 新特性:快速定义不可变集合 常规写法 以往我们创建一些不可变集合的时候,通常是这样写的: ...
- 初识 Redis 以及其基本使用方法
1.什么是Redis redis 是一个高性能的key-value数据库,它支持的类型更多 包括 string(字符串).list(链表).set(集合).zset(sorted set --有序 ...
- 【Windbg】记一次线程卡主的问题
测试告诉我们定时任务没有执行了,排查相关日志,只有开始执行,没有执行结束.估计是什么地方卡主了. 所以dump分析日志 先检查一下加载情况 !eeversion 线程卡主了,先看线程 !runaway ...
- 关于p命名空间和c命名空间 外加一个context
P命名空间注入 : 需要在头文件中加入约束文件 导入约束 : xmlns:p="http://www.springframework.org/schema/p" 如 xmlns=& ...
- 内网穿透frp教程 windows远程桌面连接
鉴于ngrok不是特别好用 昨天又发现frp这个神器 在管理端还有图形界面十分友好 话不多说开始 准备工作 1.一个域名 2.一台服务器 一.域名与服务器 域名和服务器直接买就好咯 价格不高 一定要在 ...
- JavaScript之创建八个对象过520
马上又到了一年一度的520了,程序猿们赶紧创建对象过520吧!!! JavaScript创建对象的几种方式: 一:字面量方式: var obj = {name: '程序猿'}; 二:通过new操作符: ...