|
| CcjComm (String filePath) |
|
boolean | isSerial () |
|
int | getVnodeId () |
|
int | getNumVnodes () |
|
void | barrier () |
|
void | threadBarrier () |
|
Serializable | broadcast (Serializable value, int root) |
|
int | broadcast (int value, int root) |
|
double | broadcast (double value, int root) |
|
Serializable[] | gatherAll (Serializable[] myElements) |
|
int[] | gatherAll (int[] myElements) |
|
int[][] | gatherAll2dArray (int[] myElements) |
|
double[] | gatherAll (double[] 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 | minAll (Serializable partialMins) |
|
double[] | minAll (double[] partialMins) |
|
int[] | minAll (int[] partialMins) |
|
double[] | scanSums (double[] myElements) |
|
int[] | scanSums (int[] myElements) |
|
int | getVnodeID () |
|
void | setMyVnodeID (int newVnodeID) |
|
Distributor | createDistributor () |
|
CcjLink | getCcjLink () |
|
String | getGroupName () |
|
Directory | createDirectory (VectorSpace vectorSpace) |
|
void | send (double[] exportObject, int destinationVnode) |
|
void | send (int[] exportObject, int destinationVnode) |
|
void | send (Serializable exportObject, int destinationVnode) |
|
void | setupReceives (int numReceives) |
|
Serializable | receive (int senderId) |
|
int[] | scatter2dArray (int[][] in) |
|
int[] | scatterIntArray (int[] in) |
|
int[][] | gather (int[] in) |
|
Serializable[][] | gather (Serializable[] in) |
|
Serializable | maxAll (Serializable in) |
|
String | getMyHostName () |
|
| JpetraObject () |
|
void | initializeOutput () |
|
|
static void | setRootPrint (String key, boolean rootPrint) |
|
static void | setRootStream (String key, PrintStream rootStream) |
|
static void | setVnodesPrint (String key, boolean vnodesPrint) |
|
static void | setVnodesStream (String key, PrintStream vnodesStream) |
|
static void | print (String key, String message) |
|
static void | println (String key, String message) |
|
static void | setAmIroot (Comm comm) |
|
static HashMap | outputStreams = new HashMap(4) |
|
static boolean | amIroot |
|
CcjComm
is the implementatin of the Comm
interface for vnodes running in a parallel environment. It utilizes the Collective Communication (CCJ) API for MPI like message passing.
To use CcjComm
first an instance of CcjComm needs to be created. A the path and file name of a ccjhosts file needs to be passed to the CcjComm
contructor. The format of this file is one IP or host name and port per line, seperated by a colon (:). Note that the port number is optional.
Example ccjhosts file:
// comments begining with /
# and # are allowed; blank lines are also ok
//root vnode
192.168.1.8
//slave vnodes
192.168.1.8:1
192.168.1.8:24
sun1
sun2
//do not put comments on a host line: 192.168.1.5 // root <== this comment will break things!
Each vnode needs to be able to access the ccjhosts file. This could entail copying the file to the same path on each physical node, or a shared file system could be used.
Adapted from SerialComm
by Mike Heroux and Michael William Boldt.
- Author
- Jason Cross