Fast Fourier Transform Algorithm Parallel Processing

Embed Size (px)

Citation preview

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    1/45

    See discussions, stats, and author profiles for this publication at: http://www.researchgate.net/publication/247494750

    A self-sorting in-place fast Fouriertransformalgorithm suitable for vector and

    parallelprocessing

    ARTICLE in NUMERISCHE MATHEMATIK OCTOBER 1994

    Impact Factor: 1.55 DOI: 10.1007/s002110050074

    CITATIONS

    15

    DOWNLOADS

    94

    VIEWS

    40

    1 AUTHOR:

    Markus Hegland

    Australian National University160PUBLICATIONS 1,024CITATIONS

    SEE PROFILE

    Available from: Markus Hegland

    Retrieved on: 27 July 2015

    http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_4http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_4http://www.researchgate.net/?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_1http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_7http://www.researchgate.net/institution/Australian_National_University?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_6http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_5http://www.researchgate.net/profile/Markus_Hegland?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_4http://www.researchgate.net/?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_1http://www.researchgate.net/publication/247494750_A_self-sorting_in-place_fast_Fouriertransform_algorithm_suitable_for_vector_and_parallelprocessing?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_3http://www.researchgate.net/publication/247494750_A_self-sorting_in-place_fast_Fouriertransform_algorithm_suitable_for_vector_and_parallelprocessing?enrichId=rgreq-b9692ded-9cf5-4bd0-a0ea-db4b4719b656&enrichSource=Y292ZXJQYWdlOzI0NzQ5NDc1MDtBUzoxMDEzMzQwMjgxMjgyNjhAMTQwMTE3MTMyMzg0NQ%3D%3D&el=1_x_2
  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    2/45

    N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

    N u m e r i s c h e

    M a t h e m a t i k

    c

    S p r i n g e r - V e r l a g 1 9 9 4

    E l e c t r o n i c E d i t i o n

    A s e l f - s o r t i n g i n - p l a c e f a s t F o u r i e r t r a n s f o r m

    a l g o r i t h m s u i t a b l e f o r v e c t o r a n d p a r a l l e l

    p r o c e s s i n g

    ?

    M a r k u s H e g l a n d

    P r o g r a m i n A d v a n c e d C o m p u t a t i o n , C e n t e r f o r M a t h e m a t i c s a n d i t s A p p l i c a t i o n s , S c h o o l o f

    M a t h e m a t i c a l S c i e n c e s , T h e A u s t r a l i a n N a t i o n a l U n i v e r s i t y , C a n b e r r a A C T 0 2 0 0 , A u s t r a l i a

    e - m a i l : M a r k u s . H e g l a n d @ a n u . e d u . a u

    R e c e i v e d O c t o b e r 2 9 , 1 9 9 2 / R e v i s e d v e r s i o n r e c e i v e d O c t o b e r 2 1 , 1 9 9 3

    S u m m a r y . W e p r o p o s e a n e w a l g o r i t h m f o r f a s t F o u r i e r t r a n s f o r m s . T h i s a l g o -

    r i t h m f e a t u r e s u n i f o r m l y l o n g v e c t o r l e n g t h s a n d s t r i d e o n e d a t a a c c e s s . T h u s

    i t i s w e l l a d a p t e d t o m o d e r n v e c t o r c o m p u t e r s l i k e t h e F u j i t s u V P 2 2 0 0 h a v i n g

    s e v e r a l o a t i n g p o i n t p i p e l i n e s p e r C P U a n d v e r y f a s t s t r i d e o n e d a t a a c c e s s . I t

    a l s o h a s f a v o r a b l e p r o p e r t i e s f o r d i s t r i b u t e d m e m o r y c o m p u t e r s a s a l l c o m m u -

    n i c a t i o n i s g a t h e r e d t o g e t h e r i n o n e s t e p . T h e a l g o r i t h m h a s b e e n i m p l e m e n t e d

    o n t h e F u j i t s u V P 2 2 0 0 u s i n g t h e b a s i c s u b r o u t i n e s f o r f a s t F o u r i e r t r a n s f o r m s

    d i s c u s s e d e l s e w h e r e .

    W e d e v e l o p t h e t h e o r y o f i n d e x d i g i t p e r m u t a t i o n s t o s o m e e x t e n t . W i t h

    t h i s t h e o r y w e c a n d e r i v e t h e s p l i t t i n g f o r m u l a s f o r a l m o s t a l l m i x e d - r a d i x F F T

    a l g o r i t h m s k n o w n s o f a r . T h i s f r a m e w o r k e n a b l e s u s t o p r o v e t h e s e a l g o r i t h m s

    b u t a l s o t o d e r i v e o u r n e w a l g o r i t h m . T h e d e v e l o p m e n t a n d s y s t e m a t i c u s e o f

    t h i s f r a m e w o r k i s n e w a n d a l l o w s u s t o s i m p l i f y t h e p r o o f s w h i c h a r e n o w r e d u c e d

    t o t h e a p p l i c a t i o n o f m a t r i x r e c u r s i o n s .

    M a t h e m a t i c s S u b j e c t C l a s s i c a t i o n ( 1 9 9 1 ) : 6 5 T 2 0

    1 . I n t r o d u c t i o n

    F a s t F o u r i e r t r a n s f o r m s a r e o f p r i m a r y i m p o r t a n c e i n c o m p u t a t i o n a l l y i n t e n s i v e

    a p p l i c a t i o n s . T h e y a r e u s e d f o r l a r g e - s c a l e d a t a a n a l y s i s a n d t o s o l v e p a r t i a l

    d i e r e n t i a l e q u a t i o n s .

    A p p l i c a t i o n s o f F F T s i n d a t a a n a l y s i s i n c l u d e c o m p u t e r t o m o g r a p h y , d a t a

    l t e r i n g a n d s t r u c t u r e o r u i d - s t r u c t u r e i n t e r a c t i o n a n a l y s i s . O t h e r a r e a s o f i n -

    t e r e s t h e r e a r e s p e c t r a l a n a l y s i s o f s p e e c h , s o n a r , r a d a r , s e i s m i c a n d v i b r a t i o n

    d e t e c t i o n . T h e y a r e u s e d f o r d i g i t a l l t e r i n g , c o n v o l u t i o n e v a l u a t i o n a n d s i g n a l

    d e c o m p o s i t i o n .

    A s e c o n d e l d o f F F T a p p l i c a t i o n s a r e i n t h e s o l u t i o n o f p a r t i a l d i e r e n t i a l

    e q u a t i o n s . A n e a r l i e r e x a m p l e h e r e i s t h e f a s t P o i s s o n s o l v e r w h i c h i s c l o s e l y

    r e l a t e d t o F F T s . I n r e c e n t y e a r s s p e c t r a l m e t h o d s f e a t u r i n g F F T s h a v e b e e n

    u s e d s u c c e s s f u l l y t o s o l v e c o m p u t a t i o n a l u i d d y n a m i c s ( C F D ) p r o b l e m s . T h e y

    ?

    T h i s r e s e a r c h w a s p a r t o f a s o f t w a r e p r o j e c t b y A N U a n d F u j i t s u L t d

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 0 7 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    3/45

    5 0 8 M . H e g l a n d

    a r e r o u t i n e l y u s e d i n w e a t h e r f o r e c a s t i n g a n d f o r s i m u l a t i o n i n g e o p h y s i c s a n d

    q u a n t u m m e c h a n i c s .

    A l l t h e s e a p p l i c a t i o n s u s e d i s c r e t e F o u r i e r t r a n s f o r m s . T h e y a r e n i t e -

    d i m e n s i o n a l , l i n e a r , c o m p l e x o p e r a t o r s r e l a t e d t o t h e t r a n s f o r m s o f c l a s s i c a l

    F o u r i e r a n a l y s i s w h i c h p l a y a p r e e m i n a n t e r o l e i n m a t h e m a t i c a l p h y s i c s . T h e y

    i m p l e m e n t f a s t a l g o r i t h m s f o r t h e m a t r i x - v e c t o r p r o d u c t w i t h t h e c o m p l e x

    F o u r i e r t r a n s f o r m m a t r i x .

    I t i s w e l l k n o w n t h a t t h e o r d e r n c o m p l e x m a t r i x - v e c t o r p r o d u c t c a n b e d o n e

    w i t h o r d e r O ( n

    2

    ) o a t i n g p o i n t o p e r a t i o n s . I n t h e s i x t i e s , h o w e v e r , a l g o r i t h m s

    w e r e s u g g e s t e d b y C o o l e y a n d T u k e y C T 6 5 ] a n d l a t e r b y G e n t l e m a n a n d S a n d e

    G S 6 6 ] w h i c h a l l o n l y n e e d O ( n l o g ( n ) ) o p e r a t i o n s i f n i s \ f a r f r o m p r i m e " i n

    t h e s e n s e t h a t i t i s c o m p o s e d o f m a n y f a c t o r s . T h e s e a l g o r i t h m s w e r e g i v e n

    t h e n a m e f a s t F o u r i e r t r a n s f o r m s a n d h a v e b e e n e s s e n t i a l f o r t h e s u c c e s s o f

    t h e a p p l i c a t i o n s m e n t i o n e d . T h e y c a n b e i m p l e m e n t e d w i t h o u t t h e u s e o f e x t r a

    w o r k s p a c e o f o r d e r O ( n ) o v e r w r i t i n g t h e i n p u t v e c t o r w i t h t h e t r a n s f o r m e d d a t a .

    T h u s t h e y a r e c a l l e d \ i n - p l a c e " .

    H o w e v e r , t h e y h a v e o n e i m p o r t a n t d r a w b a c k i n t h a t t h e y e i t h e r c o m p u t e t h e

    d i s c r e t e F o u r i e r t r a n s f o r m i n a \ d i g i t - r e v e r s e d " o r d e r o r c o m p u t e t h e t r a n s f o r m

    o f d i g i t - r e v e r s e d d a t a . T h u s i n o r d e r t o g e t t h e a c t u a l F o u r i e r t r a n s f o r m s o m e

    e x t r a p e r m u t a t i o n s a r e n e e d e d . F o r t h e a p p l i c a t i o n o f F F T s t o s p e c t r a l m e t h o d s ,

    h o w e v e r , a c o m b i n a t i o n o f t h e C o o l e y - T u k e y a n d G e n t l e m a n - S a n d e a l g o r i t h m

    c a n b e u s e d w i t h o u t a n y p e r m u t a t i o n s . T h i s i s u s u a l l y n o t t r u e f o r d a t a a n a l y s i s

    a p p l i c a t i o n s w h e r e F o u r i e r t r a n s f o r m s a r e u s e d t o c o m p u t e t h e s p e c t r u m a n d

    n o t j u s t a s a t o o l t o g e t f a s t a l g o r i t h m s .

    L a t e r , a l g o r i t h m s w e r e s u g g e s t e d b y S t o c k h a m C C F

    +

    6 7 ] w h i c h a r e i n - o r d e r ,

    c o m b i n i n g d i g i t r e v e r s i o n s w i t h e l e m e n t a r y t r a n s f o r m s . T h e s e a l g o r i t h m s f o r

    g e n e r a l n b e i n g b o t h i n - p l a c e a n d i n - o r d e r c o u l d b e c r e a t e d a n d a r s t e x a m p l e

    w a s s u g g e s t e d b y J o h n s o n a n d B u r r u s J B 8 4 , T e m 9 1 ] . ( N a t u r a l l y , i n - p l a c e , i n -

    o r d e r t r a n s f o r m s f o r s p e c i a l o r d e r s n u s i n g t h e p r i m e f a c t o r a l g o r i t h m w e r e

    k n o w n f o r s o m e t i m e T e m 8 5 ] . ) W h i l e i n - o r d e r t r a n s f o r m s a r e n e e d e d f o r s o m e

    a p p l i c a t i o n s i n - p l a c e t r a n s f o r m s g e n e r a l l y m a k e l a r g e r t r a n s f o r m s i z e s f e a s i b l e i f

    t h e l i m i t i n g f a c t o r i s s t o r a g e s p a c e r a t h e r t h a n c o m p u t i n g t i m e .

    F o u r i e r t r a n s f o r m a l g o r i t h m s c o n t a i n a l a r g e a m o u n t o f p a r a l l e l i s m . T h u s

    t h e a l g o r i t h m s b y C o o l e y - T u k e y , G e n t l e m a n - S a n d e a n d S t o c k h a m h a v e a l l b e e n

    i m p l e m e n t e d o n v e c t o r a n d p a r a l l e l c o m p u t e r s . A p r o b l e m o f t h e s e a l g o r i t h m s ,

    h o w e v e r , i s t h a t t h e y h a v e v a r y i n g l o o p l e n g t h s . T h u s s o m e i m p l e m e n t a t i o n s u s e

    l o o p i n t e r c h a n g e s P e t 8 3 ] . A d r a w b a c k o f t h e l o o p i n t e r c h a n g e m e t h o d i s t h a t i t

    r e q u i r e s d a t a a c c e s s w i t h n o n - u n i t s t r i d e . T h i s i s a v o i d e d b y t h e P e a s e a l g o r i t h m

    P e a 6 8 ] u s i n g e x t e n d e d t r i g o n o m e t r i c t a b l e s o r b y u s i n g a c o m b i n a t i o n o f t h e

    S t o c k h a m a l g o r i t h m a n d t h e t r a n s p o s e d S t o c k h a m a l g o r i t h m W H 9 0 ] . A d r a w -

    b a c k o f t h e s e t w o m e t h o d s , h o w e v e r , i s t h e i r n e e d t o a c c e s s t h e t r i g o n o m e t r i c

    t a b l e i n t h e i n n e r m o s t l o o p a s w e l l a s t h e d a t a .

    A s o m e h o w n e w a p p r o a c h c a n b e f o u n d i n a p a p e r b y S w a r z t r a u b e r S w a 8 7 ]

    a n d A s h w o r t h a n d L y n e A L 8 8 ] . I n o r d e r t o g e t s u i t a b l e p a r a l l e l i s m t h e y i m -

    p l e m e n t w h a t V a n L o a n L o a 9 2 ] c a l l s f o u r o r s i x - s t e p f r a m e w o r k s . T h e s e f r a m e -

    w o r k s a r e d i e r e n t f r o m t h e o r i g i n a l a l g o r i t h m s a s t h e y \ s p l i t " o r \ s e g m e n t "

    t h e d i s c r e t e F o u r i e r t r a n s f o r m i n t o f a c t o r s i m p l e m e n t i n g m u l t i p l e t r a n s f o r m s o f

    s i m i l a r o r d e r i n s t e a d o f a f a c t o r o f e l e m e n t a r y ( e . g . , p r i m e ) o r d e r a n d a f a c t o r

    o f c o m p o s i t e o r d e r . H o w e v e r , a f t e r j u s t o n e s t e p o f t h i s s p l i t t i n g i n t o m u l t i p l e

    t r a n s f o r m s o f s i m i l a r o r d e r t h e s e a l g o r i t h m s p r o c e e d w i t h t h e o r i g i n a l s p l i t t i n g

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 0 8 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    4/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 0 9

    i n t o a s m a l l ( o f t e n p r i m e ) o r d e r t r a n s f o r m a n d a l a r g e o r d e r t r a n s f o r m . A d i s a d -

    v a n t a g e o f t h e s e a l g o r i t h m s i s t h a t t h e r s t s t e p m i g h t n o t b e i n - p l a c e . T h e i r b i g

    a d v a n t a g e i s t h e i r l o n g v e c t o r l e n g t h s a n d s t r i d e o n e d a t a a c c e s s a f t e r t h e r s t

    s t e p . O u r n e w a l g o r i t h m c a n b e i n t e r p r e t e d a s a c o m b i n a t i o n o f t h e s e a l g o r i t h m s

    w i t h i d e a s f r o m t h e J o h n s o n - B u r r u s a l g o r i t h m .

    A r e v i e w o f t h e h i s t o r i c a l d e v e l o p m e n t o f f a s t F o u r i e r t r a n s f o r m s s i n c e G a u s s

    c a n b e f o u n d i n D V 9 0 ] . S e v e r a l o f t h e 1 1 7 r e f e r e n c e s i n t h i s p a p e r p o i n t t o s o f t -

    w a r e . F u r t h e r m o r e a s i m p l e t u t o r i a l o n F F T s i s p r e s e n t e d t h e r e w i t h o u t e x p l i c i t

    u s a g e o f K r o n e c k e r p r o d u c t s . B o t h c o m p l e x i t y r e s u l t s a n d i m p l e m e n t a t i o n i d e a s

    a r e p r e s e n t e d . A b r o a d i n t r o d u c t i o n t o F F T s f e a t u r i n g \ m a t r i x l a n g u a g e " c a n

    b e f o u n d i n L o a 9 2 ] . I t s e e m s s a f e t o g u e s s t h a t t h i s b o o k w i l l h a v e l a r g e i m p a c t

    o n t h e f u r t h e r d e v e l o p m e n t o f F F T a l g o r i t h m s a s i t g i v e s a c o n c i s e m a t h e m a t i c a l

    t r e a t m e n t a n d t h o r o u g h d i s c u s s i o n o f m o s t o f t h e m a j o r F F T i d e a s k n o w n s o

    f a r .

    T h e p u r p o s e t h i s p a p e r i s t h r e e f o l d : F i r s t w e p r e s e n t a n e w F F T a l g o r i t h m .

    T h e n w e d i s c u s s t h e t h e o r y o f i n d e x d i g i t p e r m u t a t i o n s o n w h i c h s u c h a l g o r i t h m s

    a r e b a s e d . F i n a l l y w e d e r i v e s o m e o l d a n d n e w F F T a l g o r i t h m s u s i n g s p l i t t i n g

    l e m m a t a .

    O u r n e w a l g o r i t h m i m p l e m e n t s a r e c u r s i v e S w a r z t r a u b e r - t y p e o f s p l i t t i n g .

    I n c o n t r a s t t o S w a r z t r a u b e r ' s , i t i s i n - p l a c e f o r a n y o r d e r n . I t i s n a t u r a l l y s e l f -

    s o r t i n g a n d e s s e n t i a l l y a c c e s s e s d a t a o n l y w i t h s t r i d e o n e . T h i s i s i m p o r t a n t f o r

    c o m p u t e r s f e a t u r i n g v e r y f a s t s t r i d e o n e d a t a a c c e s s l i k e t h e V P s e r i e s o f F u j i t s u .

    A s i n S w a r z t r a u b e r ' s a l g o r i t h m , i t a l s o l e n d s i t s e l f t o p a r a l l e l i m p l e m e n t a t i o n . I n

    a j o i n t p r o j e c t b e t w e e n A N U a n d F u j i t s u L t d . i m p l e m e n t a t i o n s o f t h i s a l g o r i t h m

    f o r t h e n e w V P P 5 0 0 s u p e r c o m p u t e r a r e b e i n g d e v e l o p e d . T h e F u j i t s u V P P 5 0 0

    i s a s t a t e - o f - t h e - a r t v e c t o r p a r a l l e l c o m p u t e r w i t h u p t o 2 2 2 v e c t o r p r o c e s s o r s

    a n d c a p a b l e o f u p t o 3 5 5 G i g a o p s ( f r o m a p r o d u c t d e s c r i p t i o n b y F u j i t s u L t d . ) .

    A s a r s t s t a g e w e i m p l e m e n t e d t h i s a l g o r i t h m f o r n b e i n g a p o w e r o f 2 o n t h e

    V P 2 2 0 0 a t A N U .

    W e w i l l i n t r o d u c e s o m e b a s i c m a t r i x f a m i l i e s t o d e s c r i b e t h e F o u r i e r t r a n s -

    f o r m a l g o r i t h m s . T h e s e f a m i l i e s a r e c l o s e l y r e l a t e d t o b a s i c s u b r o u t i n e s ( s i m i l a r

    t o t h e B L A S i n l i n e a r a l g e b r a ) n e e d e d f o r t h e i m p l e m e n t a t i o n o f t h e a l g o r i t h m s .

    T h e b a s i c s u b r o u t i n e s w i l l b e d i s c u s s e d e l s e w h e r e . F o r o u r d e r i v a t i o n w e s u g g e s t

    s o m e n e w n o t a t i o n b a s e d o n K r o n e c k e r p r o d u c t s . K r o n e c k e r p r o d u c t s a r e w e l l

    k n o w n t o b e v e r y u s e f u l i n t h e d e r i v a t i o n a n d i m p l e m e n t a t i o n o f F F T a l g o r i t h m s .

    T h i s w a s r e p e a t e d l y d e m o n s t r a t e d , a r e c e n t r e f e r e n c e i s J J R T 9 0 ] . I n J J R T 9 0 ]

    a n a p p r o a c h v e r y s i m i l a r t o t h e o n e s u g g e s t e d h e r e w a s u s e d . S e v e r a l i d e n t i t i e s

    t h e y d i s c u s s w i l l b e u s e d h e r e f o r t h e i m p l e m e n t a t i o n o f F F T s o n v e c t o r a n d

    p a r a l l e l c o m p u t e r s . O n e p o i n t d e s e r v e s s p e c i a l m e n t i o n i n g h e r e : T h e y d i s c u s s

    t h e i d e a o f c r e a t i n g a c o m p i l e r f o r F F T s w h i c h c o u l d s e l e c t b e t w e e n t h e m y r -

    i a d s o f c h o i c e s t h e o n e b e s t a d a p t e d t o a p a r t i c u l a r c o m p u t e r a r c h i t e c t u r e . I n

    t h e s e c t i o n s f o l l o w i n g t h e d e s c r i p t i o n o f o u r n e w a l g o r i t h m w e p r e s e n t i n s o m e

    d e t a i l m a n y r e l a t i o n s n e e d e d f o r t h e i m p l e m e n t a t i o n o f s u c h a c o m p i l e r .

    T h e n e x t s e c t i o n i n t r o d u c e s t h e n o t a t i o n n e e d e d . T h i s s e c t i o n i s r a t h e r l o n g

    b u t n e c e s s a r y a s t h e n o t a t i o n i s o f t e n n e w a n d i n s o m e c a s e s n o t w e l l - k n o w n .

    T h e n , i n t h e t h i r d s e c t i o n w e p r e s e n t o u r n e w a l g o r i t h m .

    A f o r t h s e c t i o n g i v e s s o m e b a s i c p r o p o s i t i o n s o n i n d e x - d i g i t p e r m u t a t i o n s

    a n d K r o n e c k e r p r o d u c t s . I n d e x d i g i t p e r m u t a t i o n s a r e u s e d e x t e n s i v e l y f o r

    s e l f - s o r t i n g F o u r i e r t r a n s f o r m s . S o m e o f t h e i r b a s i c p r o p e r t i e s a r e d i s c u s s e d i n

    F r a 7 6 ] . I n d e x d i g i t p e r m u t a t i o n s a r e t r a n s f o r m a t i o n s w h i c h p e r m u t e d i g i t s o f a

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 0 9 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    5/45

    5 1 0 M . H e g l a n d

    m i x e d r a d i x r e p r e s e n t a t i o n o f t h e i n t e g e r s . T h e q u e s t i o n s w e d i s c u s s f o c u s a r o u n d

    t w o m a i n p o i n t s : F i r s t , a p r o d u c t o f a n i n d e x d i g i t p e r m u t a t i o n i s n o t a l w a y s

    a n i n d e x d i g i t p e r m u t a t i o n a g a i n . S e c o n d , t h e s a m e p e r m u t a t i o n c a n b e d e n e d

    b y d i e r e n t r a d i x v e c t o r s . B y i n v e s t i g a t i n g t h e s e q u e s t i o n s c a r e f u l l y w e a r e a b l e

    t o d e r i v e a f r a m e w o r k w h i c h l e a d s t o a c o m p r e h e n s i v e n e w u n i e d t r e a t m e n t

    o f a l l e s s e n t i a l m i x e d - r a d i x a l g o r i t h m s i n c l u d i n g s o m e y e t u n k n o w n a l g o r i t h m s .

    T h i s t r e a t m e n t i s b a s e d o n m a t r i x f a c t o r i z a t i o n s a s t h e y a r e u s e d i n L o a 9 2 ] .

    H o w e v e r , w e e x t e n d t h e d i s c u s s i o n o f L o a 9 2 ] b y i n c l u d i n g n e w s p l i t t i n g s a n d

    t h e a l g e b r a i c t r e a t m e n t o f i n d e x - d i g i t p e r m u t a t i o n s .

    T h e f t h s e c t i o n d e v e l o p s s o m e k n o w n a n d s e v e r a l n e w a l g o r i t h m s a n d t h e

    u n d e r l y i n g s p l i t t i n g s o r m a t r i x f a c t o r i z a t i o n s . F i n a l l y , i n t h e l a s t s e c t i o n , w e g i v e

    b o u n d s f o r t h e p e r f o r m a n c e i n d i c a t o r s .

    2 . N o t a t i o n

    I n t h e f o l l o w i n g w e w i l l h a v e a r a t h e r l e n g t h y i n t r o d u c t i o n t o n o t a t i o n . O n e

    r e a s o n f o r t h i s i s t h a t f o r t h e c o m p a r i s o n o f F F T s w e w i l l n e e d i n d e x - d i g i t

    p e r m u t a t i o n s w h i c h h a v e h a r d l y b e e n s y s t e m a t i c a l l y f o r m a l i z e d i n t h e l i t e r a t u r e .

    T h u s s o m e o f t h e n o t a t i o n w i l l b e n e w o r n o t s o w e l l - k n o w n . A l s o w e n e e d

    n o t a t i o n f o r v a r i o u s o b j e c t s a s i n t e g e r s ( f o r t h e i n d i c e s ) , v e c t o r s a n d m a t r i c e s

    a n d a l s o f o r p e r m u t a t i o n s r e l a t i n g t o t h e s e o b j e c t s .

    2 . 1 . I n t e g e r s

    T h e s e t o f i n t e g e r s w i l l b e d e n o t e d b y Z , t h e s e t o f p o s i t i v e i n t e g e r s b y N ,

    a n d t h e s e t o f n o n - n e g a t i v e i n t e g e r s l e s s t h a n t b y Z

    t

    = f 0 ; : : : ; t ? 1 g , w h e r e

    t 2 N . I n d i v i d u a l i n t e g e r s w i l l b e d e n o t e d b y t h e l o w e r c a s e R o m a n l e t t e r s

    i ; j ; k ; l ; m ; n ; p ; q ; r ; s ; t .

    C o n t r a r y t o s o m e a l g e b r a i c n o t a t i o n t h e o p e r a t o r s + ; ? ; ; = w i l l a l w a y s b e

    t h e o n e s d e n e d f o r t h e r a t i o n a l n u m b e r s Q . T h u s f o r i

    2Z

    n

    a n d j

    2Z

    m

    t h e

    s u m i + j i s w e l l d e n e d a n d i + j 2 Z

    n + m

    . I f w e u s e t h e o p e r a t o r s m o d u l o n w e

    w i l l e x p l i c i t l y w r i t e s o . F o r e x a m p l e i f i ; j 2 Z

    n

    w e w r i t e

    k = i + j m o d n

    i f k 2 Z

    n

    s u c h t h a t k = i + j + l n f o r s o m e l 2 Z .

    F o r t 2 N a n y b i j e c t i v e m a p p i n g

    : Z

    t

    ! Z

    t

    ; s 7! ( s ) :

    i s c a l l e d a p e r m u t a t i o n o f Z

    t

    . T h e s e t o f a l l p e r m u t a t i o n s o f Z

    t

    i s t h e s y m m e t r i c

    g r o u p S

    t

    . W e w i l l d e n o t e e l e m e n t s o f S

    t

    b y t h e G r e e k l e t t e r s ; ; ; . S p e c i a l

    e l e m e n t s o f S

    t

    a r e

    { t r a n s p o s i t i o n s :

    ( s

    1

    ) = s

    2

    ; ( s

    2

    ) = s

    1

    ; a n d ( s ) = s ; s 2 Z

    t

    n f s

    1

    ; s

    2

    g

    f o r s o m e s

    1

    ; s

    2

    2 Z

    t

    ,

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 0 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    6/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 1

    { s h i f t s :

    ( 0 ) = t ? 1 ; ( s ) = s ? 1 ; s 2 Z

    t

    n f 0 g ;

    { a n d r e v e r s a l s :

    ( s ) = t ? 1 ? s ; s 2 Z

    t

    :

    I t i s w e l l k n o w n t h a t a n y p e r m u t a t i o n c a n b e r e p r e s e n t e d a s a p r o d u c t o f t r a n s -

    p o s i t i o n s . T h e c o m p o s i t i o n

    1

    2

    o f p e r m u t a t i o n s

    1

    ;

    2

    2 S

    t

    i s d e n e d b y

    (

    1

    2

    ) ( s ) : =

    1

    (

    2

    ( s ) ) ; s 2 Z

    t

    ;

    a n d i s a l s o a p e r m u t a t i o n . W e w i l l u s e t h e s a m e s y m b o l f o r t h e c o m p o s i t i o n

    o f a n y m a p p i n g s .

    I n o r d e r t o m a k e t h e m d i s t i n c t f r o m i n t e g e r s w e w i l l d e n o t e a r r a y s o f i n t e g e r s

    b y u n d e r l i n e d l o w e r c a s e R o m a n l e t t e r s , e . g . ,

    n = ( n

    0

    ; : : : ; n

    t ? 1

    ) ; i = ( i

    0

    ; : : : ; i

    t ? 1

    ) :

    T h e c o m p o n e n t s o f n w i l l u s u a l l y b e d e n o t e d b y n

    s

    .

    A s u s u a l , N

    k

    d e n o t e s t h e s e t o f k - t u p l e s o f p o s i t i v e i n t e g e r s . F u r t h e r m o r e ,

    w e w i l l n e e d t h e s e t o f a l l n i t e a r r a y s o f i n t e g e r s l a r g e r t h a n 1 a n d c a l l i t

    N =

    k 2 N

    ( n

    0

    ; : : : ; n

    k ? 1

    ) 2 N

    k

    j n

    s

    > 1 ; s 2 Z

    k

    :

    T h e d i m e n s i o n o f n 2 N i s r e t r i e v e d b y , i . e . , i f n 2 N t h e n

    n 2 N

    ( n )

    :

    F o r c o n v e n i e n c e w e d e n o t e t h e p r o d u c t o f t h e c o m p o n e n t s o f n 2 N b y

    j n j = n

    0

    n

    ( n ) ? 1

    = n :

    F i n a l l y w e w i l l u s e a p r e - o r d e r i n g o n N d e n e d b y t h e f o l l o w i n g : F o r a n y n ; m 2

    N ; m s h a l l b e s u b o r d i n a t e t o n o r

    m n

    i f t h e r e e x i s t ( m ) a r r a y s n

    0

    ; : : : ; n

    ( m ) ? 1

    s u c h t h a t

    n = ( n

    0

    ; : : : ; n

    ( m ) ? 1

    ) a n d

    m = ( j n

    0

    j ; : : : ; j n

    ( m ) ? 1

    j ) :

    F o l l o w i n g t h i s d e n i t i o n , t h e a r r a y ( 6 ; 3 ; 7 ) i s s u b o r d i n a t e t o ( 2 ; 3 ; 3 ; 7 ) . I f m i s

    s u b o r d i n a t e t o n t h e n j m j = j n j a n d ( m ) ( n ) .

    T h e s e t o f a l l t - t u p l e s i = ( i

    0

    ; : : : ; i

    t ? 1

    ) o f i n t e g e r s i

    s

    2 Z

    n

    s

    ; s = f 0 ; : : : ; t ? 1 g

    w i l l b e d e n o t e d b y

    Z

    n

    = Z

    n

    0

    Z

    n

    t ? 1

    :

    T h i s s e t i s s o m e t i m e s a l s o c a l l e d a g r i d . N o t e t h a t

    Z

    n

    Z

    ( n )

    w h e r e Z

    t

    i s t h e s e t o f t - t u p l e s o f i n t e g e r s a s u s u a l .

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 1 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    7/45

    5 1 2 M . H e g l a n d

    N o w w e d e n e t h e a c t i o n s o f p e r m u t a t i o n s o n i n t e g e r a r r a y s b y p e r m u t i n g

    t h e c o m p o n e n t s . I n o r d e r t o b e a b l e t o d i s t i n g u i s h t h e p e r m u t a t i o n s f r o m t h e i r

    a c t i o n s o n i n t e g e r a r r a y s w e w i l l d e n o t e t h e m b y u n d e r l i n e d G r e e k l e t t e r s . T h u s

    f o r 2 S

    t

    a n d i = ( i

    0

    ; : : : ; i

    t ? 1

    ) 2 Z

    t

    w e d e n e

    ( i ) = ( i

    ( 0 )

    ; : : : ; i

    ( t ? 1 )

    ) :

    F r o m t h i s w e g e t

    ( Z

    n

    ) = Z

    ( n )

    :

    T h e s e t o f a l l w i l l b e c a l l e d S

    t

    . N o t e t h a t c o m p o s i t i o n i n S

    t

    i s r e v e r s e d c o m -

    p a r e d t o c o m p o s i t i o n i n S

    t

    . W i t h o t h e r w o r d s

    (

    1

    2

    ) ( i ) =

    2

    (

    1

    ( i ) ) o r

    1

    2

    =

    2

    1

    i f d e n o t e s t h e c o m p o s i t i o n i n S

    t

    . F i n a l l y p e r m u t a t i o n s l e a v e o u r \ n o r m " a n d

    d i m e n s i o n o f n i n v a r i a n t :

    j ( n ) j = j n j ; a n d ( ( n ) ) = ( n )

    f o r a l l 2 S

    ( n )

    ; n 2 N .

    T h e m i x e d - r a d i x d i g i t r e p r e s e n t a t i o n m a p s i n t e g e r t - t u p l e s o n t o i n t e g e r s

    w h e r e t h e c o m p o n e n t s o f t h e t - t u p l e s a r e j u s t t h e d i g i t s o f t h e n u m b e r . T h i s

    i s d o n e b y t h e f o l l o w i n g f o r m u l a :

    n

    ( i ) =

    t ? 1

    X

    s = 0

    i

    s

    n

    0

    n

    s ? 1

    ; i 2 Z

    n

    ; n 2 N ;

    w h e r e i = ( i

    0

    ; : : : ; i

    t ? 1

    ) a n d n = ( n

    0

    ; : : : ; n

    t ? 1

    ) . T h i s d e n e s a b i j e c t i v e m a p p i n g

    f r o m Z

    n

    t o Z

    j n j

    . T h i s m a p p i n g i s w e l l - k n o w n a n d c a n b e f o u n d , e . g . , i n K n u 8 1 ] .

    I f j n j = j m j t h e n

    ? 1

    m

    n

    d e n e s a b i j e c t i o n b e t w e e n Z

    n

    a n d Z

    m

    . A l t e r n a t i v e s

    t o

    n

    a r e w e l l - k n o w n a n d c a n b e g e n e r a t e d , e . g . , f r o m t h e C h i n e s e r e m a i n d e r

    t h e o r e m . H o w e v e r , t h e y w i l l n o t b e d i s c u s s e d h e r e . W e w i l l c a l l i t h e d i g i t v e c t o r

    o f i =

    n

    ( i ) r e l a t i v e t o a r a d i x v e c t o r n 2 N .

    A s a n e x a m p l e c o n s i d e r t h e r a d i x v e c t o r n = ( 1 0 ; 1 0 ; 1 0 ) . W i t h t h i s r a d i x

    v e c t o r w e c a n r e p r e s e n t i n t e g e r s b e t w e e n 0 a n d 9 9 9 a n d t h e d i g i t v e c t o r o f t h e

    n u m b e r 5 7 2 w o u l d b e ( 2 ; 7 ; 5 ) w h i c h a r e j u s t t h e o r d i n a r y d i g i t s i n r e v e r s e d

    o r d e r . M i x e d r a d i x r e p r e s e n t a t i o n e x t e n d s t h i s t o r a d i c e s o t h e r t h a n 1 0 a n d

    e v e n d i e r e n t r a d i c e s . F o r e x a m p l e w i t h t h e r a d i x v e c t o r n = ( 9 ; 1 0 ; 1 0 ) w e c a n

    r e p r e s e n t i n t e g e r s b e t w e e n 0 a n d 8 9 9 a n d t h e n u m b e r 5 7 2 h a s t h e i n d e x v e c t o r

    ( 5 ; 3 ; 6 ) a s 5 7 2 = 5 + 3 9 + 6 9 1 0 .

    I f t h e d i g i t s o f a n i n t e g e r a r e r s t c o m p u t e d w i t h t h e i n v e r s e o f

    n

    , t h e n

    p e r m u t e d w i t h a n d n a l l y m a p p e d b a c k t o a n i n t e g e r w i t h

    ( n )

    w e g e t a n

    i n d e x - d i g i t p e r m u t a t i o n . F o r m a l l y w e d e n e

    ~

    n

    =

    ( n )

    ? 1

    n

    ; n 2 N ; 2 S

    ( n )

    :

    A s

    ? 1

    n

    m a p s Z

    j n j

    o n t o Z

    n

    , m a p s Z

    n

    o n t o Z

    ( n )

    , a n d

    ( n )

    m a p s Z

    ( n )

    b a c k

    t o Z

    j n j

    t h e c o m p o s i t i o n m a p s Z

    j n j

    o n t o i t s e l f a n d a s a l l f a c t o r s a r e b i j e c t i v e w e

    g e t

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 2 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    8/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 3

    ~

    n

    2 S

    j n j

    :

    W e c a l l ~

    n

    t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y a n d n .

    A c o m p o s i t i o n o f t w o i n d e x - d i g i t p e r m u t a t i o n s g i v e s a p e r m u t a t i o n b u t i n

    g e n e r a l t h i s i s n o t a n i n d e x - d i g i t p e r m u t a t i o n a n y m o r e . I n a l a t e r s e c t i o n w e

    w i l l s t u d y t h e q u e s t i o n w h e n a p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s i s a n

    i n d e x - d i g i t p e r m u t a t i o n . F u r t h e r m o r e t h e s a m e i n d e x - d i g i t p e r m u t a t i o n c a n b e

    r e p r e s e n t e d b y d i e r e n t r a d i x v e c t o r s n a n d p e r m u t a t i o n s . T h i s q u e s t i o n w i l l

    a l s o b e d i s c u s s e d l a t e r .

    W e n o w c o n t i n u e o u r p r e v i o u s e x a m p l e . G i v e n t h e r a d i x v e c t o r ( 1 0 ; 1 0 ; 1 0 )

    a n d t h e p e r m u t a t i o n 2 S

    3

    w i t h ( 0 ) = 2 ; ( 1 ) = 0 a n d ( 2 ) = 1 t h e c o r r e -

    s p o n d i n g i n d e x - d i g i t - p e r m u t a t i o n p e r m u t e s t h e a c t u a l d i g i t s . T h u s t h e n u m b e r

    5 7 2 w i t h d i g i t v e c t o r ( 2 ; 7 ; 5 ) h a s a p e r m u t e d d i g i t v e c t o r ( 5 ; 2 ; 7 ) w h i c h c o r r e -

    s p o n d s t o t h e n u m b e r 7 2 5 . W i t h t h e s a m e p e r m u t a t i o n b u t a d i e r e n t r a d i x

    v e c t o r ( 9 ; 1 0 ; 1 0 ) t h e d i g i t v e c t o r o f 5 7 2 w a s s e e n t o b e ( 5 ; 3 ; 6 ) a n d s o t h e p e r -

    m u t e d d i g i t v e c t o r i s ( 6 ; 5 ; 3 ) w h i c h c o r r e s p o n d s w i t h r e s p e c t t o t h e p e r m u t e d

    r a d i x v e c t o r ( 1 0 ; 9 ; 1 0 ) t o t h e n u m b e r 3 2 6 = 6 + 5 1 0 + 3 1 0 9 . S o t h e s a m e p e r -

    m u t a t i o n c a n g i v e r i s e t o q u i t e d i e r e n t i n d e x - d i g i t p e r m u t a t i o n s d e p e n d i n g

    o n t h e r a d i x v e c t o r .

    2 . 2 . V e c t o r s

    W e i n t e r p r e t n - v e c t o r s x 2 C

    n

    a s m a p p i n g s w h i c h m a p t h e s e t o f i n d i c e s Z

    n

    i n t o

    t h e c o m p l e x n u m b e r s C :

    x : Z

    n

    ! C ; i 7! x ( i ) ;

    w h e r e x ( i ) i s t h e i - t h c o m p o n e n t o f x . T h i s m i g h t s e e m j u s t l i k e a f a n c y i n t e r -

    p r e t a t i o n , h o w e v e r , i t w i l l l e a d t o c o m p a c t n o t a t i o n a n d b e t t e r u n d e r s t a n d i n g

    o f t h e p e r m u t a t i o n s . W e w i l l d e n o t e v e c t o r s b y t h e l o w e r - c a s e R o m a n l e t t e r s

    x ; y ; z ; u ; v ; e ; f a n d s o m e t i m e s w r i t e t h e m a s c o l u m n v e c t o r s o f t h e i r c o m p o -

    n e n t s .

    W e w i l l u s e t h e s c a l a r p r o d u c t d e n e d i n t h e u s u a l w a y a s

    ( x ; y ) =

    X

    i 2 Z

    n

    x ( i ) y ( i ) ;

    w h e r e x ( i ) i s t h e c o n j u g a t e c o m p l e x o f x ( i ) . W e l e t e

    i

    2 C

    n

    b e t h e s t a n d a r d

    b a s i s s o t h a t

    x =

    X

    i 2 Z

    n

    x ( i ) e

    i

    :

    F o r a s e t o f v e c t o r s x

    s

    2 C

    n

    s

    ( s = 0 ; : : : ; t ? 1 ) w e d e n e t h e K r o n e c k e r

    p r o d u c t o f t h e x

    s

    w h i c h w e w r i t e a s

    x = x

    0

    x

    t ? 1

    =

    t ? 1

    O

    s = 0

    x

    s

    b y

    x ( i ) =

    t ? 1

    Y

    s = 0

    x

    s

    ( i

    s

    ) ; w h e r e ( i

    0

    ; : : : ; i

    t ? 1

    ) =

    ? 1

    n

    ( i )

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 3 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    9/45

    5 1 4 M . H e g l a n d

    f o r n = ( n

    0

    ; : : : ; n

    t ? 1

    ) a n d n = j n j . ( S o m e t i m e s t h i s p r o d u c t i s a l s o d e n o t e d a s

    x

    t ? 1

    x

    0

    . ) T h e a l g e b r a i c c l o s u r e ( t h e s e t o f a l l l i n e a r c o m b i n a t i o n s ) o f s u c h

    p r o d u c t s i s C

    n

    .

    P e r m u t a t i o n s o f v e c t o r s a r e d e n e d b y p e r m u t a t i o n s o f t h e i n d i c e s . A s v e c -

    t o r s a r e i n t e r p r e t e d a s m a p p i n g s w e c a n w r i t e a p e r m u t a t i o n o f a v e c t o r a s a

    c o m p o s i t i o n o f a p e r m u t a t i o n a n d a v e c t o r , i . e . , a s x . F o r e x a m p l e i f 2 S

    3

    w i t h ( ( 0 ) ; ( 1 ) ; ( 2 ) ) = ( 2 ; 0 ; 1 ) a n d x 2 C

    3

    w e g e t

    x =

    x ( ( 0 ) )

    x ( ( 1 ) )

    x ( ( 2 ) )

    !

    =

    x ( 2 )

    x ( 0 )

    x ( 1 )

    !

    :

    I t i s e a s y t o s h o w t h a t p e r m u t a t i o n s a r e u n i t a r y , i . e . ,

    ( x ; y ) = ( x ; y ) :

    T h e i - t h c o m p o n e n t o f x i s x ( ( i ) ) , t h e ( i ) t h c o m p o n e n t o f x a n d s o

    e

    i

    = e

    ? 1

    ( i )

    :

    2 . 3 . M a t r i c e s

    E l e m e n t s o f t h e s e t L ( C

    n

    ) o f l i n e a r o p e r a t o r s o n C

    n

    a r e d e n o t e d b y c a p i t a l

    R o m a n l e t t e r s . F o r a n y A 2 L ( C

    n

    ) t h e m a t r i x e l e m e n t s a r e

    A i ; j ] = ( A e

    j

    ) ( i ) = ( e

    i

    ; A e

    j

    ) ; i ; j 2 Z

    n

    :

    T w o s p e c i a l m a t r i c e s w i l l b e u s e d f r e q u e n t l y , n a m e l y I

    n

    , t h e i d e n t i t y i n C

    n

    a n d F

    n

    2 L ( C

    n

    ) , t h e d i s c r e t e F o u r i e r t r a n s f o r m m a t r i x w i t h c o m p o n e n t s b e i n g

    p o w e r s o f t h e n - t h r o o t o f u n i t y , i . e . ,

    F

    n

    i ; j ] = !

    i j

    n

    ; i ; j 2 Z

    n

    ;

    w h e r e

    !

    n

    = e x p ( ? 2

    p

    ? 1 = n )

    a n d e x p i s t h e e x p o n e n t i a l f u n c t i o n .

    W e d e n e t h e K r o n e c k e r p r o d u c t A o f a s e t o f m a t r i c e s A

    s

    2 L ( C

    n

    s

    ) b y

    A

    t ? 1

    O

    s = 0

    x

    s

    !

    =

    t ? 1

    O

    s = 0

    ( A

    s

    x

    s

    ) ; x

    s

    2 C

    n

    s

    ; ( s = 0 ; : : : ; t ? 1 ) ;

    a n d w i l l d e n o t e i t b y

    A =

    t ? 1

    O

    s = 0

    A

    s

    = A

    0

    A

    t ? 1

    :

    I t c a n b e e a s i l y c h e c k e d t h a t t h e m a t r i x e l e m e n t s o f t h e K r o n e c k e r p r o d u c t a r e

    g i v e n b y

    A i ; j ] =

    t ? 1

    Y

    s = 0

    A

    s

    i

    s

    ; j

    s

    ]

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 4 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    10/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 5

    i f ( i

    0

    ; : : : ; i

    t ? 1

    ) =

    ? 1

    n

    ( i ) a n d ( j

    0

    ; : : : ; j

    t ? 1

    ) =

    ? 1

    n

    ( j ) .

    W e w i l l u s e v a r i o u s m a t r i x f a m i l i e s . T h e y a r e a l l m a p p i n g s f r o m N

    t

    i n t o

    L ( C

    n

    ) a n d w i l l b e d e n o t e d b y T ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ; n

    4

    ) ; W ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ) ; e t c .

    Q u i t e f r e q u e n t l y w e w i l l m a k e u s e o f p e r m u t a t i o n m a t r i c e s . T h e y a r e g e n e r -

    a t e d b y a p e r m u t a t i o n 2 S

    n

    a n d a r e d e n e d b y

    P ( ) x = x

    ? 1

    :

    T h e m a t r i x e l e m e n t s o f t h e p e r m u t a t i o n s a r e

    P ( ) i ; j ] = ( P ( ) e

    j

    ) ( i ) = ( e

    j

    ? 1

    ) ( i ) = e

    j

    (

    ? 1

    ( i ) ) =

    1 ; i f ( j ) = i

    0 ; e l s e

    T h e r e a s o n f o r u s i n g x

    ? 1

    i n s t e a d o f x

    i s p u r e l y e s t h e t i c , w e w a n t t o d e n e

    x o n t h e \ n o n - p e r m u t e d a r g u m e n t s e t " . A c o n s e q u e n c e o f t h i s i s t h e c o m p o s i t i o n

    r u l e f o r t r a n s p o s i t i o n s : L e t

    1

    ;

    2

    2 S

    n

    . T h e n f o r a n y x 2 C

    n

    :

    P (

    1

    2

    ) x = x (

    1

    2

    )

    ? 1

    = x

    ? 1

    2

    ? 1

    1

    = P (

    1

    ) ( x

    ? 1

    2

    ) = P (

    1

    ) P (

    2

    ) x

    a n d s o

    P (

    1

    2

    ) = P (

    1

    ) P (

    2

    ) :

    W e w i l l n o w l o o k c l o s e r a t a s p e c i a l t r a n s p o s i t i o n w h i c h w e w i l l u s e l a t e r . I t

    i s g e n e r a t e d b y 2 S

    5

    w i t h

    ( 1 ) = 3 ; ( 3 ) = 1 ; a n d ( s ) = s ; f o r s = 0 ; 2 ; 4 :

    A s d e n e d e a r l i e r t h e a c t i o n o f o n Z

    5

    i s w i t h

    ( i ) = ( i

    0

    ; i

    3

    ; i

    2

    ; i

    1

    ; i

    4

    ) ; f o r i = ( i

    0

    ; i

    1

    ; i

    2

    ; i

    3

    ; i

    4

    ) 2 Z

    5

    :

    T h e i n d e x - d i g i t p e r m u t a t i o n a s s o c i a t e d w i t h i s t h e n ~

    n

    =

    ( n )

    ? 1

    n

    a n d w e d e n o t e i t s a c t i o n o n C

    n

    w i t h n = j n j b y

    T ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ; n

    4

    ) = P ( ~

    n

    ) :

    N o w l e t

    y = P ( ~

    n

    ) x = x

    n

    ? 1

    ? 1

    ( n )

    a n d s e t

    i =

    ? 1

    ? 1

    ( n )

    ( j ) ; j 2 Z

    n

    :

    T h e n j =

    ( n )

    ( ( i ) ) a n d n a l l y

    y

    ( n )

    ( i

    0

    ; i

    3

    ; i

    2

    ; i

    1

    ; i

    4

    ) = x

    n

    ( i

    0

    ; i

    1

    ; i

    2

    ; i

    3

    ; i

    4

    ) ;

    w h i c h s h o w s t h a t i f x a n d y a r e i n t e r p r e t e d a s m u l t i d i m e n s i o n a l a r r a y s ( f u n c t i o n s

    o n C

    n

    a n d C

    ( n )

    r e s p e c t i v e l y ) t h e p e r m u t a t i o n i s j u s t a t r a n s p o s i t i o n o f t h e

    a r r a y s . T h e i m p l e m e n t a t i o n o f s u c h t r a n s p o s i t i o n s u s u a l l y n e e d s t o h a v e t h e

    v e c t o r s x a n d y i n d i e r e n t s t o r a g e l o c a t i o n s . H o w e v e r , a s i n t h e c a s e o f m a t r i x

    t r a n s p o s i t i o n s , t h e x a n d y c a n u s e t h e s a m e s t o r a g e l o c a t i o n s i f n

    1

    = n

    3

    . W e

    c a l l t h i s a s q u a r e t r a n s p o s i t i o n . F F T a l g o r i t h m s u s i n g o n l y T ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ; n

    4

    )

    w i t h n

    1

    = n

    3

    c a n b e i m p l e m e n t e d w i t h o u t t h e n e e d f o r a n y e x t r a w o r k s p a c e a n d

    w i l l b e c a l l e d i n - p l a c e .

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 5 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    11/45

    5 1 6 M . H e g l a n d

    T h e t r a n s p o s i t i o n s a s d e n e d a b o v e a l s o h a v e b e e n u s e d t o s o l v e b a n d e d s y s -

    t e m s a n d t h e r e w e r e t e r m e d \ w r a p - a r o u n d - p a r t i t i o n i n g p e r m u t a t i o n s " H e g 9 1 ] .

    A s e c o n d m a t r i x f a m i l y i s d e n e d b y

    F ( n

    0

    ; n

    1

    ; n

    2

    ) = I

    n

    0

    F

    n

    1

    I

    n

    2

    :

    T h e s e m a t r i c e s a r e j u s t m u l t i p l e F o u r i e r t r a n s f o r m s .

    N o w l e t n = ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ) . T h e n w e n e e d a f a m i l y o f d i a g o n a l m a t r i c e s w i t h

    d i a g o n a l e l e m e n t s

    W ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ) i ; i ] = ( !

    n

    1

    n

    2

    )

    i

    1

    i

    2

    ; i f ( i

    0

    ; i

    1

    ; i

    2

    ; i

    3

    ) =

    ? 1

    n

    ( i ) ; i 2 Z

    j n j

    ;

    w h e r e t h e d i a g o n a l e l e m e n t s a r e p o w e r s o f t h e n

    1

    n

    2

    t h r o o t o f u n i t y . T h i s m a t r i x

    i s c a l l e d w e i g h t m a t r i x o r t w i d d l e - f a c t o r m a t r i x . U s u a l l y m u l t i p l i c a t i o n b y t h i s

    m a t r i x i s i m p l e m e n t e d b y u s i n g a p r e c o m p u t e d t a b l e c o n t a i n i n g t h e n e c e s s a r y

    p o w e r s o f !

    n

    .

    2 . 4 . A l g o r i t h m s

    O u r a l g o r i t h m s w i l l b e f o r m u l a t e d i n a s y m b o l i c l a n g u a g e w h i c h h a s s o m e s i m -

    i l a r i t i e s w i t h M a t l a b M a t 9 3 ] , s e e a l s o L o a 9 2 ] . W e w i l l i n t r o d u c e t h i s n o t a t i o n

    h e r e w i t h a n e x a m p l e w h i c h d e s c r i b e s t h e g e n e r i c F o u r i e r t r a n s f o r m . I t i s d e n e d

    b y

    A l g o r i t h m 2 . 1 .

    f u n c t i o n y = g f t ( x ; n )

    ( * c o m p u t e F o u r i e r t r a n s f o r m o f x * )

    n 2 N ; x ; y 2 C

    n

    ;

    0

    ;

    1

    2 S

    n

    y : = P (

    1

    ) F

    n

    P (

    0

    ) x

    O n t h e r s t l i n e , t h e n a m e o f t h e f u n c t i o n , h e r e g f t , i s s p e c i e d a n d t h e

    a r g u m e n t s x ; n a n d t h e r e s u l t y a r e n a m e d . T h e s e c o n d l i n e i s a c o m m e n t w h i c h

    s p e c i e s t h e f u n c t i o n a l i t y o f t h e a l g o r i t h m a n d t h e t h i r d l i n e s p e c i e s t h e t y p e

    o f a r g u m e n t s , r e s u l t s a n d e x t r a d a t a , h e r e t h e p e r m u t a t i o n s

    k

    . T h e f o u r t h l i n e

    d e n e s a n a s s i g n m e n t s t a t e m e n t w i t h t h e v a r i a b l e t o b e r e d e n e d o n t h e l e f t

    s i d e a n d a n e x p r e s s i o n t o r e d e n e t h i s v a r i a b l e o n t h e r i g h t . F o r t h i s e x p r e s s i o n

    t h e s a m e t e r m i n o l o g y a s i n t h e r e s t o f t h e p a p e r w i l l b e u s e d . I n t h e e x a m p l e

    t h e v e c t o r x i s r s t p e r m u t e d t h e n m u l t i p l i e d b y t h e d i s c r e t e F o u r i e r t r a n s f o r m

    m a t r i x F

    n

    a n d n a l l y p e r m u t e d a g a i n . A l t h o u g h n o t i m p l e m e n t e d i n t h i s w a y ,

    t h e f u n c t i o n a l i t y o f t h e g e n e r i c F o u r i e r t r a n s f o r m i s t h e o n e w e w i l l e n c o u n t e r .

    I f P (

    0

    ) = P (

    1

    ) = I

    n

    w e c a l l t h e t r a n s f o r m s e l f - s o r t i n g . F u r t h e r f u n c t i o n a l i t y

    l i k e s o m e o b v i o u s c o n t r o l s t a t e m e n t s w i l l b e d e n e d a s w e g o a l o n g . O f t e n t h e

    f u n c t i o n s w i l l b e r e c u r s i v e . M o s t o f t h e f u n c t i o n s d e n e d i n t h i s w a y h a v e b e e n

    t r a n s l a t e d t o M a t l a b a n d t e s t e d .

    T h e u l t i m a t e t e s t f o r p e r f o r m a n c e o f a n a l g o r i t h m i s t o c o d e i t a n d r u n

    i t o n t h e d e s i r e d c o m p u t e r . V a r i o u s p r o p e r t i e s o f h a r d - a n d s o f t w a r e u s e d w i l l

    i n u e n c e p e r f o r m a n c e . I t i s u s e f u l t o h a v e i n d i c a t o r s s u m m a r i z i n g a s p e c t s o f t h e

    a l g o r i t h m t o b e t e s t e d , a n d c o n n e d w i t h s o m e i n f o r m a t i o n a b o u t t h e h a r d w a r e ,

    a l l o w c o m p a r i s o n s o f d i e r e n t a l g o r i t h m s .

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 6 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    12/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 7

    A r s t i n d i c a t o r w h i c h w e d e n o t e b y c o u n t s t h e n u m b e r o f o a t i n g p o i n t

    o p e r a t i o n s n e e d e d . F o r t h e g e n e r i c F o u r i e r t r a n s f o r m , i f w e u s e t h e o r d i n a r y

    c o m p l e x m a t r i x - v e c t o r p r o d u c t w i t h o u t t a k i n g i n t o a c c o u n t a n y s p e c i a l v a l u e s

    ( l i k e 1 ) w e n e e d n

    2

    c o m p l e x m u l t i p l i c a t i o n s a n d n ( n ? 1 ) c o m p l e x a d d i t i o n s f o r

    a t r a n s f o r m o f s i z e n , a n d w e w o u l d s e t

    ( g f t ; n ) = 8 n

    2

    ? 2 n :

    T h i s i n d i c a t o r g i v e s r e a s o n a b l e c o m p a r i s o n s f o r s e q u e n t i a l c o m p u t e r s . F o r v e c t o r

    a n d p a r a l l e l c o m p u t e r s , h o w e v e r , o t h e r i n d i c a t o r s a r e n e e d e d .

    F o u r i e r t r a n s f o r m a l g o r i t h m s c o n t a i n e s s e n t i a l l y m a p p i n g s o f t h e s o r t

    x 7! ( I

    n

    0

    A ) x ; A 2 L ( C

    n

    1

    ) ; x 2 C

    n

    0

    n

    1

    :

    S u c h m a p p i n g s c a n b e i m p l e m e n t e d a s t r i p l e l o o p s w h e r e t h e \ i n n e r m o s t " l o o p

    i s o f l e n g t h n

    0

    a n d t h e t w o o u t e r l o o p s a r e o f l e n g t h n

    1

    . D a t a a c c e s s t o x i s w i t h

    s t r i d e o n e i n t h e i n n e r m o s t l o o p a n d t h e e l e m e n t s o f A a r e c o n s t a n t i n t h i s l o o p .

    O n a v e c t o r p r o c e s s o r , t h e i n n e r m o s t l o o p w o u l d b e t h e f a v o u r e d c a n d i d a t e f o r

    v e c t o r i z a t i o n . O n a d i s t r i b u t e d m e m o r y p a r a l l e l p r o c e s s o r , d a t a i s d i s t r i b u t e d

    s u c h t h a t t h i s i n n e r m o s t l o o p c a n b e r u n i n p a r a l l e l a n d n o c o m m u n i c a t i o n i s

    n e e d e d . B o t h v e c t o r i z a t i o n a n d p a r a l l e l i z a t i o n , h o w e v e r , a r e o n l y e c i e n t i f n

    0

    i s l a r g e . O u r F o u r i e r t r a n s f o r m a l g o r i t h m s c o n s i s t s o f m a p p i n g s

    x 7! F ( n

    0

    ; n

    1

    ; n

    2

    ) x

    w h e r e n

    1

    i s s m a l l ,

    x 7! W ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ) x a n d

    x 7! T ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ; n

    4

    ) x :

    W e a s s u m e t h a t t h e r s t a n d t h i r d m a p p i n g s c a n b e o v e r l a p p e d w i t h m a p p i n g s

    o f t h e s e c o n d k i n d . I f t h e a l g o r i t h m c o n t a i n s o n l y o n e m a p p i n g o f t h e s e c o n d

    k i n d ,

    A l g o r i t h m 2 . 2 .

    f u n c t i o n y = w f t ( x ; n )

    : : :

    y : = W ( n

    0

    ; n

    1

    ; n

    2

    ; n

    3

    ) x

    : : :

    w e s e t o u r s e c o n d i n d i c a t o r t o

    ( w f t ; n ) =

    (

    1

    n

    0

    ; i f n

    0

    > 1

    2

    n

    1

    i f n

    0

    = 1 .

    T h e f a c t o r 2 i n t h e s e c o n d c a s e t a k e s i n t o a c c o u n t t h a t t w o v e c t o r s u s u a l l y h a v e

    t o b e l o a d e d i n t h i s c a s e .

    W e a l s o d e s i r e o u r i n d i c a t o r t o b e a d d i t i v e , i . e . , i f a n a l g o r i t h m c o n s i s t s o f

    t w o p a r t s a s i n

    A l g o r i t h m 2 . 3 .

    f u n c t i o n y = p a f t ( x ; n )

    : : :

    y : = p a r t 1 ( x ; n )

    y : = p a r t 2 ( y ; n )

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 7 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    13/45

    5 1 8 M . H e g l a n d

    w e r e q u i r e

    ( p a f t ; n ) = ( p a r t 1 ; n ) + ( p a r t 2 ; n ) :

    S i n c e d a t a f r o m p a r t 2 h a s t o b e c o m p u t e d i n p a r t 1 t h e t w o p a r t s c a n n o t b e

    d o n e i n p a r a l l e l a n d t h u s a d d i t i v i t y i s a l s o v a l i d f o r p a r a l l e l p r o c e s s i n g . S o m e

    t i m e s w e w i l l u s e t h e s y m b o l f ( n ) = O ( n ) m e a n i n g t h a t t h e r e i s a c o n s t a n t s u c h

    t h a t f ( n ) C n f o r a l l n .

    3 . A n e w F F T a l g o r i t h m

    T h i s s e c t i o n s p e c i e s a n e w a l g o r i t h m t o d o f a s t F o u r i e r t r a n s f o r m s . S o m e p r o p o -

    s i t i o n s a r e s t a t e d a b o u t t h e p e r f o r m a n c e o f t h i s a l g o r i t h m a n d s o m e p e r f o r m a n c e

    d a t a a r e s u p p l i e d . P r o o f s o f t h e p r o p o s i t i o n s w i l l b e g i v e n i n l a t e r s e c t i o n s .

    T h e n u m b e r o f o a t i n g p o i n t o p e r a t i o n s r e q u i r e d i s b o u n d e d b y t h e n u m b e r

    o f o p e r a t i o n s n e e d e d f o r t h e t r a d i t i o n a l r a d i x 2 a l g o r i t h m s . T h i s c a n b e u p t o

    2 0 % m o r e t h a n f o r h i g h e r r a d i x o r e v e n s p l i t - r a d i x D H 8 4 ] m e t h o d s . O n m a n y

    p l a t f o r m s , h o w e v e r , t h e n e w a l g o r i t h m p e r f o r m s f a s t e r a s i t e s s e n t i a l l y o n l y

    a c c e s s e s d a t a w i t h s t r i d e o n e a n d a l l o w s l o n g v e c t o r l e n g t h s .

    T h e a l g o r i t h m i s d e s c r i b e d b y t h e f o l l o w i n g p s e u d o - c o d e :

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 8 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    14/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 1 9

    A l g o r i t h m 3 . 1 .

    f u n c t i o n y = t f t ( x ; n

    0

    ; n

    1

    ; n

    2

    )

    ( * c o m p u t e m u l t i p l e F o u r i e r t r a n s f o r m , y = F ( n

    0

    ; n

    1

    ; n

    2

    ) x * )

    n

    0

    ; n

    1

    ; n

    2

    2 N ; x ; y 2 C

    n

    0

    n

    1

    n

    2

    p : = m i n f s 2 N j

    p

    n

    1

    = s 2 N g

    i f ( p = n

    1

    )

    y : = F ( n

    0

    ; p ; n

    2

    ) x

    e l s e

    q : =

    p

    n

    1

    = p

    y : = t f t ( x ; n

    0

    q p ; q ; n

    2

    )

    y : = W ( n

    0

    ; q p ; q ; n

    2

    ) T ( n

    0

    ; q ; p ; q ; n

    2

    ) F ( n

    0

    q ; p ; q n

    2

    ) W ( n

    0

    q ; p ; q ; n

    2

    ) y

    y : = t f t ( y ; n

    0

    q p ; q ; n

    2

    )

    e n d i f

    L e t

    n

    1

    =

    t ? 1

    Y

    i = 0

    p

    r

    i

    i

    ( 1 )

    b e t h e p r i m e f a c t o r d e c o m p o s i t i o n o f t h e o r d e r n

    1

    o f t h e F o u r i e r t r a n s f o r m . I n

    a r s t s t e p o u r a l g o r i t h m c o m p u t e s

    p =

    Y

    r

    i

    i s o d d

    p

    i

    ( 2 )

    t h e p r o d u c t o f a l l p r i m e s w h i c h a p p e a r i n o d d p o w e r s i n t h e f a c t o r i z a t i o n . I f n

    1

    i s e q u a l t o p t h e n i t s p r i m e f a c t o r d e c o m p o s i t i o n c o n t a i n s o n l y m u t u a l l y d i e r e n t

    p r i m e f a c t o r s . I n t h i s c a s e x i s m u l t i p l i e d b y t h e m a t r i x F ( n

    0

    ; p ; n

    2

    ) . F o r t h i s

    m u l t i p l i c a t i o n a s e p a r a t e a l g o r i t h m h a s t o b e s u p p l i e d ( e . g . , t h e p r i m e f a c t o r

    a l g o r i t h m T e m 8 3 , T e m 8 5 ] ) . I f n

    1

    i s n o t e q u a l t o p t h e n n

    1

    = p = q

    2

    i s a s q u a r e o f

    a n i n t e g e r . T h e a l g o r i t h m t h e n p r o c e e d s b y r s t c a l l i n g i t s e l f w i t h o r d e r q < n

    1

    ,

    t h e n d o i n g s o m e i n t e r m e d i a t e m a t r i x v e c t o r m u l t i p l i e s , a n d n a l l y c a l l i n g i t s e l f

    a g a i n . T h u s i t b o t h d o e s d e c i m a t i o n i n t i m e a n d d e c i m a t i o n i n f r e q u e n c y . T h e

    a b o v e d e n e s o u r a l g o r i t h m i n a r e c u r s i v e f a s h i o n . H o w e v e r , f o r t h e V P 2 2 0 0 w e

    i m p l e m e n t e d t h i s a l g o r i t h m i n a n o n - r e c u r s i v e F o r t r a n 7 7 p r o g r a m .

    I n o r d e r t o g e t a b e t t e r u n d e r s t a n d i n g o f t h i s a l g o r i t h m , w e w i l l s t u d y h o w

    i t p r o c e e d s i n t h e c a s e o f n

    1

    = 8 . I n t h e r s t s t e p i t g e t s p = 2 a n d p r o c e e d s

    t o t h e s t a t e m e n t s f o l l o w i n g \ e l s e " . T h e r e i t c o m p u t e s q = 2 , t h e n d o e s a n o r d e r

    2 t r a n s f o r m , t h e n t h e i n t e r m e d i a t e s t e p a n d a n a l o r d e r 2 t r a n s f o r m . F o r t h e

    o r d e r t w o t r a n s f o r m s t f t i s c a l l e d r e c u r s i v e l y , b u t a s 2 i s p r i m e , w e e n d u p w i t h

    p = 2 = n

    1

    o n t h i s l e v e l . T h u s e s s e n t i a l l y t h e f o l l o w i n g t h r e e s t e p s a r e p e r f o r m e d :

    y : = F ( 4 n

    0

    ; 2 ; n

    2

    ) x

    y : = W ( n

    0

    ; 4 ; 2 ; n

    2

    ) T ( n

    0

    ; 2 ; 2 ; 2 ; n

    2

    ) F ( 2 n

    0

    ; 2 ; 2 n

    2

    ) W ( 2 n

    0

    ; 2 ; 2 ; n

    2

    ) y

    y : = F ( 4 n

    0

    ; 2 ; n

    2

    ) y

    S o i n t h i s c a s e w e h a v e t w o m u l t i p l i c a t i o n s w i t h W , t h r e e o r d e r 2 t r a n s f o r m s

    a n d o n e s q u a r e t r a n s p o s i t i o n .

    T h e f o l l o w i n g p r o p o s i t i o n s t a t e s t h a t o u r a l g o r i t h m d o e s w h a t w e w a n t i t t o

    d o .

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 1 9 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    15/45

    5 2 0 M . H e g l a n d

    P r o p o s i t i o n 3 . 1 . A l g o r i t h m 3 d e n e s a n i n - p l a c e a n d s e l f - s o r t i n g F o u r i e r

    t r a n s f o r m a n d f o r a l l x 2 C

    n

    w i t h n = n

    0

    n

    1

    n

    2

    t h e f o l l o w i n g h o l d s :

    t f t ( x ; n

    0

    ; n

    1

    ; n

    2

    ) = F ( n

    0

    ; n

    1

    ; n

    2

    ) x :( 3 )

    T h e p r o o f u s e s a n e w s p l i t t i n g f o r m u l a . I t w i l l b e g i v e n i n S e c t . 5 .

    T h e f o l l o w i n g p r o p o s i t i o n s t a t e s t h a t o u r n e w a l g o r i t h m i s a t l e a s t a s f a s t

    a s t h e t r a d i t i o n a l r a d i x 2 a l g o r i t h m s i n t h e c a s e o f n

    1

    b e i n g a p o w e r o f 2 . T h e

    g e n e r a l m i x e d - r a d i x c a s e c a n b e t r e a t e d i n a s i m i l a r w a y .

    P r o p o s i t i o n 3 . 2 . T h e n u m b e r o f o a t i n g p o i n t o p e r a t i o n s n e e d e d f o r A l g o -

    r i t h m 3 i s f o r o r d e r s b e i n g a p o w e r o f 2 b o u n d e d b y

    ( t f t ; n

    0

    ; 2

    t

    ; n

    2

    ) 5 t n

    0

    2

    t

    n

    2

    :

    T h i s t h e o r e m w i l l b e p r o v e d i n S e c t . 6 . C o m p a r e d t o o t h e r a l g o r i t h m s w h i c h

    c o m e c l o s e t o o p e r a t i o n c o u n t s o f 4 t n

    0

    2

    t

    n

    2

    t h i s n e w a l g o r i t h m d o e s n ' t s e e m t o

    p e r f o r m b e t t e r t h a n t h e u s u a l o n e s . H o w e v e r , a n i n d i c a t i o n f o r b e t t e r p e r f o r -

    m a n c e i s g i v e n b y t h e f o l l o w i n g t h e o r e m g i v i n g a n e s t i m a t e f o r t h e l o o p - o v e r h e a d

    i n d i c a t o r . W e w i l l c o m p u t e e s t i m a t e s f o r t h i s i n d i c a t o r f o r v a r i o u s o t h e r a l g o -

    r i t h m s i n S e c t . 6 f o r c o m p a r i s o n . A s s i m p l e t r a n s f o r m s ( n

    0

    = n

    2

    = 1 ) a r e m o s t

    c r u c i a l w e g i v e a n e s t i m a t e f o r t h i s c a s e .

    P r o p o s i t i o n 3 . 3 . L e t n b e t h e p r o d u c t o f p o w e r s o f s o m e s m a l l p r i m e n u m b e r s ,

    e . g . , 2 , 3 a n d 5 . T h e n t h e i n n e r m o s t l o o p o v e r h e a d i n d i c a t o r f o r A l g o r i t h m 3 i s

    i n t h e c a s e o f s i m p l e t r a n s f o r m s b o u n d e d b y

    ( t f t ; 1 ; n ; 1 ) = O (

    p

    n

    ? 1

    ) :( 4 )

    I n t h e f o l l o w i n g w e g i v e s o m e t i m i n g r e s u l t s f o r a n i m p l e m e n t a t i o n o f o u r

    n e w a l g o r i t h m o n t h e V P 2 2 0 0 . I n c o m p a r i s o n w e g i v e t h e t i m i n g s f o r t h e l i b r a r y

    r o u t i n e D V C F T 1 f r o m F u j i t s u ' s s c i e n t i c s u b r o u t i n e l i b r a r y S S L I I F u j 9 0 ] w h i c h

    i m p l e m e n t s p e c i a l l y t u n e d v a r i a n t s o f t h e P e a s e a n d S t o c k h a m A l g o r i t h m s . T h e

    h i g h e s t M F l o p r a t e i s a r o u n d 4 7 0 . H e r e w e o n l y c o u n t e d t h e o p e r a t i o n s d o n e

    i n t h e a c t u a l t r a n s f o r m a n d n o t t h e o n e s n e e d e d f o r t h e t a b l e s e t u p . I f w e t a k e

    t h e s e i n a c c o u n t a l s o w e g e t a p e r f o r m a n c e a r o u n d 5 0 0 M F l o p s . T h e r e d u c t i o n

    i n c o m p u t e r t i m e f o r o u r n e w a l g o r i t h m s e e m s t o b e r a t h e r s m a l l . H o w e v e r ,

    D V C F T 1 o n l y a c h i e v e s t h e p e r f o r m a n c e d i s p l a y e d i f s o m e p r e l i m i n a r y c o m p u -

    t a t i o n s h a v e b e e n d o n e . F u r t h e r m o r e i t u s e s a l a r g e w o r k s p a c e a r r a y . O u r n e w

    a l g o r i t h m r e q u i r e s n o s u c h w o r k s p a c e .

    T a b l e 1 . T i m e i n m i c r o s e c o n d s a n d p e r f o r m a n c e i n M F l o p s o f t f t ( d o u b l e p r e c i s i o n )

    n t i m e p e r f o r m a n c e t i m e f o r S t o c k h a m

    1 0 2 4 3 8 0 . 0 1 1 9 1 7 3 . 0

    2 0 4 8 6 4 0 . 0 1 5 7 4 0 6 . 0

    4 0 9 6 7 4 0 . 0 2 9 9 8 2 1 . 0

    8 1 9 2 1 4 3 8 . 0 3 3 6 1 7 5 5 . 0

    1 6 3 8 4 2 5 0 7 . 0 4 1 8 3 8 1 4 . 0

    3 2 7 6 8 5 1 1 4 . 0 4 4 2 8 1 9 0 . 0

    6 5 5 3 6 1 0 6 0 3 . 0 4 5 7 1 7 6 1 7 . 0

    1 3 1 0 7 2 2 2 0 4 0 . 0 4 7 0 3 7 5 5 3 . 0

    F i n a l l y , a w o r d o n p a r a l l e l e x e c u t i o n . I n t h e c o r e o f t h e c o d e o f F F T a l g o -

    r i t h m s o n e u s u a l l y n d s m u l t i p l e l o o p s . O n v e c t o r c o m p u t e r s t h e i n n e r m o s t o f

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 2 0 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    16/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 2 1

    t h e s e l o o p s i s v e c t o r i z e d a s i t g i v e s s t r i d e - o n e d a t a a c c e s s . T h i s i s w h y , i n o u r

    a l g o r i t h m , w e t r y t o m a x i m i z e t h e l e n g t h o f t h e i n n e r m o s t l o o p t o g e t o p t i -

    m a l v e c t o r p e r f o r m a n c e . I n t h e o r d i n a r y a l g o r i t h m s t h e o u t e r m o s t l o o p c a n b e

    r e a s o n a b l y l a r g e a s w e l l . T h i s i s n o t t h e c a s e f o r o u r a l g o r i t h m w h e r e w e t r y t o

    m i n i m i z e t h e o u t e r m o s t l o o p , w h i c h o f t e n h a s l e n g t h o n e f o r o u r a l g o r i t h m . T h u s

    d i s t r i b u t i o n o f t h e o u t e r m o s t l o o p o v e r d i e r e n t p r o c e s s o r s , a s i t i s o f t e n d o n e

    f o r t h e \ c l a s s i c a l " a l g o r i t h m s i s n o t a f e a s i b l e o p t i o n h e r e . I n s t e a d , w e u s e t h e

    i n n e r m o s t l o o p a g a i n f o r d i s t r i b u t i o n o v e r p r o c e s s o r s . I f a d i s t r i b u t e d m e m o r y

    i s u s e d , t h i s m e a n s t h a t t h e d a t a h a s t o b y c y c l i c a l l y d i s t r i b u t e d . N o t e t h a t t h e

    u s a g e o f t h e i n n e r m o s t l o o p f o r p a r a l l e l i z a t i o n d o e s n o t m e a n a n y d i s a d v a n t a g e

    i n c o m p a r i s o n w i t h t h e u s a g e o f t h e o u t e r m o s t l o o p a s w e e s s e n t i a l l y r e p l a c e t h e

    o u t e r m o s t l o o p b y a l o n g e r i n n e r m o s t l o o p .

    I f t h e i n n e r m o s t l o o p i s u s e d f o r p a r a l l e l i z a t i o n a n d v e c t o r i z a t i o n , t h e i n n e r

    m o s t l o o p o v e r h e a d i n d i c a t o r g i v e s u s i n f o r m a t i o n a b o u t v e c t o r a n d p a r a l l e l

    p e r f o r m a n c e .

    4 . I n d e x d i g i t p e r m u t a t i o n s a n d K r o n e c k e r p r o d u c t s

    T h i s s e c t i o n d o e s t h r e e t h i n g s : I n a r s t s u b s e c t i o n t h e q u e s t i o n i s s t u d i e d w h e n

    a p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s i s a g a i n a n i n d e x - d i g i t p e r m u t a t i o n .

    T h e n w e w i l l g i v e a f u n d a m e n t a l t h e o r e m s h o w i n g h o w K r o n e c k e r p r o d u c t s o f

    m a t r i c e s t r a n s f o r m u n d e r c e r t a i n i n d e x - d i g i t p e r m u t a t i o n s . F i n a l l y w e w i l l g i v e

    s o m e r e c u r s i o n s f o r i n d e x - d i g i t r e v e r s a l s .

    T h e r s t t w o p a r t s a r e f u n d a m e n t a l t o a l l F F T a l g o r i t h m s w e w i l l d i s c u s s

    h e r e . I n d e x - d i g i t r e v e r s a l s a r e c l o s e l y r e l a t e d t o F F T a l g o r i t h m s a n d a r e u s e d o n

    t h e r e o w n i n c o n n e c t i o n w i t h t h e a l g o r i t h m s o f C o o l e y - T u k e y , G e n t l e m a n - S a n d e

    a n d P e a s e . A s p e c i a l i n s t a n c e o f t h i s a r e t h e b i t - r e v e r s a l a l g o r i t h m s .

    S o m e w o r k o n i n d e x - d i g i t p e r m u t a t i o n s w a s d o n e i n F r a 7 6 ] , s e e a l s o L o a 9 2 ] .

    4 . 1 . P r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s

    I n g e n e r a l , a p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s i s a p e r m u t a t i o n b u t n o t

    a n i n d e x - d i g i t p e r m u t a t i o n . W e w i l l s t u d y c o n d i t i o n s f o r t h e f a c t o r s s u c h t h a t

    t h e i r p r o d u c t i s a n i n d e x - d i g i t p e r m u t a t i o n . I f t h i s i s t h e c a s e w e s h o w h o w t h e

    p r o d u c t o f t w o i n d e x - d i g i t p e r m u t a t i o n s c a n s i m p l y b e c o m p u t e d a s t h e p r o d u c t

    o f t h e p e r m u t a t i o n s o f t h e c o r r e s p o n d i n g i n d e x - d i g i t s .

    T h e f o l l o w i n g p r o p o s i t i o n i s o u r b a s i c \ m u l t i p l i c a t i o n t h e o r e m " .

    P r o p o s i t i o n 4 . 1 . F o r t 2 N l e t

    ( s )

    2 S

    t

    ; s = 1 ; 2 ; 3 b e t h r e e p e r m u t a t i o n s

    a n d

    ( 3 )

    =

    ( 1 )

    ( 2 )

    . A s u s u a l , l e t

    ( s )

    d e n o t e t h e a c t i o n o f t h e

    ( s )

    o n Z

    t

    a n d

    f o r n 2 N

    t

    l e t ~

    ( s )

    n

    b e t h e i n d e x - d i g i t p e r m u t a t i o n s g e n e r a t e d b y

    ( s )

    a n d n ,

    s = 1 ; 2 ; 3 . T h e n w i t h n

    0

    =

    ( 1 )

    ( n ) t h e c o m p o s i t i o n ~

    ( 2 )

    n

    0

    ~

    ( 1 )

    n

    i s a n i n d e x - d i g i t

    p e r m u t a t i o n a n d

    ~

    ( 2 )

    n

    0

    ~

    ( 1 )

    n

    = ~

    ( 3 )

    n

    :

    P r o o f . T h i s i s a d i r e c t c o n s e q u e n c e o f t h e d e n i t i o n s a n d t h e a s s o c i a t i v e l a w f o r

    c o m p o s i t i o n s o f m a p p i n g s :

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 2 1 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    17/45

    5 2 2 M . H e g l a n d

    ~

    ( 2 )

    n

    0

    ~

    ( 1 )

    n

    =

    ( 2 )

    ( n

    0

    )

    ( 2 )

    ? 1

    n

    0

    ( 1 )

    ( n )

    ( 1 )

    ? 1

    n

    =

    ( 3 )

    ( n )

    ( 3 )

    ? 1

    n

    = ~

    ( 3 )

    n

    a s o n t h e s e c o n d l i n e t h e i n t e r m e d i a t e t e r m s d r o p o u t b e c a u s e n

    0

    =

    ( 1 )

    ( n ) a n d

    ( 2 )

    ( 1 )

    =

    ( 1 )

    ( 2 )

    =

    ( 3 )

    . ut

    T h u s w e c a n m u l t i p l y i n d e x d i g i t p e r m u t a t i o n s s i m p l y b y m u l t i p l y i n g t h e i r d e n -

    i n g p e r m u t a t i o n s

    ( s )

    i n r e v e r s e d o r d e r i f t h e r a d i x v e c t o r s \ m a t c h " . H o w e v e r ,

    i n m a n y c a s e s t h i s m a t c h i n g c o n d i t i o n i s t o o r e s t r i c t i v e a n d i n t h e f o l l o w i n g w e

    w i l l r e l a x i t s l i g h t l y . F i r s t w e j u s t s t a t e a c o n s e q u e n c e o f t h e \ m u l t i p l i c a t i o n

    t h e o r e m : "

    C o r o l l a r y 4 . 2 . F o r t 2 N l e t ;

    0

    2 S

    t

    ; b e t w o p e r m u t a t i o n s a n d

    0

    =

    ? 1

    . A s

    u s u a l , l e t ;

    0

    d e n o t e t h e a c t i o n o f t h e ;

    0

    o n Z

    t

    a n d f o r a n y n 2 N

    t

    l e t ~

    n

    ; ~

    0

    n

    b e t h e i n d e x - d i g i t p e r m u t a t i o n s g e n e r a t e d b y ;

    0

    a n d n . T h e n t h e i n v e r s e o f ~

    n

    i s g i v e n b y

    ?

    ~

    n

    ? 1

    = ~

    0

    ( n )

    :

    P r o o f . S e t

    ( 1 )

    = ;

    ( 2 )

    =

    ? 1

    =

    0

    a n d a p p l y P r o p o s i t i o n 4 . 1 t o g e t

    ~

    0

    ( n )

    ~

    n

    = ~

    ( 3 )

    n

    w h e r e ~

    ( 3 )

    n

    i s g e n e r a t e d b y

    ( 3 )

    =

    0

    = i d a n d n , s o ~

    ( 3 )

    n

    = i d . ut

    E a r l i e r w e d e n e d a r a d i x v e c t o r t o b e s u b o r d i n a t e t o a n o t h e r r a d i x v e c t o r

    i f t h e s e c o n d r a d i x v e c t o r c a n b e p a r t i t i o n e d i n t o b l o c k s i n s u c h a w a y t h a t

    t h e p r o d u c t o f t h e c o m p o n e n t s o f t h e b l o c k s j u s t f o r m t h e c o m p o n e n t s o f t h e

    s u b o r d i n a t e v e c t o r . T h e n t h e m i x e d r a d i x d i g i t r e p r e s e n t a t i o n s a r e c l o s e l y r e -

    l a t e d . C o n s i d e r a s a n e x a m p l e t h e n u m b e r 1 5 9 7 . W i t h r e s p e c t t o t h e r a d i x v e c t o r

    ( 1 0 ; 1 0 ; 1 0 ; 1 0 ) i t s d i g i t s a r e 7 ; 9 ; 5 a n d 1 . A s u b o r d i n a t e r a d i x v e c t o r i s ( 1 0 0 ; 1 0 0 )

    a n d w i t h r e s p e c t t o t h i s r a d i x v e c t o r w e g e t t h e \ d i g i t s " 9 7 a n d 1 5 . T h e m i x e d

    r a d i x r e p r e s e n t a t i o n w i t h r e s p e c t t o t h e o r i g i n a l r a d i x v e c t o r c a n b e o b t a i n e d

    b y i n s e r t i n g t h e m i x e d r a d i x r e p r e s e n t a t i o n o f t h e \ d i g i t s " w i t h r e s p e c t t o t h e

    b l o c k s ( 1 0 ; 1 0 ) o f t h e o r i g i n a l r a d i x v e c t o r i n t o t h e r e p r e s e n t a t i o n w i t h r e s p e c t t o

    t h e s u b o r d i n a t e r a d i x v e c t o r . T h i s m i g h t s e e m a l l v e r y t r i v i a l b u t i s n e v e r t h e l e s s

    q u i t e u s e f u l i n t h e d e v e l o p m e n t o f F F T a l g o r i t h m s . W e f o r m u l a t e t h i s i n t h e

    f o l l o w i n g l e m m a f o r t h e g e n e r a l m i x e d - r a d i x c a s e .

    L e m m a 4 . 3 . L e t n = ( n

    0

    ; : : : ; n

    t ? 1

    ) 2 N b e p a r t i t i o n e d s u c h t h a t m =

    ( j n

    0

    j ; : : : , j n

    t ? 1

    j ) i s s u b o r d i n a t e . F u r t h e r m o r e l e t t h e d i g i t v e c t o r i = ( i

    0

    ; : : : ; i

    t ? 1

    ) 2

    Z

    n

    b e p a r t i t i o n e d s u c h t h a t i

    s

    2 Z

    n

    s

    . T h e n e v e r y d i g i t v e c t o r j 2 Z

    m

    i s g i v e n b y

    j = (

    n

    0

    ( i

    0

    ) ; : : : ;

    n

    t ? 1

    ( i

    t ? 1

    ) )

    i f a n d o n l y i f

    m

    ( j ) =

    n

    ( i ) :

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 2 2 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    18/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 2 3

    T h e p r o o f s i m p l y i n s e r t s t h e d e n i t i o n o f t h e m i x e d r a d i x r e p r e s e n t a t i o n

    n

    a n d

    u s e s i t s b i j e c t i v i t y . W e w i l l o m i t i t h e r e .

    N o w a n y i n d e x d i g i t p e r m u t a t i o n w i t h r e s p e c t t o a s u b o r d i n a t e r a d i x v e c t o r

    a l s o d e n e s a n i n d e x d i g i t p e r m u t a t i o n w i t h r e s p e c t t o t h e o r i g i n a l r a d i x v e c t o r .

    T h u s t h e n u m b e r 9 7 1 5 i s o b t a i n e d f r o m 1 5 9 7 b y p e r m u t i n g t h e t w o \ d i g i t s " 9 7

    a n d 1 5 b u t a l s o b y p e r m u t i n g t h e d i g i t s 7 ; 9 ; 5 a n d 1 . F o r t h e g e n e r a l m i x e d -

    r a d i x r e p r e s e n t a t i o n t h i s i s f o r m u l a t e d i n t h e f o l l o w i n g c o r o l l a r y t o t h e p r e v i o u s

    l e m m a :

    C o r o l l a r y 4 . 4 . L e t ~

    n

    b e t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y t h e p e r m u -

    t a t i o n a n d t h e r a d i x v e c t o r n . F u r t h e r m o r e l e t n b e s u b o r d i n a t e t o s o m e n

    0

    ,

    i . e . , n n

    0

    . T h e n t h e r e e x i s t s a n i n d e x - d i g i t p e r m u t a t i o n ~

    0

    n

    0

    g e n e r a t e d b y a

    p e r m u t a t i o n

    0

    a n d t h e r a d i x v e c t o r n

    0

    s u c h t h a t

    ~

    0

    n

    0

    = ~

    n

    :

    P r o o f . L e t n

    0

    = ( n

    0

    0

    ; : : : ; n

    0

    t ? 1

    ) s u c h t h a t n = ( j n

    0

    0

    j ; : : : ; j n

    0

    t ? 1

    j ) . F u r t h e r m o r e f o r

    a n y j 2 Z

    j n j

    = Z

    j n

    0

    j

    l e t

    i = ( i

    0

    ; : : : ; i

    t ? 1

    ) =

    ? 1

    n

    ( j ) ; i

    0

    = ( i

    0

    0

    ; : : : ; i

    0

    t ? 1

    ) =

    n

    0

    ( j ) :

    F i n a l l y l e t

    0

    b e d e n e d b y

    ( j

    0

    ; : : : ; j

    t ? 1

    ) = ( j

    ( 0 )

    ; : : : ; j

    ( t ? 1 )

    )

    f o r a n y j 2 Z

    n

    0

    .

    T h e n w e g e t f r o m t h e p r e v i o u s l e m m a

    i

    s

    =

    n

    0

    s

    ( i

    0

    s

    ) ; s = 0 ; : : : ; t ? 1

    a n d s o

    i

    ( s )

    =

    n

    0

    ( s )

    ( i

    0

    ( s )

    ) ; s = 0 ; : : : ; t ? 1 :

    A p p l y i n g t h e p r e v i o u s l e m m a a s e c o n d t i m e r e s u l t s i n

    ( n )

    ( ( i ) ) =

    0

    ( n

    0

    )

    (

    0

    ( i

    0

    ) ) :

    F r o m t h i s t h e c o r o l l a r y f o l l o w s b y i n s e r t i o n o f t h e d e n i t i o n s o f i a n d i

    0

    . ut

    F r o m t h i s w e s e e t h a t t h e s a m e i n d e x - d i g i t p e r m u t a t i o n i s g e n e r a t e d b y a w h o l e

    c l a s s o f p a i r s o f p e r m u t a t i o n s a n d r a d i x v e c t o r s .

    O u r b a s i c m u l t i p l i c a t i o n t h e o r e m r e q u i r e d t h e r a d i x v e c t o r s o f t w o i n d e x -

    d i g i t p e r m u t a t i o n s t o \ m a t c h " i n o r d e r t o g u a r a n t e e t h a t t h e p r o d u c t i s a l s o a n

    i n d e x d i g i t p e r m u t a t i o n . T h e m a t c h i n g c o n d i t i o n c a n n o w b e g e n e r a l i z e d u s i n g

    t h e p r e v i o u s c o r o l l a r y .

    C o r o l l a r y 4 . 5 . L e t t h e t w o i n d e x - d i g i t p e r m u t a t i o n s ~

    ( 1 )

    n

    a n d ~

    ( 2 )

    m

    b e g e n e r a t e d

    b y t h e r a d i x v e c t o r s n ; m

    2 Na n d t h e p e r m u t a t i o n s

    ( 1 )

    a n d

    ( 2 )

    . F u r t h e r m o r e

    l e t

    ( 1 )

    ( n ) m :

    T h e n t h e c o m p o s i t i o n ~

    ( 2 )

    m

    ~

    ( 1 )

    n

    i s a n i n d e x - d i g i t p e r m u t a t i o n a s w e l l g e n e r a t e d

    b y s o m e p e r m u t a t i o n

    ( 3 )

    a n d t h e r a d i x v e c t o r n .

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 2 3 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    19/45

    5 2 4 M . H e g l a n d

    P r o o f . B y t h e p r e v i o u s c o r o l l a r y t h e r e e x i s t s a p e r m u t a t i o n

    ( 3 )

    s u c h t h a t

    ( 3 )

    a n d t h e r a d i x v e c t o r

    ( 1 )

    ( n ) g e n e r a t e ~

    ( 2 )

    m

    . T h e m u l t i p l i c a t i o n t h e o r e m s h o w s

    t h e n t h a t t h e c o m p o s i t i o n o f t h i s i n d e x - d i g i t p e r m u t a t i o n w i t h ~

    ( 1 )

    n

    i s a n i n d e x -

    d i g i t p e r m u t a t i o n .

    ut

    W i t h t h i s w e c o m p l e t e t h e i n t r o d u c t i o n t o i n d e x - d i g i t p e r m u t a t i o n a l g e b r a a n d

    g o o n t o t h e c o n n e c t i o n o f i n d e x - d i g i t p e r m u t a t i o n s a n d K r o n e c k e r p r o d u c t s .

    4 . 2 . P e r m u t a t i o n o f K r o n e c k e r p r o d u c t s

    T h e e e c t o f i n d e x - d i g i t p e r m u t a t i o n s o n K r o n e c k e r p r o d u c t s i s s u c h t h a t t h e

    f a c t o r s o f t h e p r o d u c t a r e p e r m u t e d a c c o r d i n g t o t h e g e n e r a t i n g p e r m u t a t i o n . A

    r s t p r o p o s i t i o n s h o w s t h i s f o r K r o n e c k e r p r o d u c t s o f v e c t o r s . H e r e t h e u s e f u l n e s s

    o f t h e i n t e r p r e t a t i o n o f v e c t o r s a s m a p p i n g s b e c o m e s o b v i o u s a s i t s i m p l i e s t h e

    p r o o f .

    P r o p o s i t i o n 4 . 6 . L e t ~

    n

    b e t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y a r a d i x

    v e c t o r n = ( n

    0

    ; : : : ; n

    t ? 1

    ) 2 N a n d a p e r m u t a t i o n 2 S

    t

    . T h e n f o r x

    s

    2

    C

    n

    s

    ; s = 0 ; : : : ; t ? 1 t h e p e r m u t e d K r o n e c k e r p r o d u c t o f t h e x

    s

    i s t h e s a m e

    a s t h e K r o n e c k e r p r o d u c t o f t h e f a c t o r s i n p e r m u t e d o r d e r o r

    P ( ~

    n

    )

    t ? 1

    O

    s = 0

    x

    s

    =

    t ? 1

    O

    s = 0

    x

    ( s )

    :

    P r o o f . L e t

    x =

    t ? 1

    O

    s = 0

    x

    s

    :

    T h e n b y d e n i t i o n

    x

    n

    ( i ) =

    t ? 1

    Y

    s = 0

    x

    s

    ( i

    s

    ) ; f o r i = ( i

    0

    ; : : : ; i

    t ? 1

    ) 2 Z

    n

    :

    U s i n g t h i s a n d t h e d e n i t i o n o f i n d e x - d i g i t p e r m u t a t i o n s w e g e t f o r a n y j =

    ( j

    0

    ; : : : ; j

    t ? 1

    )

    2Z

    ( n )

    ( P ( ~

    n

    ) x )

    ( n )

    ( j ) = x

    n

    ? 1

    ( j )

    =

    t ? 1

    Y

    s = 0

    x

    s

    ( j

    ? 1

    ( s )

    )

    =

    t ? 1

    Y

    s = 0

    x

    ( s )

    ( j

    s

    )

    =

    t ? 1

    O

    s = 0

    x

    ( s )

    !

    ( n )

    ( j ) :

    A s t h i s i s v a l i d f o r a n y j t h e p r o o f i s c o m p l e t e . ut

    N u m e r i s c h e M a t h e m a t i k E l e c t r o n i c E d i t i o n { p a g e n u m b e r s m a y d i e r f r o m t h e p r i n t e d v e r s i o n

    p a g e 5 2 4 o f N u m e r . M a t h . 6 8 : 5 0 7 { 5 4 7 ( 1 9 9 4 )

  • 7/24/2019 Fast Fourier Transform Algorithm Parallel Processing

    20/45

    A f a s t F o u r i e r t r a n s f o r m a l g o r i t h m 5 2 5

    A s i m i l a r p r o p o s i t i o n h o l d s f o r m a t r i c e s a n d i s a c o n s e q u e n c e o f t h e p r e v i o u s

    p r o p o s i t i o n .

    P r o p o s i t i o n 4 . 7 . L e t ~

    n

    b e t h e i n d e x - d i g i t p e r m u t a t i o n g e n e r a t e d b y a r a d i x

    v e c t o r n = ( n

    0

    ; : : : ; n

    t ? 1

    ) 2 N a n d a p e r m u t a t i o n 2 S

    t

    . T h e n f o r A

    s

    2

    L ( C

    n

    s

    ) ; s = 0 ; : : : ; t ? 1 t h e p e r m u t e d K r o n e c k e r p r o d u c t o f t h e A

    s

    i s t h e s a m e

    a s t h e K r o n e c k e r p r o d u c t o f t h e f a c t o r s i n p e r m u t e d o r d e r m u l t i p l i e d b y t h e p e r -

    m u t a t i o n o r

    P ( ~

    n

    )

    t ? 1

    O

    s = 0

    A

    s

    =

    t ? 1

    O

    s = 0

    A

    ( s )

    P ( ~

    n

    ) :

    P r o o f . B y d e n i t i o n , f o r a n y x

    s

    2 C

    n

    s

    ; s = 0 ; : : : ; t ? 1 w e h a v e

    A

    t ? 1

    O

    s = 0

    x

    s

    =

    t ? 1

    O

    s = 0

    ( A

    s

    x

    s

    )

    a n d s o , b y t h e p r e v i o u s p r o p o s i t i o n w e g e t

    P ( ~

    n

    )

    t ? 1

    O

    s = 0

    A

    s

    !

    =

    t ? 1

    O

    s = 0

    A

    ( s )

    x

    ( s )

    =

    t ? 1

    O

    s = 0

    A

    ( s )

    !

    t ? 1

    O

    s = 0

    x

    ( s )

    !

    =

    t ? 1

    O

    s = 0

    A

    ( s )

    !

    P ( ~

    n

    )

    t ? 1

    O

    s = 0

    x

    s

    !

    :

    A s t h e K r o n e c k e r p r o d u c t s o f t h e x

    s

    c o n t a i n a b a s i s o f C

    j n j

    t h