A C D E G I L M N P Q R S T U

A

addSends() - Method in class laser.mpi.util.shuffle.Shuffler
Adds up the global number of Sends and Sendrecvs that have taken place.
archetype - Static variable in class laser.mpi.util.shuffle.test.Test
 

C

comm - Variable in class laser.mpi.util.shuffle.Shuffler
The communicator in which the reordering is to take place.
comm() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the MPI communicator, comm.
Coordinate - class laser.mpi.util.shuffle.Coordinate.
A Coordinate is just a pair (proc, locPos) of ints representing a particular position of localData on a particular proc.
Coordinate(int, int) - Constructor for class laser.mpi.util.shuffle.Coordinate
Constructs a new instance of Coordinate with the given process rank and local position.
coordinates - Variable in class laser.mpi.util.shuffle.TranspositionShuffler
An array containing all the coordinates which occur as a source or target in map.
copyData(int, int) - Method in class laser.mpi.util.shuffle.TranspositionShuffler
Copies the locaData entry at global index j to the localData entry with global index i.
CycleShiftShuffler - class laser.mpi.util.shuffle.CycleShiftShuffler.
A CycleShiftShuffler provides functionality to move around elements of a distributed array using MPI.
CycleShiftShuffler() - Constructor for class laser.mpi.util.shuffle.CycleShiftShuffler
Constructs a trivial instance of this class with name "Trivial CycleShiftShuffler".
CycleShiftShuffler(String, Intracomm, int, Mapping[], Object[]) - Constructor for class laser.mpi.util.shuffle.CycleShiftShuffler
Constructs a new instance of this class with the given name, communicator, tag, map and localData.

D

d - Variable in class laser.mpi.util.shuffle.test.UseCase3
The length of localData on all procs with positive rank
d - Variable in class laser.mpi.util.shuffle.test.UseCase2
The length of localData on each proc.
d - Variable in class laser.mpi.util.shuffle.test.UseCase0
The length of the localData array on each proc.
debug - Static variable in class laser.mpi.util.shuffle.Shuffler
The debugging flag.
debug(int, String) - Method in class laser.mpi.util.shuffle.Shuffler
Same as debug, but only prints the message if proc == myRank (and debug == true).
debug(String) - Method in class laser.mpi.util.shuffle.Shuffler
If debug == true, prints the given message to stdout along with the proc ID (rank).

E

error - Variable in class laser.mpi.util.shuffle.test.UseCase
A message explaining the error if test fails.

G

getCycle(Node) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
A method invoked by getNextFactor after it has been determined that the factor is a cycle.
getNextFactor() - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
Returns the next factor (which is either a cycle or a shift) from the canonical factorization of the map.
getShift(Node) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
A method invoked by getNextFactor when it has been determined that the factor is a shift.
globalNumSendrecvs - Variable in class laser.mpi.util.shuffle.Shuffler
 
globalNumSendrecvs() - Method in class laser.mpi.util.shuffle.Shuffler
 
globalNumSends - Variable in class laser.mpi.util.shuffle.Shuffler
 
globalNumSends() - Method in class laser.mpi.util.shuffle.Shuffler
 

I

indices - Variable in class laser.mpi.util.shuffle.TranspositionShuffler
An array of length nProcs of arrays of ints.

L

laser.mpi.util.shuffle - package laser.mpi.util.shuffle
 
laser.mpi.util.shuffle.test - package laser.mpi.util.shuffle.test
 
lengths - Variable in class laser.mpi.util.shuffle.Shuffler
An array of length nProcs.
lengths() - Method in class laser.mpi.util.shuffle.Shuffler
Returns an array lengths of length nProcs.
localData - Variable in class laser.mpi.util.shuffle.test.UseCase
The localData for this use case.
localData - Variable in class laser.mpi.util.shuffle.Shuffler
This is the array which contains this proc's portion of the data.
localData() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the localData array for this proc.
locPos - Variable in class laser.mpi.util.shuffle.Node
The local position (in the localData array) for the coordinate corresponding to this node.
locPos - Variable in class laser.mpi.util.shuffle.Coordinate
The position in localData.
locPos() - Method in class laser.mpi.util.shuffle.Coordinate
Returns the position in localData (locPos).

