University of Perugia - Grid Testbed

Grid Testbed on a three Beowulf-type
workstation clusters based on Globus Toolkit 2.2

Carlo Manuali, carlo@unipg.it




Topology

GRID (9 SMP working nodes, 18 working CPU on a Beowulf architecture)
Intel Pentium III double-processor 1 Ghz18 Gbyte RAMEIDE/SCSI hdiskGigabit-Ethernet basedLinux RedHat 7.2 2.4.13 SMP mosix kernel based.

HPC (8 SMP working nodes, 16 working CPU on a Beowulf architecture)
4 Intel Pentium II double-processor 550 Mhz1 Intel Pentium II double-processor 450 Mhz3 Intel Pentium II double-processor 400 Mhz4 Gbyte RAMEIDE/SCSI hdiskFast-Ethernet basedLinux RedHat 6.2 2.2.16-3 SMP kernel based.

GIZA (8 SMP working nodes on a Beowulf architecture)
Intel Pentium III single-processor 800 Mhz4 Gbyte RAMEIDE hdiskFast-Ethernet basedLinux RedHat 7.0 2.2.19 kernel based.

Installation


1 - GPT Installation
======================================================================
# export GLOBUS_LOCATION=/usr/local/globus/
# export GPT_LOCATION=/usr/local/globus/

# tar -zxvf gpt-2.2.9-src.tar.gz
# cd gpt-2.2.9
# ./build_gpt
======================================================================


2 - Local vendor MPI Installation (MPICH)
======================================================================
>Workaround required (buffer too small), see Appendix A

# ./configure --with-device=ch_p4 --with-arch=LINUX \
      -prefix=/usr/local/mpich_vendor/
# make
# make install
======================================================================


3 - Resource management Installation
======================================================================
# $GPT_LOCATION/sbin/gpt-build \ 
   globus-resource-management-client-2.2.4-src_bundle.tar.gz gcc32 \
   -log=rsman.client.log

# $GPT_LOCATION/sbin/gpt-build \ 
   globus-resource-management-sdk-2.2.4-src_bundle.tar.gz gcc32 \
   -log=rsman.sdk.log

# $GPT_LOCATION/sbin/gpt-build \
    globus-resource-management-server-2.2.4-src_bundle.tar.gz gcc32 \
    -log=rsman.server.log

# . $GLOBUS_LOCATION/etc/globus-user-env.sh
# $GPT_LOCATION/sbin/gpt-postinstall
# /usr/local/globus//setup/globus/setup-gsi
# $GPT_LOCATION/sbin/gpt-verify
======================================================================


4 - Data Management Installation
======================================================================
# $GPT_LOCATION/sbin/gpt-build \
    globus-data-management-client-2.2.4-src_bundle.tar.gz gcc32 \
    -log=datamana.client.log

# $GPT_LOCATION/sbin/gpt-build \ 
    globus-data-management-sdk-2.2.4-src_bundle.tar.gz gcc32 \
    -log=datamana.sdk.log

# $GPT_LOCATION/sbin/gpt-build \
    globus-data-management-server-2.2.4-src_bundle.tar.gz gcc32 \
    -log=datamana.server.log

# $GPT_LOCATION/sbin/gpt-postinstall
# $GPT_LOCATION/sbin/gpt-verify
======================================================================


5 - Certification Authority (CA) Installation
======================================================================
# $GLOBUS_LOCATION/sbin/gpt-build \ 
    globus_simple_ca_bundle-latest.tar.gz gcc32 \
    -log=simpleca.log

# . $GLOBUS_LOCATION/etc/globus-user-env.sh
# $GPT_LOCATION/sbin/gpt-postinstall

# /usr/local/globus//setup/globus_simple_ca_c629cd04_setup/setup-gsi
# grid-default-ca 
======================================================================


6 - Verify
======================================================================
# $GPT_LOCATION/sbin/gpt-verify
======================================================================

7 - Flavor mpicc32 for Resource management SDK
======================================================================
>Workaround required in /usr/local/mpich_vendor/bin/mpicc
 A quick fix is to change mpicc in the following way:

 --- mpicc.orig  Thu Mar 13 22:02:41 2003
 +++ mpicc       Thu Mar 13 21:53:20 2003
 @@ -126,6 +126,7 @@
        compileargs="$compileargs $arg"
	        HasDashC=1
		DoLink=0
		DoCompile=1
		;;

		-mpilog)

# $GPT_LOCATION/sbin/gpt-build \
   globus-resource-management-sdk-2.2.4-src_bundle.tar.gz mpicc32 \
   -log=rsman.mpi.sdk.log
   
======================================================================


8 - MPICH-G2 Installation
======================================================================
>Same workaround required in Appendix A

# tar -zxvf mpich-1.2.5-1a.tar.gz 
# cd mpich-1.2.5
# ./configure -prefix=/usr/local/mpichg2 --with-arch=LINUX \ 
    -device=globus2:-flavor=mpicc32
# make
# make install
# /usr/local/globus/setup/globus/setup-globus-gram-job-manager

======================================================================

********************************
*APPENDIX A - mpich workaround *
********************************

Copy these files in the mpich location (before your compilation):
p4_defs.h
p4_sock_cr.c

# cd >mpich-1.2.5_location<
# cp p4_defs.h mpid/ch_p4/p4/lib/
# cp p4_sock_cr.c mpid/ch_p4/p4/lib/

Final Notes


- Add to every RSL script environment:
  (P4_SETS_ALL_ENVVARS 1)

- Change the default (/usr/bin/mpirun) in /usr/local/globus/lib/perl/Globus/GRAM/JobManager/fork.pm with the value:
 /usr/local/mpich_vendor/bin/mpirun

- Customize the file /usr/local/mpich_vendor/share/machines.LINUX with your cluster's nodes


Finally, you will be able to explore the MDS resources of this cluster.




carlo@unipg.it