GRAVI Users Guide

From Globus

Contents

Getting Started

Download, Run

   % ant introduce

Install extensions

Introduce Software Update

Image:Introduce_Software_Update.png

Introduce Update Manager

Image:Introduce_Update_Manager.png

  • Click Look For Updates
  • Select Two Extensions
    • CaBig Metadata Service Extension 1.2
    • Remote Application Virtualization Interface 1.2
  • Cilck "Next", then "Finish"

Create Grid Service Wrapper

Create Service Skeleton

Settings

Image:Create_Service_Skeleton_Settings.png

Advanced

Image:Create_Service_Skeleton_Advanced.png

  • Add Two Extensions
    • CaBig Metadata Service Extension 1.2
    • Remote Application Virtualization Interface 1.2
  • Cilck "Create"
    • Shows "Progress (Creating)"

Image:RAVI_ApplicationInformation.png

  • Provide path to executable, and application information
  • Select "Deploy as GRAM job"
  • Click "OK"
    • Finish creating application

Modify Service Interface

Image:Modify_Service_Interface.png

Deploy Grid Service Application

  • Options are to use the GUI to deploy the application, or "ant" from the newly created service directory.

using ant directly

  • Quick ant directions
   % cd ~/MPIRun
   % ant deployGlobus
  • Or create a GAR and deploy remotely
  % cd ~/MPIRun
  % ant createDeploymentGar
  % scp cagrid_MPIRun.gar globus@oliver.lbl.gov:~/
  % ssh globus@oliver.lbl.gov "(globus_deploy_gar cagrid_MPIRun.gar)"

GUI: Deploy Service

select application directory

Image:Deploy_Select_MPIRun.png

general deployment information

Image:Deploy_Grid_Service_General.png\

advanced deployment information

Image:Deploy_Grid_Service_Advanced.png

Executing the MPIRun job

  • First, start the container that the gar was deployed in.

simple client test

   $ grid-proxy-init
   ...
   $ cd MPIRun
   $ ant runClientNew -Dservice.url=https://oliver.lbl.gov:8443/wsrf/services/cagrid/MPIRun
   ...
   $ ant runClientStatus
   ...
   $ cat output
   Missing: program name
   $ ant runClientKill
   ...
  • The output is from the mpirun program, we didn't provide a program to run.

actual run

Application Specific Parameters

  • We'll need to add a few application specific lines to run-tools.xml, in this case we need to pass arguments to the executable and four files need to transfered to the process's working directory before execution.
   <target name="runClientNew" depends="checkGlobus, defineClasspaths" description="Create new job">
       <property name="service.url" value="http://192.168.1.100:8080/wsrf/services/introduce/MPIRun" />
       <echo message="Connecting to service: ${service.url}" />
       <java classname="org.cagrid.mpirun.client.MPIRunClient" classpathref="run.classpath" fork="yes">
           <jvmarg value="-DGLOBUS_LOCATION=${ext.globus.dir}" />
           <arg value="new" />
           <arg value="-url" />
           <arg value="${service.url}" />
 
           <arg value="-execArgs" />
           <arg value="${service.args}" />
 
           <arg value="-inputFile" />
           <arg value="${service.lowres}" />
           <arg value="-inputFile" />
           <arg value="${service.template}" />
           <arg value="-inputFile" />
           <arg value="${service.reconstruction}" />
           <arg value="-inputFile" />
           <arg value="${service.override}" />
 
       </java>
   </target>
  • execArgs, whitespace separated list of command-line arguments.
  • inputFile, each entry is the name of a file which is transferred to the working directory of the process before execution.

Execute the Service

 $ ant runClientNew -Dservice.url=https://131.243.2.15:8443/wsrf/services/cagrid/MPIRun 
     -Dservice.args="-v -np 2 /opt/gridtools/tomography/bin/tomompi" -Dservice.lowres=I024_lowres.config -Dservice.template=output.template 
     -Dservice.reconstruction=reconstruction.cfg -Dservice.override=override_exp_file.config 
 
 Buildfile: build.xml
 
 setGlobus:
 
 checkGlobus:
      [echo] Globus: /Users/boverhof/Documents/IdeaProjects/ws-core-4.0.3
 
 defineClasspaths:
 
 defineExtendedClasspaths:
 
 runClientNew:
      [echo] Connecting to service: https://131.243.2.15:8443/wsrf/services/cagrid/MPIRun
      [java] arg: new
      [java] arg: -url
      [java] arg: https://131.243.2.15:8443/wsrf/services/cagrid/MPIRun
      [java] arg: -execArgs
      [java] arg: -v -np 2 /opt/gridtools/tomography/bin/tomompi
      [java] arg: -inputFile
      [java] arg: I024_lowres.config
      [java] arg: -inputFile
      [java] arg: output.template
      [java] arg: -inputFile
      [java] arg: reconstruction.cfg
      [java] arg: -inputFile
      [java] arg: override_exp_file.config
      [java] command new
      [java] Attempting to write Endpoint reference to file /Users/boverhof/MPIRun/client.epr
      [java] Endpoint reference written to file /Users/boverhof/MPIRun/client.epr
 
 BUILD SUCCESSFUL
 Total time: 13 seconds