M

main(String[]) - Static method in class laser.mpi.util.shuffle.test.UseCase5
Performs a test based on this use case.
main(String[]) - Static method in class laser.mpi.util.shuffle.test.UseCase4
Performs a test based on this use case.
main(String[]) - Static method in class laser.mpi.util.shuffle.test.UseCase3
Performs a test based on this use case with d=5.
main(String[]) - Static method in class laser.mpi.util.shuffle.test.UseCase1
Performs a test based on this use case.
main(String[]) - Static method in class laser.mpi.util.shuffle.test.UseCase2
Performs a test based on this use case with d=5.
main(String[]) - Static method in class laser.mpi.util.shuffle.test.UseCase0
Performs a test based on this use case for d=5.
main(String[]) - Static method in class laser.mpi.util.shuffle.TranspositionShuffler
This simply executes a number of tests described in the test cases.
main(String[]) - Static method in class laser.mpi.util.shuffle.CycleShiftShuffler
This simply executes a number of tests described in the test cases.
map - Variable in class laser.mpi.util.shuffle.test.UseCase
The map for this use case.
map - Variable in class laser.mpi.util.shuffle.Shuffler
An array of Mappings.
map() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the map, which is array of Mapping telling exactly what is to be moved where.
Mapping - class laser.mpi.util.shuffle.Mapping.
A Mapping is a pair (source, target) of two Coordinates, representing the starting and destination coordinates for a move.
Mapping(Coordinate, Coordinate) - Constructor for class laser.mpi.util.shuffle.Mapping
Constructs a new instance of Mapping with the given source and target coordinates.
myAssert(boolean) - Method in class laser.mpi.util.shuffle.Shuffler
My cheap assertion checker.
myRank - Static variable in class laser.mpi.util.shuffle.test.Test
 
myRank - Variable in class laser.mpi.util.shuffle.test.UseCase
The rank (ID) of this process.
myRank - Variable in class laser.mpi.util.shuffle.Shuffler
The rank (ID) of this process.
myRank() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the rank (i.e., process ID) of this process.

N

name - Variable in class laser.mpi.util.shuffle.test.UseCase
The name of this use case.
name - Variable in class laser.mpi.util.shuffle.Shuffler
A name for this Shuffler, which is especially useful for debugging.
name() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the name of this Shuffler.
nData - Variable in class laser.mpi.util.shuffle.test.UseCase3
d*nProcs
nData - Variable in class laser.mpi.util.shuffle.test.UseCase2
The total number of data, i.e., d*nProcs.
nData - Variable in class laser.mpi.util.shuffle.test.UseCase0
The total amount of data, i.e., d*nProcs.
newInstance(String, Intracomm, int, Mapping[], Object[]) - Method in class laser.mpi.util.shuffle.TranspositionShuffler
Creates a new instance with the given name, communicator, tag, map and localData.
newInstance(String, Intracomm, int, Mapping[], Object[]) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
Creates a new instance with the given name, communicator, tag, map and localData.
newInstance(String, Intracomm, int, Mapping[], Object[]) - Method in class laser.mpi.util.shuffle.Shuffler
Creates a new instance with the given name, communicator, tag, map and localData.
newLocalData - Variable in class laser.mpi.util.shuffle.test.UseCase
What the localData should look like after shuffling.
next - Variable in class laser.mpi.util.shuffle.Node
The next node, i.e., the node (if any) to which this one is moved by map.
nextSeg - Variable in class laser.mpi.util.shuffle.Node
If segStart is true, this field is used to point to the next segment in the factor.
Node - class laser.mpi.util.shuffle.Node.
The Node is the main data structure used to represent information about a particular coordinate which occurs (as a source or target) in the map.
Node(int, int) - Constructor for class laser.mpi.util.shuffle.Node
Constructs a new Node with given proc and locPos.
nodes - Variable in class laser.mpi.util.shuffle.CycleShiftShuffler
An array of length nProcs of arrays of Nodes.
nodes() - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
Returns the nodes array.
nPass - Static variable in class laser.mpi.util.shuffle.test.Test
 
nProcs - Static variable in class laser.mpi.util.shuffle.test.Test
 
