
Public Member Functions | |
| void | barrier () |
| Serializable | broadcast (Serializable value, int root) |
| int | broadcast (int value, int root) |
| double | broadcast (double value, int root) |
| Serializable[] | gatherAll (Serializable[] myElements) |
| double[] | gatherAll (double[] myElements) |
| int[] | gatherAll (int[] myElements) |
| int[][] | gatherAll2dArray (int[] myElements) |
| int[] | gatherAll (int myInt) |
| double[] | gatherAll (double myDouble) |
| double[] | sumAll (double[] partialSums) |
| int[] | sumAll (int[] partialSums) |
| double[] | maxAll (double[] partialMaxs) |
| int[] | maxAll (int[] partialMaxs) |
| Serializable | maxAll (Serializable partialMaxs) |
| double[] | minAll (double[] partialMins) |
| Serializable | minAll (Serializable partialMins) |
| int[] | minAll (int[] partialMins) |
| double[] | scanSums (double[] myElements) |
| int[] | scanSums (int[] myElements) |
| int | getNumVnodes () |
| int | getVnodeId () |
| void | setMyVnodeID (int newVnodeID) |
| void | send (int[] exportObject, int destinationVnode) |
| void | send (double[] exportObject, int destinationVnode) |
| void | send (Serializable exportObject, int destinationVnode) |
| Serializable | receive (int senderId) |
| int[] | scatter2dArray (int[][] in) |
| int[] | scatterIntArray (int[] in) |
| int[][] | gather (int[] in) |
| boolean | isSerial () |
| Directory | createDirectory (VectorSpace vectorSpace) |
| Distributor | createDistributor () |
Comm is the interface for the all the Jpetra communication classes.
Terminology: A vnode is considered to be a virtual node (a memory image) and not a physical machine. A physical node is considered to be a physical machine, and may have many vnodes on it. The term node has no meaning, and should be qualified by virtual or physical.
| void Jpetra.Comm.barrier | ( | ) |
Causes each vnode in the communicator to wait until all vnodes have arrived. No-op for a serial communicator.
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| Serializable Jpetra.Comm.broadcast | ( | Serializable | value, |
| int | root | ||
| ) |
Broadcasts any Serializable object from the root vnode to all other vnodes. Requires the return object to be cast into a more useful object.
| value | object that is broadcast by the root vnode |
| root | root vnode ID, most likely 0 |
Implemented in Jpetra.CcjComm.
| int Jpetra.Comm.broadcast | ( | int | value, |
| int | root | ||
| ) |
Broadcasts an int from the root vnode to all other vnodes.
| value | int that is broadcast by the root vnode |
| root | root vnode ID, most likely 0 |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| double Jpetra.Comm.broadcast | ( | double | value, |
| int | root | ||
| ) |
Broadcasts an double from the root vnode to all other vnodes.
| value | double that is broadcast by the root vnode |
| root | root vnode ID, most likely 0 |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| Serializable [] Jpetra.Comm.gatherAll | ( | Serializable[] | myElements | ) |
Takes a list of Serilizable objects from all vnodes in the communicator and creates an ordered contiguous list of those objects in each vnode. Requires the return object to be cast into a more useful object.
| myElements | in on entry; the list of values to be sent to all vnodes |
Implemented in Jpetra.CcjComm.
| double [] Jpetra.Comm.gatherAll | ( | double[] | myElements | ) |
Takes a list of values from all vnodes in the communicator and creates an ordered contiguous list of those values in each vnode.
| myElements | in on entry; the list of values to be sent to all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| int [] Jpetra.Comm.gatherAll | ( | int[] | myElements | ) |
Takes a list of values from all vnodes in the communicator and creates an ordered contiguous list of those values in each vnode.
| myElements | in on entry; the list of values to be sent to all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| int [] Jpetra.Comm.gatherAll | ( | int | myInt | ) |
Takes a value from all vnodes in the communicator and creates an ordered contiguous list of those values in each vnode.
| myInt | in on entry; the list of values to be sent to all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| double [] Jpetra.Comm.gatherAll | ( | double | myDouble | ) |
Takes a value from all vnodes in the communicator and creates an ordered contiguous list of those values in each vnode.
| myDouble | in on entry; the list of values to be sent to all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| int Jpetra.Comm.getNumVnodes | ( | ) |
Accessor for the number of vnodes in the commmunicator.
Implemented in Jpetra.SerialComm, and Jpetra.CcjComm.
| int Jpetra.Comm.getVnodeId | ( | ) |
Accessor for the rank of the calling vnode.
Implemented in Jpetra.SerialComm, and Jpetra.CcjComm.
Referenced by Jpetra.ElementSpace.ElementSpace().
| boolean Jpetra.Comm.isSerial | ( | ) |
Accessor to see if the communicator is on a serial or parallel machine.
true in serial mode, otherwise false Implemented in Jpetra.SerialComm, and Jpetra.CcjComm.
Referenced by Jpetra.ElementSpace.ElementSpace().
| double [] Jpetra.Comm.maxAll | ( | double[] | partialMaxs | ) |
Takes a list of values form all vnodes in the communicator, computes the max, and returns the max to all vnodes.
| partialMaxs | in on entry; the list of values, usually computed locally, to be summed across all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| int [] Jpetra.Comm.maxAll | ( | int[] | partialMaxs | ) |
Takes a list of values form all vnodes in the communicator, computes the max, and returns the max to all vnodes.
| partialMaxs | in on entry; the list of values, usually computed locally, to be summed across all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| double [] Jpetra.Comm.minAll | ( | double[] | partialMins | ) |
Takes a list of values form all vnodes in the communicator, computes the min, and returns the min to all vnodes.
| partialMins | in on entry; the list of values, usually computed locally, to be summed across all vnodes |
Implemented in Jpetra.SerialComm, and Jpetra.CcjComm.
| int [] Jpetra.Comm.minAll | ( | int[] | partialMins | ) |
Takes a list of values form all vnodes in the communicator, computes the min, and returns the min to all vnodes.
| partialMins | in on entry; the list of values, usually computed locally, to be summed across all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| Serializable Jpetra.Comm.receive | ( | int | senderId | ) |
getReceives does all the work receiving all expected messages at once and then returns them. Note: this IS a blocking operation.
return the objects received
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| double [] Jpetra.Comm.scanSums | ( | double[] | myElements | ) |
Takes a list of values from all vnodes in the communicator, computes the scan sum, and returns it to all vnodes such that vnode i contains the sum of values from vnodes up to and including vnode i.
| myElements | in on entry; the values to be summed across all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| int [] Jpetra.Comm.scanSums | ( | int[] | myElements | ) |
Takes a list of values from all vnodes in the communicator, computes the scan sum, and returns it to all vnodes such that vnode i contains the sum of values from vnodes up to and including vnode i.
| myElements | in on entry; the values to be summed across all vnodes |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| void Jpetra.Comm.send | ( | int[] | exportObject, |
| int | destinationVnode | ||
| ) |
Sends an int arry to a single specified vnode. Note: this is NOT a blocking operation.
| exportObject | the int array to be sent |
| destinationVnode | the vnode ID of the receiving vnode |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| void Jpetra.Comm.send | ( | double[] | exportObject, |
| int | destinationVnode | ||
| ) |
Sends a double arry to a single specified vnode. Note: this is NOT a blocking operation.
| exportObject | the double array to be sent |
| destinationVnode | the vnode ID of the receiving vnode |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| void Jpetra.Comm.send | ( | Serializable | exportObject, |
| int | destinationVnode | ||
| ) |
Sends a Serializable arry to a single specified vnode. Note: this is NOT a blocking operation.
| exportObject | the Serializable array to be sent |
| destinationVnode | the vnode ID of the receiving vnode |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| void Jpetra.Comm.setMyVnodeID | ( | int | newVnodeID | ) |
Sets the vnode ID for the calling vnode. Can be used to facilitate threaded programming acroass an MPI application by associating several MPI vnodes with a single vnode. By default, each MPI vnode is associated with a single vnode wit the same ID.
| newVnodeID | new vnode ID |
Implemented in Jpetra.CcjComm, and Jpetra.SerialComm.
| double [] Jpetra.Comm.sumAll | ( | double[] | partialSums | ) |
Takes a list of values from all vnodes in the communicator, computes the sum, and returns the sum to all vnodes.
| partialSums | in on entry; the list of values, usually computed locally, to be summed across all vnodes |
Implemented in Jpetra.SerialComm, and Jpetra.CcjComm.
| int [] Jpetra.Comm.sumAll | ( | int[] | partialSums | ) |
Takes a list of values from all vnodes in the communicator, computes the sum, and returns the sum to all vnodes.
| partialSums | in on entry; the list of values, usually computed locally, to be summed across all vnodes |
Implemented in Jpetra.SerialComm, and Jpetra.CcjComm.
1.8.6