
What you find in this directory
-------------------------------

Makefile:
	Creates the applications "durocrun" and "duroctestruntime"
	Depends on the environment variable GLOBUS_DEVELOPMENT_PATH. 
	For instructions  on how to set this variable see the makefile 

duroctestruntime.c
	A "client" program, to be submitted in multiple copies by a
	DUROC request. Contains the DUROC synchroniztion barrier and
	timestamps when the barrier is entered and left.

durocrun.c
	Reads a multi-request RSL from the file argv[1], submits it
	and monitors it.

run-duroctest
	A shell script that constructs a 2-subjob RSL, where the
	executable in both subjobs are duroctestruntime, but one is
	delayed with the specified number of seconds (first argument).
	The constructed RSL written to the file "rsl" in this
	directory. The output from the two subjobs are in out.1 and
	out.2. By default run-duroctest tries to run the job on
	pitcairn.mcs.anl.gov. This can be changed by setting the
	environment variable GRAMCONTACT.

Exercises:
	1.
	Look at the codes in both C files and make the programs. The
	programs need to be built using threaded libraries, so 
	GLOBUS_DEVELOPMENT_PATH needs to be set accordingly.
	Use the "run-duroctest <seconds>" script to start up two
	subjobs using "durocrun". Try with a delay of 0 and 10
	seconds.

	2.
	Modify "run-duroctest" to start up a 2+2 DUROC request, that
	is two processes per subjob.

	3.
 	Extend duroctestruntime.c to get information about the other
	subjobs and print it, as instructed in the "TODO" comment in
	the code.

	4.
	Extend durocrun.c to remove one of the subjobs before releasing
	the barrier, as instructed in the "TODO 1" comment in the code.

	5.
	Extend durocrun.c to add a new subjob before releasing the
	barrier, as instructed in the "TODO 2" comment in the code.


