FFTW3 安装及使用 
FFTW是一个免费开源的C函数库,用于计算一维或多维的离散傅里叶变换(DFT),支持任意输入大小,以及实数和复数数据。下面将介绍如何在 SonmiHPC 集群中安装及使用 FFTW3。
源码下载 
可以从官方网站直接使用 wget 下载最新版本的 FFTW3 的源码压缩包:
shell
wget https://www.fftw.org/fftw-3.3.10.tar.gzwget 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 installModulefile编写 
管理员如果在编译好程序后要通过Module模块加载的方式提供给集群上面的其他用户使用,可以编写如下的Modulefile文件:
shell
mkdir -p /share/apps/modulefiles/fftw/mkdir -p /share/apps/modulefiles/fftw/编辑新增Modulefile文件:
shell
vim /share/apps/modulefiles/fftw/3.3.10vim /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.10module load fftw/3.3.10