Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2264590
  • 博文数量: 846
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 9499
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-04 19:54
个人简介

日日行,不怕千万里;时时学,不怕千万卷

文章分类

全部博文(846)

文章存档

2010年(36)

2009年(418)

2008年(346)

2007年(46)

我的朋友

分类: C/C++

2007-06-13 18:32:56

     前面已经介绍了很多fftw函数库相关的东西,再举一个用MPI和fftw结合的例子:(环境是MPI和fftw都正确安装好了)
       有机会的话再介绍一下MPI(基于消息传递的接口),这个比fftw的安装和使用要复杂多了




#include "fftw_mpi.h"
#include"mpi.h"
#include<stdio.h>

int main(int argc, char **argv)
{
      int i;
      const int N=8;
      int local_n=2,local_start=0,local_n_after_transform=2,
             local_start_after_transform=0;
      fftw_mpi_plan plan;
      fftw_complex *data,*in;
     
      MPI_Init(&argc,&argv);

      plan = fftw_mpi_create_plan(MPI_COMM_WORLD, N, FFTW_FORWARD, FFTW_ESTIMATE);
             
      data= (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);

      fftw_mpi_local_size(plan,&local_n,&local_start,&local_n_after_transform,
           &local_start_after_transform,N);
      
      for(i=0; i<N; i++)/*测试数据 */
       {
         in[i].re = i;
         in[i].im= i+1;
        }
      for(i=0;i<local_n;i++)
      {
          data[i]=in[i+local_start];
          }
      fftw_mpi(plan, 1, data, NULL);

      fftw_mpi_destroy_plan(plan);
      for(i=0; i<N; i++)
      printf("%f,%fi\n",data[i].re,data[i].im );
      MPI_Finalize();

}

阅读(8486) | 评论(22) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-02-02 15:41:28

我邮件:hmh@cresda.com

chinaunix网友2009-02-02 15:40:15

请问,我在使用fftw的多线程的时候,4个CPU只有一个工作,怎么让4个全部工作? 我是在window下用的,操作系统是windows XP x64