nProcs - Variable in class laser.mpi.util.shuffle.test.UseCase
The number of processes.
nProcs - Variable in class laser.mpi.util.shuffle.Shuffler
The total number of processes.
nProcs() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the number of processes in the system.
nSendrecvs - Variable in class laser.mpi.util.shuffle.Shuffler
The total number of Sendrecvs that were executed.
nSendrecvs() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the total number of local Sendrecvs that were executed.
nSends - Variable in class laser.mpi.util.shuffle.Shuffler
The total number of sends (including those that were part of a Sendrecv) executed in the course of reordering.
nSends() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the total number of local sends (including those that were part of a Sendrecv) executed in the course of reordering.
nTests - Static variable in class laser.mpi.util.shuffle.test.Test
 

P

p - Variable in class laser.mpi.util.shuffle.TranspositionShuffler
This is the map, using the global indices instead of coordinates.
prev - Variable in class laser.mpi.util.shuffle.Node
The previous node, i.e., the node (if any) which is moved to this one by map.
printArray(PrintStream, Object[]) - Static method in class laser.mpi.util.shuffle.Shuffler
A utility method for printing out the elements of an array.
printLocalData(PrintStream) - Method in class laser.mpi.util.shuffle.Shuffler
Prints out the given state of all the localData arrays to the given PrintStream.
printMap(PrintStream) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
Prints map, and, if debugging, prints node structures as well.
printMap(PrintStream) - Method in class laser.mpi.util.shuffle.Shuffler
Prints out a readable view of the map on proc 0 to the given PrintStream out.
printNodes(PrintStream) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
Prints out a readable view of the nodes array on proc 0 to the given PrintStream out.
printState(int) - Method in class laser.mpi.util.shuffle.TranspositionShuffler
 
printState(PrintStream) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
Prints everything to the given PrintStream: the map, the nodes, and the localData.
proc - Variable in class laser.mpi.util.shuffle.Node
The proc for the coordinate corresponding to this node.
proc - Variable in class laser.mpi.util.shuffle.Coordinate
The process ID (rank).
proc() - Method in class laser.mpi.util.shuffle.Coordinate
Returns the process rank (proc).

Q

q - Variable in class laser.mpi.util.shuffle.TranspositionShuffler
This is simply the inverse of p.

R

reached - Variable in class laser.mpi.util.shuffle.Node
Tells whether or not this node has been reached.
reorder() - Method in class laser.mpi.util.shuffle.TranspositionShuffler
This is the main method which carries out the reordering.
reorder() - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
This is the main method which starts the reordering.
reorder() - Method in class laser.mpi.util.shuffle.Shuffler
This is the main method which carries out the reordering.
reorderFactor(Node) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
This method shuffles the data based on a given factor.
run(UseCase) - Static method in class laser.mpi.util.shuffle.test.Test
 
runTests(Shuffler) - Static method in class laser.mpi.util.shuffle.test.Test
The main method, which executes the tests.

S

segEnd - Variable in class laser.mpi.util.shuffle.Node
If segStart is true, this field is used to point to the last node in this segment.
segStart - Variable in class laser.mpi.util.shuffle.Node
This flag is set to true if this node starts a new segment.
shift(Node) - Method in class laser.mpi.util.shuffle.CycleShiftShuffler
This method actually shifts all the local data on a single proc according to a given segment.
shuffle(Intracomm, int, Mapping[], Object[]) - Static method in class laser.mpi.util.shuffle.TranspositionShuffler
This is the main static method which is the usual way for using this class.
shuffle(Intracomm, int, Mapping[], Object[]) - Static method in class laser.mpi.util.shuffle.CycleShiftShuffler
This is the main static method which is the usual way for using this class.
shuffler - Variable in class laser.mpi.util.shuffle.test.UseCase
The Shuffler which will be created to shuffle the data.
Shuffler - class laser.mpi.util.shuffle.Shuffler.
A Shuffler provides functionality to move around elements of a distributed array using MPI.
Shuffler(String) - Constructor for class laser.mpi.util.shuffle.Shuffler
Constructs a trivial instance of this class.
Shuffler(String, Intracomm, int, Mapping[], Object[]) - Constructor for class laser.mpi.util.shuffle.Shuffler
Constructs a new instance of this class with the given name, communicator, tag, map and localData.
source - Variable in class laser.mpi.util.shuffle.Mapping
The coordinate for the source.
source() - Method in class laser.mpi.util.shuffle.Mapping
Returns the source coordinate.
switchData(int, int) - Method in class laser.mpi.util.shuffle.TranspositionShuffler
Exchanges the localData with global indices i and j.

