FFTW3 安装及使用
FFTW是一个免费开源的C函数库,用于计算一维或多维的离散傅里叶变换(DFT),支持任意输入大小,以及实数和复数数据。下面将介绍如何在 SonmiHPC 集群中安装及使用 FFTW3。
源码下载
可以从官方网站直接使用 wget 下载最新版本的 FFTW3 的源码压缩包:
shell
wget https://www.fftw.org/fftw-3.3.10.tar.gz
wget https://www.fftw.org/fftw-3.3.10.tar.gz
然后进行解压进入源码目录中:
shell
tar xzvf fftw-3.3.10.tar.gz
cd fftw-3.3.10/
tar xzvf fftw-3.3.10.tar.gz
cd fftw-3.3.10/
编译安装
执行如下的命令进行配置编译安装:
shell
./configure --prefix=/share/apps/fftw/3.3.10
# --prefix参数指定安装路径,建议将不同版本分开
# 执行./configure --help可以查看可供配置的参数
make
make install
./configure --prefix=/share/apps/fftw/3.3.10
# --prefix参数指定安装路径,建议将不同版本分开
# 执行./configure --help可以查看可供配置的参数
make
make install
Modulefile编写
管理员如果在编译好程序后要通过Module模块加载的方式提供给集群上面的其他用户使用,可以编写如下的Modulefile文件:
shell
mkdir -p /share/apps/modulefiles/fftw/
mkdir -p /share/apps/modulefiles/fftw/
编辑新增Modulefile文件:
shell
vim /share/apps/modulefiles/fftw/3.3.10
vim /share/apps/modulefiles/fftw/3.3.10
文件内容如下:
shell
#%Module###########################################
set modulefilename "FFTW3"
set modulefilever "3.3.10"
set min_tcl_ver 8.4
if { $tcl_version < $min_tcl_ver } {
puts stderr " "
puts stderr "ERROR: This modulefile requires tcl $min_tcl_ver or greater."
puts stderr "Your system reports that tclsh version $tcl_version is installed."
exit 1
}
if { [ module-info mode load ] } {
puts stderr "Loading $modulefilename version $modulefilever"
}
if { [ module-info mode ] == "unload" || [ module-info mode ] == "remove" } {
puts stderr "Removing $modulefilename version $modulefilever"
puts stderr "Use to view any remaining dependent modules."
}
prepend-path PATH /share/apps/fftw/3.3.10/bin
prepend-path LD_LIBRARY_PATH /share/apps/fftw/3.3.1/lib
prepend-path C_INCLUDE_PATH /share/apps/fftw/3.3.10/include
prepend-path MANPATH /share/apps/fftw/3.3.10/share/man
#%Module###########################################
set modulefilename "FFTW3"
set modulefilever "3.3.10"
set min_tcl_ver 8.4
if { $tcl_version < $min_tcl_ver } {
puts stderr " "
puts stderr "ERROR: This modulefile requires tcl $min_tcl_ver or greater."
puts stderr "Your system reports that tclsh version $tcl_version is installed."
exit 1
}
if { [ module-info mode load ] } {
puts stderr "Loading $modulefilename version $modulefilever"
}
if { [ module-info mode ] == "unload" || [ module-info mode ] == "remove" } {
puts stderr "Removing $modulefilename version $modulefilever"
puts stderr "Use to view any remaining dependent modules."
}
prepend-path PATH /share/apps/fftw/3.3.10/bin
prepend-path LD_LIBRARY_PATH /share/apps/fftw/3.3.1/lib
prepend-path C_INCLUDE_PATH /share/apps/fftw/3.3.10/include
prepend-path MANPATH /share/apps/fftw/3.3.10/share/man
保存后修改权限:
shell
chmod -R 755 /share/apps/modulefiles/fftw/
chmod -R 755 /share/apps/modulefiles/fftw/
用户使用如下的命令就可以看到该模块:
[root@sonmi ~]# module avail
------------- /share/apps/modulefiles -------------
fftw/3.3.10
[root@sonmi ~]# module avail
------------- /share/apps/modulefiles -------------
fftw/3.3.10
需要加载的时候使用下面的命令即可:
shell
module load fftw/3.3.10
module load fftw/3.3.10