Status of Process

 $ ant runClientStatus
 Buildfile: build.xml
 
 setGlobus:
 
 checkGlobus:
      [echo] Globus: /Users/boverhof/Documents/IdeaProjects/ws-core-4.0.3
 
 defineClasspaths:
 
 defineExtendedClasspaths:
 
 runClientStatus:
      [echo] Connecting to service: client.epr
      [java] arg: status
      [java] arg: -file
      [java] arg: client.epr
      [java] command status
      [java] Working Dir: /opt/ws-core-4.0.7/MPIRun1208902288409
      [java] Status: Finished: 0
      [java] Got output file data ... decoding
      [java] Got encoded data length of 316 bytes
      [java] Output file written properly to: .//output
 
 BUILD SUCCESSFUL
 Total time: 18 seconds
 $ cat output
 running /opt/gridtools/tomography/bin/tomompi on 2 LINUX ch_p4 processors
 Created /opt/ws-core-4.0.7/MPIRun1208902288409/PI613
 fft_test1f: creating plans, n=512, n_prev=0
 fft_test2f: creating plans, nx=512, ny=512, nx_prev=0, ny_prev=0

Finished Cleanup Resource

  • WARNING this will remove the process's working directory, for example /opt/ws-core-4.0.7/MPIRun1208902288409, which contains all transfered files and any files generated by the process in its working directory.
 $ ant runClientKill
 Buildfile: build.xml
 
 setGlobus:
 
 checkGlobus:
      [echo] Globus: /Users/boverhof/Documents/IdeaProjects/ws-core-4.0.3
 
 defineClasspaths:
 
 defineExtendedClasspaths:
 
 runClientKill:
      [echo] Connecting to service: client.epr
      [java] arg: kill
      [java] arg: -file
      [java] arg: client.epr
      [java] command kill
      [java] Killing Proc:true
      [java] Status:Finished: 0
      [java] Deleted File: /Users/boverhof/MPIRun/client.epr
 
 BUILD SUCCESSFUL
 Total time: 14 seconds

Other Features

Query MDS

wsrf-query client

  • One can query the IndexService for our new service once it's running.
  • The IndexService was specified in advanced deployment
 $ ./bin/wsrf-query -s http://index.training.cagrid.org:8080/wsrf/services/DefaultIndexService 
   "/*[local-name()='IndexRP']/*[local-name()='Entry']//*[local-name()='Address' and  
   text()='https://131.243.2.15:8443/wsrf/services/cagrid/MPIRun']/ancestor::*[local-name()='Entry']" 
  
 <ns12:Entry xmlns:ns1="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.xsd" xmlns:ns2="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata" xmlns:ns3="http://mpirun.cagrid.org/MPIRun/Context/types" xmlns:ns4="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd" xmlns:ns5="http://mds.globus.org/aggregator/types" xmlns:ns6="http://mds.globus.org/aggregator/types" xmlns:ns7="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:ns8="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:ns9="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:ns10="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:ns11="http://mds.globus.org/aggregator/types" xmlns:ns0="http://mpirun.cagrid.org/MPIRun/types" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns12="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.xsd">
<ns1:ServiceGroupEntryEPR xmlns:ns1="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.xsd">
 <ns2:Address xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/03/addressing">http://index.training.cagrid.org:8080/wsrf/services/DefaultIndexServiceEntry</ns2:Address>
 <ns3:ReferenceProperties xmlns:ns3="http://schemas.xmlsoap.org/ws/2004/03/addressing">
  <ns4:ServiceGroupEntryKey xmlns:ns4="http://mds.globus.org/inmemoryservicegroup">
   <ns5:GroupKey xmlns:ns5="http://mds.globus.org/aggregator/types">10464309</ns5:GroupKey>
   <ns6:EntryKey xmlns:ns6="http://mds.globus.org/aggregator/types">20057128</ns6:EntryKey>
  </ns4:ServiceGroupEntryKey>
 </ns3:ReferenceProperties>
 <ns7:ReferenceParameters xmlns:ns7="http://schemas.xmlsoap.org/ws/2004/03/addressing"/>
</ns1:ServiceGroupEntryEPR>
<ns1:MemberServiceEPR xmlns:ns1="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.xsd">
 <ns8:Address xmlns:ns8="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://131.243.2.15:8443/wsrf/services/cagrid/MPIRun</ns8:Address>
 <ns9:ReferenceProperties xmlns:ns9="http://schemas.xmlsoap.org/ws/2004/03/addressing"/>
 <ns10:ReferenceParameters/>
</ns1:MemberServiceEPR>
<ns1:Content xsi:type="ns11:AggregatorContent" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ServiceGroup-1.2-draft-01.xsd">
 <ns11:AggregatorConfig>
  <ns5:GetMultipleResourcePropertiesPollType xmlns:ns1="gme://caGrid.caBIG/1.0/gov.nih.nci.cagrid.metadata.security" xmlns:ns5="http://mds.globus.org/aggregator/types">
          <ns5:PollIntervalMillis>300000</ns5:PollIntervalMillis>
          <ns5:ResourcePropertyNames>ns2:ServiceMetadata</ns5:ResourcePropertyNames>	
     </ns5:GetMultipleResourcePropertiesPollType>
 </ns11:AggregatorConfig>
 <ns11:AggregatorData/>
 </ns1:Content>
 </ns12:Entry>

Downloads

  • MPIRun Grid Service with modifications described above (tar)

Help

| Introduce Documentation

Personal tools
Execution Projects
Information projects
Distribution Projects
Documentation Projects
Deprecated