FFTE 라이브러리

오픈 FFT(Fast Fourier Transform) 라이브러리인 ffte가 최근 업데이트 되었습니다. 사이트는 다음을 참고하시고:
http://www.ffte.jp/

라이브러리로 만들어 쓸 수 있긴 하지만 제 경우 그냥 소스파일을 가져다가 쓰고 있습니다. 기본 포맷은 f77인지라 왠만한 포트란 컴파일러에서 다 돕니다. 최대 강점은 역시 mpi하에서 병렬화가 가능하다는 점이 되겠죠. OpenMP도 지원됩니다만 분산컴퓨팅에서 쓰기에는 mpi가 유일한 선택이 되겠습니다.

FFTW도 병렬화를 지원하긴 합니다만 3.x의 경우 SMP만, 2.x에서 mpi를 지원합니다만 여전히 3.x대에서 지원할지는 미지수이고.

어쨌든, 과거 ffte나 FFTW의 경우 병렬화가 end-dimension에서만 가능했었는데 - 즉 x/y/z 로 그리드를 만들었을 때, z축의 그리드를 cpu수에 맞게 잘라 내게 됩니다. 128x128x128그리드를 8개 cpu에서 돌릴 경우, 128x128x16으로 나뉘어지죠 - 이번 ffe에서는 3d volume transform이라고 해서 2축에서 병렬화가 가능합니다. 즉 128cubic grid를 16cpu에서 돌릴 경우 128x32x32로 나뉘어집니다.

병렬화라고 하는 건 결국 아키텍쳐나 문제에 따라 천차만별이 됩니다만, 다른 선택의 여지를 줌으로써 프로그래밍의 자유도를 높일 수 있지요. 현재 Particle Mesh Ewald코드에 적용하고 있는데, 2차원 decomposition이 가능한 관계로 메모리에서 상당히 부담을 줄일 수 있게 되었습니다. 256x256x256 정도의 그리드도 잘 돌고 있고, 추후 384^3 내지는 512^3 그리드도 가능할 것으로 보입니다.

by 필군 | 2009/10/24 15:12 | research | 트랙백

트랙백 주소 : http://dir2000.egloos.com/tb/4261751
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
※ 로그인 사용자만 덧글을 남길 수 있습니다.

◀ 이전 페이지          다음 페이지 ▶