edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor Class Reference

High-level way of looking at arrays. More...

Inheritance diagram for edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor:

edu.ufl.hcs.ppw.pdm.StaticarrayData

List of all members.

Classes

class  UnmangledNumber
 Inner class for recording unmangled type information. More...

Public Member Functions

 ArrayDistributor (StaticarrayData array, int numThreads)
boolean hasTypeInformation ()
 Returns true if we have type information about this array.
boolean redistributeArray (int numThreads)
 Redistribute the array assuming there are numThreads threads.
void redistributeArray (String userBlockSizeExpr, String userDimensionsExpr, int numThreads) throws EvaluationException
 Redistribute the array assuming there are numThreads threads, given user input containing an expression.
int getBlockSize ()
 The array's blocking factor.
int[] getDimensions ()
 The array's dimensions.
long getNumberOfElements ()
 The number of elements in the array.
String getDimensionText ()
 String representing dimension text.
String getArrayDeclaration ()
 Returns a string that approximates the original definition, as much as possible.
String getArrayName ()
 Array's name (null if not available).
int getCallsiteID ()
 Callsite ID where the array was declared.
int getNBlocks ()
 nblocks (same meaning as upc's upc_global_alloc)
int getNBytes ()
 nbytes (same meaning as upc's upc_global_alloc)
int getElementSize ()
 element size (PPW_ELEMSIZE_UNKNOWN if unknown)
String getEncodedTypeString ()
 Encoded type string.
String toString ()

Static Public Member Functions

static void main (String[] args)
 test harness

Package Functions

void parseBlocksizeInput (String bsText, int numThreads) throws EvaluationException
 Parse blocksize text and set blocksize accordingly.
void parseDimensionsInput (String dimsText) throws EvaluationException
 Parses dimensions text and sets distributedDimensions accordingly.
UnmangledNumber unmangleNextNumber (int pos, String str)
 Gets an integer within a string, up to the next non-numeric digit or end of string.
void unmangleTypeData ()
 Unmangle type information and recover array bounds, if possible.

Static Package Functions

static void testWithEncstr (String encstr, int nthreads)
 test decoder

Package Attributes

int csId
String arrName
int nBlocks
int nBytes
int elemSize
String encTypeString
boolean isScalar
boolean isVolatile
boolean isConst
boolean isRelaxed
boolean isStrict
int blockSize
long numElements
int[] dimensions
int[] distributedDimensions
boolean[] threadMult
String arrayDataType
String arrayDelcaration
String dimensionText
ExpressionEvaluator exprEvaluator
ExpressionParser exprParser
boolean haveTypeInformation


Detailed Description

High-level way of looking at arrays.

Handles demangling encoded type information, figuring out the dimension bounds (if possible) and block size, etc.

Author:
Adam Leko

Member Function Documentation

int edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.getBlockSize (  ) 

The array's blocking factor.

Will be set to 0 if indefinitely blocked (in that case, getNBlocks() will also return 1). This won't be set until you call redistributeArray().

int [] edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.getDimensions (  ) 

The array's dimensions.

Will be null if dimensions aren't available.

boolean edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.hasTypeInformation (  ) 

Returns true if we have type information about this array.

If not, then the distribution methods below don't do anything, and user input should be fed into the version of redistributeArray() that takes user input.

void edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.redistributeArray ( String  userBlockSizeExpr,
String  userDimensionsExpr,
int  numThreads 
) throws EvaluationException

Redistribute the array assuming there are numThreads threads, given user input containing an expression.

Returns true if the expression was valid and was parsed, false otherwise.

References edu.ufl.hcs.ppw.pdm.highlevel.ExpressionEvaluator.addVariable(), edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.parseBlocksizeInput(), and edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.parseDimensionsInput().

boolean edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.redistributeArray ( int  numThreads  ) 

Redistribute the array assuming there are numThreads threads.

Note that unless there is mangled data available (either user-specified or from unmangled debug information), this won't do anything.

Returns false if there was no information to work with.

UnmangledNumber edu.ufl.hcs.ppw.pdm.highlevel.ArrayDistributor.unmangleNextNumber ( int  pos,
String  str 
) [package]


The documentation for this class was generated from the following file:

Generated on Sat Sep 29 08:46:42 2012 for PPW by  doxygen 1.5.8