CSE 225 Grids and High Performance Distributed Computing

Homework #1                    January 22, 2003

Due:     January 29, 2003  in class

In this homework, you will get basic orientation to Globus 3.0.    The Globus system is a large body of open source software which is an infrastructure for Grid computing.  In this homework assignment, the objective is for you to complete the basic steps in using a Grid system, and a grid system executing an application program.  As supporting information see links to gt3 documentation or please email hxia@cs.ucsd.edu:

·        GT3-alpha release homepage: http://www.globus.org/ogsa/releases/alpha/

·        GT3-alpha release documentation: http://www-unix.globus.org/ogsa/docs/alpha/users_guide.html

In this homework, you will get basic orientation to Globus 3.0.    The Globus system is a large body of open source software which is an infrastructure for Grid computing.  In this homework assignment, the objective is for you to complete the basic steps in using a Grid system, and a grid system executing an application program.  As supporting information see links to gt3 documentation:

·GT3-alpha release homepage: http://www.globus.org/ogsa/releases/alpha/

·GT3-alpha release documentation: http://www-unix.globus.org/ogsa/docs/alpha/users_guide.html

 

There is information on the resources you will be using at http://activeweb.ucsd.edu/, and the specific machines are http://activeweb.ucsd.edu/Resources/Computational/SmallCluster.html.,

1.      Login on  {awl, axe, gouge, hoe, shears}.ucsd.edu using your CSE/UCSD account.  

2.      GT3 has been installed under directory /home/hxia/x86/usr/local/gt3globus3 and you should be able to use it from there.   However, if you would like to install it in your own directory, please follow the GT3 official document and use http://www-csag.ucsd.edu/projects/grid/memo/globus3_howto.html as an example.
(Note, for your convenience, all the necessary packages are available in directory /home/hxia/backup.)

3.      Set the environment variables (if you use csh rather than bash, then you should use setenv):
export JAVA_HOME=/usr/java//home/hxia/x86/j2sdk1.4.1_01
export ANT_HOME= /usr/local/ant/home/x86-local/ant1.5.1
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
export GLOBUS_LOCATION=
/usr/local/gt3
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gt3/lib
 

4.      Get the Globus certificates:

o       Obtain host certificate (You needn't do this -- each node only needs one host certificate)
% gtglobus3/setup-gsi
% /usr/local/gt3/bin/grid-cert-requestinstall/sbin/globus-local-deploycerthost {} –key {} /opt/globus-mgrid<hostname>

o       Obtain user credentials for use with the Globus 3.0 installation (You should do this immediately as it may take some time!):
 
(1)
% source /usr/local/gt3/setenv.sh  (or use setenv.csh if you are using csh).
(2)
% /home/usr/local/gt3/bin/grid-cert-request  (here you are prompted to set a passwd, remember it!)
(3)
Send the file %/home/<youraccount>/.globus/usercert_request.pem  to
ca@globus.org.  You can use any one of the following methods:
 - using your email client (outlook, netscape, etc): copy the file content to your email body

 - using the following command on a machine where you can receive email such as gradlab.ucsd.edu (please don’t do it on the cluster machines):
    %
cat /home/hxia<youraccount>/.globus/usercert_request.pem | mail ca@globus.organy other machines which can receive email)
Note: You only need one user certificate for all the machines.  Please don’t send duplicated requests.
(4) Before going through the following steps, please wait the reply for your certificate.

(5) Once you get reply, save the email to ~/.globus/usercert.pem.  And execute
“chmod 444 ~/.globus/usercert.pem”.

1.      % grid-proxy-init  (this should be done before you using Globus; it is valid in 12 hous)

5.      Create a file cog.properties in /home/<your_user_name>/.globus, with following content:
      usercert=/home/<your_user_name>/.globus/usercert.pem
      userkey=/home/<your_user_name>/.globus/userkey.pem
      proxy=/tmp/x509up_u<your_user_id>
      cacert=/etc/grid-security/certificates

6.      NOTE: Directories for GT3, Java, Ant have changed.  Please change your environment as described in section 3.
Run a simple program (date, ls, echo or anything else) using the globusrun command on a single processor compute resource (machname goes here):

·        cd /usr/local/gt3

·        source setenv.sh

·        bin/grid-proxy-init

·        cp etc/test.xml /home/<your_user_name>/test.xml

·        vi /home/<your_user_name>/test.xml
(change “/tmp/stdout” to /home/<your_user_name>/stdout”)

·        java org.globus.ogsa.impl.base.gram.client.GramClient http://gouge.ucsd.edu:8080/ogsa/services/base/gram/MasterManagedJobFactoryService /home/<your_user_name>/test.xml

Here, you are running “/bin/echo” with some parameters.  The output file is /home/<your_user_name>/stdout.  You can check if the output is correct.

GT3 is really COOL that it needs several minutes to run /bin/echo!  So, be patient :-)

You might want to read
GlobusWorld Tutorial session 5 to understand the test.xml file and change it for the following experiments.

7.      Download the NAS parallel benchmarks from http://www.nas.nasa.gov/Software/NPB/.  Be sure to get version 2.3, and you probably want to run NPB Class S to make sure everything is working then run  NPB Class A to get some data on the system using modified test.xml.

1.      Download the NAS parallel benchmarks from http://www.nas.nasa.gov/Software/NPB/.  Be sure to get version 2.3, and you probably want to run NPB Class S to make sure everything is working then run  NPB Class A to get some data on the system using the globusrun interface

8.      document the running, runtime and results for each of these runs with logs of the command-line runs and the available output from stdout, calculate (1) the speedup using multiple machines v.s. single machine; (2) the speedup using multiple processes v.s. single process on one machine.

Turn in sufficient documentation to show that you personally did the tasks above and the runs completed successfully.