GRAVI Users Guide
From Globus
Contents |
Getting Started
Dependencies
Download, Run
- Download Introduce 1.2
- unzip, set environment variables, etc
- Run Introduce
% ant introduce
Install extensions
Introduce Software Update
Introduce Update Manager
- Click Look For Updates
- Select Two Extensions
- CaBig Metadata Service Extension 1.2
- Grid Remote Application Virtualization Interface 1.3
- Cilck "Next", then "Finish"
Create Grid Service Wrapper
Create Service Skeleton
Settings
Advanced
- Add Two Extensions
- CaBig Metadata Service Extension 1.2
- Grid Remote Application Virtualization Interface 1.3
- Cilck "Create"
- Shows "Progress (Creating)"
Application Information
- Provide path to executable, and application information
- Optional Features (List Boxes)
- Deploy as GRAM job
- create method for executing as GRAM job
- Package application in GAR
- copy the executable into the GAR
- Create web UI
- create a web servlet that can be deployed into tomcat or jboss.
- Deploy as GRAM job
- Click "OK"
- Finish creating application
Modify Service Interface
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
general deployment information
advanced deployment information
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
gRAVI Client Servlet UI
setup
- deploy servlet into tomcat
$ echo $CATALINA_HOME /Users/boverhof/Documents/IdeaProjects/apache-tomcat-5.5.25
$ cd ~/Desktop/MPIRun $ ant deployTomcat ...
- start up tomcat
$ cd $CATALINA_HOME $ ./bin/startup.sh
MPIRun Example
upload configuration files
- Data Staging section
- use to upload files required in the working directory at execution time
- select button Choose File, then Upload
- Remote Files section
- select button Refresh Files to view all files in the working directory
- Arguments section
- Use button add to specify command-line arguments
execute
- Service Address section
- make sure the URL is correct before hitting Start Application button
- Status is Active
finish
- Status is Done
- Hit button Check stdout to see the standard output of the program
- Button Destroy Resource will remove the working directory and all files it contains
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)













