728x90
반응형
FFTW(Fastest Fourer Transform the West)
FFTW는 DFT(Discrete Fourier Transform)와 그 역변환을 계산하기 위한 리이브러리입니다. FFTW는 C로 작성되어 있으며, 다양한 컴퓨터 아키텍처에서 높은 성능을 발휘하도록 최적화되어 있습니다. 이 라이브러리는 MIT 라이선스 하에 배포되어 있어 상업적 용도를 포함한 다양한 프로젝트에서 자유롭게 사용할 수 있습니다.
FFTW는 유연성과 효율성을 동시에 추구합니다. 사용자가 다양한 크기와 차원의 DFT를 계산할 수 있게 해주며, 싱글 코어부터 다중 코어, 심지어 분산 메모리 시스템에 이르기까지 다양한 환경에서 사용될 수 있습니다. 이 라이브러리는 실행 시간 중에 DFT를 수행하는 가장 효율적인 알고리즘을 동적으로 선택하는 "플래너"를 포함하고 있어, 특정 하드웨어에서 최적의 성능을 발휘할 수 있습니다.
주요 특징
- 다양한 크기와 차원 지원: FFTW는 1D, 2D, 3D DFT를 비롯해 임의의 차원에서의 변환을 지원합니다. 또한, 변환의 크기가 소수인 경우에도 효율적으로 계산됩니다.
- 고성능: FFTW는 다양한 벤치마크에서 최고의 성능을 보여주며, 특히 대용량 데이터셋에 대한 변환에서 빛을 발합니다.
- 스레드와 병렬 처리 지원: 다중 스레드 환경과 MPI를 이용한 분산 메모리 시스템에서의 병렬 처리를 지원합니다.
- 사용자 정의 가능: 고급 사용자는 자신의 요구 사항에 맞게 FFTW의 동작을 세밀하게 조정할 수 있습니다.
사용 사례
FFTW는 과학 연구, 엔지니어링, 금융 분석 등 다양한 분야에서 널리 사용됩니다. 예를 들어, 신호 처리, 이미지 분석, 유체 역학 시뮬레이션, 음향 분석 등에 필요한 데이터 변환을 위해 FFTW가 사용됩니다.
설치 방법
아래 방법은 컴파일러 설치 및 적용과 MPI 연동을 완료한 후에 작업해야한다.
- 소스 적용 및 압축 해제
# source /APP/enhpc/profile.d/openmpi4-gcc11.sh
# wget https://www.fftw.org/fftw-3.3.10.tar.gz
# tar xzvf fftw-3.3.10.tar.gz -C /APP/enhpc
- 설치
# source /APP/enhpc/profile.d/openmpi4-gcc11.sh
wget <https://www.fftw.org/fftw-3.3.10.tar.gz>
tar xzvf fftw-3.3.10.tar.gz
cd fftw-3.3.10/
./configure --prefix=/APP/enhpc/libs/fftw-3.3.10-gnu_gcc.v11 \\
CC=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpicc \\
LDFLAGS=-L/APP/enhpc/mpi/openmpi4-gcc11/lib \\
CPPFLAGS=-I/APP/enhpc/mpi/openmpi4-gcc11/include \\
F77=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpif77 \\
FC=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpif90 \\
--enable-fortran --enable-shared --enable-mpi
#--enable-avx --enable-avx2 --enable-avx512
make && make install
make clean
./configure --prefix=/APP/enhpc/libs/fftw-3.3.10-gnu_gcc.v11 \\
CC=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpicc \\
LDFLAGS=-L/APP/enhpc/mpi/openmpi4-gcc11/lib \\
CPPFLAGS=-I/APP/enhpc/mpi/openmpi4-gcc11/include \\
F77=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpif77 \\
FC=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpif90 \\
--enable-fortran --enable-shared --enable-mpi \\
--enable-float
#--enable-avx --enable-avx2 --enable-avx512
make && make install
make clean
./configure --prefix=/APP/enhpc/libs/fftw-3.3.10-gnu_gcc.v11 \\
CC=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpicc \\
LDFLAGS=-L/APP/enhpc/mpi/openmpi4-gcc11/lib \\
CPPFLAGS=-I/APP/enhpc/mpi/openmpi4-gcc11/include \\
F77=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpif77 \\
FC=/APP/enhpc/mpi/openmpi4-gcc11/bin/mpif90 \\
--enable-fortran --enable-shared --enable-mpi \\
--enable-long-double
#--enable-avx --enable-avx2 --enable-avx512
make && make install
make clean
ls -1 /APP/enhpc/libs/fftw-3.3.10-openmpi4-gcc11/lib | wc -l
----------------------------------------------
32
vi /APP/enhpc/profile.d/fftw-gnu_gcc.v11.sh
----------------------------------------------
#!/bin/sh
PATH=/APP/enhpc/libs/fftw-3.3.10-openmpi4-gcc11/bin:$PATH
CPATH=/APP/enhpc/libs/fftw-3.3.10-openmpi4-gcc11/include:$CPATH
LD_LIBRARY_PATH=/APP/enhpc/libs/fftw-3.3.10-openmpi4-gcc11/lib:$LD_LIBRARY_PATH
export PATH CPATH LD_LIBRARY_PATH
결론
FFTW는 고성능과 유연성을 갖춘 DFT 계산 라이브러리로, 광범위한 애플리케이션에서 중요한 역할을 합니다. 이 라이브러리는 복잡한 수치 계산 작업을 위한 강력한 도구로, 다양한 프로젝트에서 효율적인 데이터 분석과 처리 작업을 가능하게 합니다
반응형
'HPC' 카테고리의 다른 글
Openblas(고성능 수학 라이브러리의 핵심) 설치 (0) | 2024.04.16 |
---|---|
VASP(vasp.6.3.0) + ONEAPI2023(intel64_v2023) (0) | 2024.04.15 |
Intel OneAPI (0) | 2024.04.13 |
GNU Compiler (gcc, g++, gfortran) (0) | 2024.04.12 |
LAMMPS (0) | 2024.02.27 |