Skip to content

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

参考链接

  1. FFTW3 官网
  2. FFTW3官方下载地址

本站内容未经授权禁止转载
联系邮箱: [email protected]