- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Hi everyone, I'm recently using r-2-r cosine FFT in my poisson solver. AndI wasconfused abouthow to chose fromTT routines, DFT routines and FFTw wrappers in MKL.

My detailed needs are:

1. Forward and backward staggered cosine transform

2. Multiple invoking of above FFT, which means I have many arrays of samelenth to transfer.

3. I want to use multi threads (8+ threads) to compute these transfers.

could someone give me instruction about which one is my best choice and what's the need of system environment(for example, the version of MKL).

Thanks.

Changlei

1 Solution

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

In you case, generalway of using TTis:

"

// Init transform

call ?_init_trig_transfor(...)

// Commit parameters and create DFTI handle

call ?_commit_trig_transfor(a(:,i)..)

// Do a set of forward transform

do i=1,n

call?_forward_trig_transform(a(:,i)...)

enddo

....

// Do a set of backward transform

do i=1,n

call ?_backward_trig_transform(a(:,i)...)

enddo

// Free

callfree_trig_transform(...)

"

Victor

Link Copied

6 Replies

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

"ipar(10) specifies the number of OpenMP threads to run TT routines in the OpenMP

environment of the Poisson Library. The default value is 1. You are highly

recommended not to alter this value. See also Caveat on Parameter

Modifications."

Does this mean I will take great risk to use TT routines with multi_threads?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Here I have another question, if I have multiarrays (a(1:m,1:n)to transfor. These arrays is a two dimensional matrix. I have to do backward transforms when all forward transforms have been done. Can I invoke the TT routines in this way?

"call ?_init_trig_transfor(...)

do i=1,n

call ?_commit_trig_transfor(a(:,i)..)

call?_forward_trig_transform(a(:,i)...)

enddo

....

do i=1,n

call ?_backward_trig_transform(a(:,i)...)

enddo

or could I call the commit routine onlyonce?

If TT routines support multi-array transform, there will no this question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

In you case, generalway of using TTis:

"

// Init transform

call ?_init_trig_transfor(...)

// Commit parameters and create DFTI handle

call ?_commit_trig_transfor(a(:,i)..)

// Do a set of forward transform

do i=1,n

call?_forward_trig_transform(a(:,i)...)

enddo

....

// Do a set of backward transform

do i=1,n

call ?_backward_trig_transform(a(:,i)...)

enddo

// Free

callfree_trig_transform(...)

"

Victor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

When Commit parameters, using:

"

// Commit parameters and create DFTI handle

call ?_commit_trig_transfor(a(:,i)..)

"

You mean I can commit it using any column of matrix a? I'll try that.

Best regards!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Yes you canuse in ?_commit_trig_transfor routine any columns of the matrix a.

Best regards,

Victor

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page