Before running these examples you must build and install Globus at your site. See the Globus home page.
These examples were designed as a small tutorial for various Globus components. As such, they are rich with documentation. However, they are not intended as a replacement for the Globus documentation. They assume a basic understanding of Globus terminology.
This directory contains sub-directories, each with an example program demonstrating some set of Globus features. The first four examples were designed to be examined in order, from the most fundamental operation in Nexus and proceeding with increasing complexity. The fourth example shows how globus_gram_myjob to set up communication between process in a job, and how globus_gass_file can be used to centralise standard output of those processes to a single common file. The fifth example is iddentical to the fourth example, but it uses "globus_duroc_runtime" between processes managed by different ressource manager. (and can therefor run on different machines)
An introduction to Nexus. single_rsr presents the minimum amount of code to send a single message. It introduces fundamental Nexus concepts as well as the set of functions that must appear in all Nexus programs.
A small addition to the nexus_single_rsr. Here we show how to implement a monitor that allows us to wait for a reply to a message that we send.
This demonstrates Nexus attachment which can be used to implement a client/server application. This particular example is a curses-based version of the Unix "talk" program.
This is the traditional ring example wherea set of process are configured in a ring and a single message is passed around that ring. It shows how to use gram_myjob to set up the communication, and how to use Nexus to passe the message around.
This example uses also "globus_gass" to redirect the outputs of each process of the job (stdout and stderr) to a central set of file, common for all the process.
The use of "gram" is required to start all the process involved in the job, in order to get the correct environement setup. This can be achieved easily using globusrun, as explain in the example documentation.
This example is similar to the "globus_myjob_ring"; But in "globus_myjob_ring" all the processes must be managed by the same ressource manager (and therefor run on the same machine).
Using "globus_duroc-runtime", we can the set up our ring of communication amoung process managed by several ressource manager (and therefor between process running eventually on different machine, or using different queueing system, etc.)
You will learn how to use duroc, and see how myjob and duroc are alltogether similar and different.(duroc using myjob for "local" communication)
Each sub-directory contains a README.html file, a Makefile, and the source code. Follow the directions in each README.html that explain how to modify the Makefile, make the example, and run the example.