T

tag - Variable in class laser.mpi.util.shuffle.Shuffler
This is the tag that will be used for all of the MPI communication in this class.
tag() - Method in class laser.mpi.util.shuffle.Shuffler
Returns the MPI tag, tag.
target - Variable in class laser.mpi.util.shuffle.Mapping
The coordinate for the target.
target() - Method in class laser.mpi.util.shuffle.Mapping
Returns the target coordinate.
Test - class laser.mpi.util.shuffle.test.Test.
This class provides a method (runTests) which executes a range of tests from the various use cases.
Test() - Constructor for class laser.mpi.util.shuffle.test.Test
 
test(Shuffler) - Method in class laser.mpi.util.shuffle.test.UseCase
This executes the test specified by this use case.
toBigString() - Method in class laser.mpi.util.shuffle.Node
Returns a more complete string representation of this Node, showing the values of all fields.
toString() - Method in class laser.mpi.util.shuffle.Node
Returns a string representation of this Node of the form [proc,locPos;segStart,reached].
toString() - Method in class laser.mpi.util.shuffle.Mapping
Returns a string representation of this Mapping.
toString() - Method in class laser.mpi.util.shuffle.Coordinate
Returns a string representation of this Coordinate.
TranspositionShuffler - class laser.mpi.util.shuffle.TranspositionShuffler.
A TranspositionShuffler provides functionality to move around elements of a distributed array using MPI.
TranspositionShuffler() - Constructor for class laser.mpi.util.shuffle.TranspositionShuffler
Constructs a trivial instance of this class.
TranspositionShuffler(String, Intracomm, int, Mapping[], Object[]) - Constructor for class laser.mpi.util.shuffle.TranspositionShuffler
Constructs a new instance of this class with the given name, communicator, tag, map and localData.

U

UNDEFINED - Static variable in class laser.mpi.util.shuffle.TranspositionShuffler
A constant used to represent an undefined value for the functions p or q.
UseCase - class laser.mpi.util.shuffle.test.UseCase.
An instance of UseCase contains all the data necessary to perform a single test.
UseCase() - Constructor for class laser.mpi.util.shuffle.test.UseCase
Constructs a new instance of UseCase with default values for the fields.
UseCase0 - class laser.mpi.util.shuffle.test.UseCase0.
In this use case, localData has length d on each proc.
UseCase0(int) - Constructor for class laser.mpi.util.shuffle.test.UseCase0
Constructs a new instance of this use case with the given d.
UseCase1 - class laser.mpi.util.shuffle.test.UseCase1.
A simple test involving 3 procs.
UseCase1() - Constructor for class laser.mpi.util.shuffle.test.UseCase1
Constructs a new instance of this use case.
UseCase2 - class laser.mpi.util.shuffle.test.UseCase2.
In this use case, localData has length d on each proc.
UseCase2(int) - Constructor for class laser.mpi.util.shuffle.test.UseCase2
Constructs a new instance of this use case with the given d.
UseCase3 - class laser.mpi.util.shuffle.test.UseCase3.
In this use case, localData has length d on each proc, except for proc0, which has localData with length d*nProcs.
UseCase3(int) - Constructor for class laser.mpi.util.shuffle.test.UseCase3
Constructs a new instance of this use case with the given d.
UseCase4 - class laser.mpi.util.shuffle.test.UseCase4.
A simple test involving 3 procs.
UseCase4() - Constructor for class laser.mpi.util.shuffle.test.UseCase4
Constructs a new instance of this use case.
UseCase5 - class laser.mpi.util.shuffle.test.UseCase5.
A simple test involving 2 procs.
UseCase5() - Constructor for class laser.mpi.util.shuffle.test.UseCase5
Constructs a new instance of this use case.

A C D E G I L M N P Q R S T U