The central program in JaMM is the MessageServer.  It resides on a single computer in the network.  It serves two functions; (1) compute nodes register with the MessageServer so that the main JaSCH program (Java SCHeduler) can locate compute nodes and (2) it passes files between the main JaSCH program and the compute nodes.  By default the MessageServer listens and responds on port 2222, but this can be changed to any available port by specifying the port number when the MessageServer is started.  When the MessageServer starts a propertyChooser widget appears asking for a port and a password.  The password can be used to control access to the MessageServer to limit who can submit jobs and view results.  If the password is left as “none” then anyone can connect to the MessageServer. There are three possible ways to start the MessageServer.  It can be run directly from the jar file you downloaded.  Simply type  java –jar MessageServer.jar  from a command prompt or from Start->Run from the toolbar.  Alternatively you can extract files from the jar file and run the program directly.  The files can be extracted using jar –xvf MessageServer.jar  Alternatively, the jar file is zip compressed so a standard zip decompressor, such as WinZip should work.  Once the files are unzipped you can run the MessageServer via java MessageServer.  Finally, we have included a routine to spawn the MessageServer as a separate thread.  To do this type spawnserver at the command prompt.  We are currently trying to convert the MessageServer so that it can be executed as a service on NT/2000/XP computers.


Once the MessageServer is running it’s time to start the compute nodes.  There are currently two different compute nodes for the type of compute job you are interested in.  jammnode.jar contains the class files for micromagentics and jamesnode.jar contains the class files for the finite-difference time-domain solution of Maxwell’s equations. They can be started in much the same way as the MessageServer, i.e.  java –jar jamm.jar MessageServer  or java –jar james.jar MessageServer.  In these commands “MessageServer” is the name or IP address of the MessageServer.  If the MessageServer is running on the local machine it’s name does not need to be specified when starting the compute node.  The compute nodes are written to restart anytime the MessageServer is killed and restarted.  They should run forever so long as they are not explicitly killed or the host machine rebooted.  We are currently trying to trap all possible errors so that the compute nodes are robust.  This “nice” feature is not yet fully implemented.


Once the MessageServer and compute nodes are started you are ready to build some input files, run them and view the output.  Please consult our tutorials to see how to do this.


Note, if you specified a different port, other than 2222, when starting the MessageServer you should specify the port when you start both the node program and JaSCH.  When JaSCH is started a propertyChooser widget appears and asks for a host (the computer the MessageServer is running on, port, password and flush(true/false)).  If the MessageServer was started with a password, then the same password must be supplied when JaSCH starts.  The flush option allows users to flush the queue of connected nodes forcing nodes to reconnect to the MessageServer.