Newsgroups: comp.parallel,sci.math.num-analysis
From: meilusa@seas.gwu.edu (Alius J. Meilus)
Subject: Data structure question
Organization: George Washington University
Date: 18 Dec 1995 19:50:44 GMT
Message-ID: <4b4gmk$lq0@onramp.arc.nasa.gov>

I am working on a project analyzing the computational equirements for parallel 
processors to handle matrix operations.  I need to know how a parallel-
processing system handles data in floating point and double precision.  
My understanding is that a floating point can be handled as:

         index i     index j     a(i, j)        array id

Dscrpt:  row idx     col idx     non-zero       ties data to
                                 matrix elmnt   matrix A

Type:    integer     integer     floating       string
                                 point value

Size:    12 bits     12 bits     32 bits        8 bits

The result is a 64 bit word associated with each non-zero value in matrix A.

If the I want to use double precision, I know that I should use 64 bits 
to fully represent the non-zero data value.  I think that the processor 
system will use two 32-bit packets to send the data value.  So what will 
the data structure look like?  I think it will be something like:


        index i     index j     a(i, j)     Prt ID      array id

Dscrpt: row idx     col idx     non-zero    1st or 2nd  ties data
                                mtrx elmnt  prt of val  to mtrx

Type:   integer     integer     double      1 bit       string
                                prcsn value

Size:   12 bits     12 bits     32 bits     1 bit       7 bits

With this data structure, the double precision value gets sent in 
two - 32 bit data packets, but it takes two 64 bit words to send 
one data value.

Is this what the system will be sending among its processors?
Your comments are greatly appreciated.  

Thanks in advance.
AJM
meilusa@seas.gwu.edu




