session11 ucc intro

16

Click here to load reader

Upload: issgc-summer-school

Post on 11-May-2015

365 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Session11 Ucc Intro

Mit

glie

dd

erH

elm

hol

tz-G

emei

nsc

haf

t

The UNICORE CommandLine Client

07.07.2009 Rebecca Breu

Page 2: Session11 Ucc Intro

UNICORE Clients

Several clients for different purposes:

Rich Client: Eclipse-based graphical client for complex tasks

UCC: Command line client

GPE Application Client: Easy-to-use graphical client forsimple tasks

Portal Clients: Web based client to use with a browser

07.07.2009 Slide 2

Page 3: Session11 Ucc Intro

UNICORE Clients

Clients are . . .

intuitive

Java based → platform independent

easy to install

Prerequisites for users:

Sun Java 1.5

A user certificate

Outline

This session: Single jobs via ucc

Next session: Workflow jobs via Eclipse Client

07.07.2009 Slide 3

Page 4: Session11 Ucc Intro

Basic Client Configuration

Create a password-protected keystore that holds all keysneeded

Add keys to keystore:

User’s private and public keyPublic keys of trusted CAs (must trust signer of involvedgateway keys!)

Add URI of global registry

07.07.2009 Slide 4

Page 5: Session11 Ucc Intro

Job excecution and file transfer

For each job, an own directory is created on the target system(uspace)

Job executes within uspace directory

File import: File tranfer from somewhere (e.g. user’s localcomputer) into uspace

File export: File tranfer from uspace to somewhere (e.g.user’s local computer)

Every input file a job needs has to be imported

Every output file a user wants to see has to be exported

Applications (GridBeans) import and export some filesautmatically

07.07.2009 Slide 5

Page 6: Session11 Ucc Intro

Basic usage of UCC

Connect to UNICORE site:

> ucc connectYou can access 2 target system(s).

For every ucc command, you can use -v for verbose output:

> ucc connect -v

Getting help:

> ucc help

Help for each ucc command with -h:

> ucc connect -h

07.07.2009 Slide 6

Page 7: Session11 Ucc Intro

Synchronous Job Submission

Use run command to submit a job:

> ucc run ucc -1.1/ samples/date.uRUNNINGSUCCESSFUL exit code: 0/tmp/c61e1d7c -92d4 -4be0 -87f8 -6 a7dddc4c728.stdout/tmp/c61e1d7c -92d4 -4be0 -87f8 -6 a7dddc4c728.stderr/tmp/c61e1d7c -92d4 -4be0 -87f8 -6 a7dddc4c728.properties

UCC waits until job is finished

Output files are fetched automatically

Use -a option for asynchronous job submission → UCC returnsprompt after submit

07.07.2009 Slide 7

Page 8: Session11 Ucc Intro

UCC job format: simple example

UCC jobs are given in JSON format.

Simple example: All-time favourite date application:

# Simple Date job

{ApplicationName: Date ,Version: 1.0 # Optional

}

Date takes no input and produces stdout and stderr.

07.07.2009 Slide 8

Page 9: Session11 Ucc Intro

UCC job format: file imports and export

Example: Script job that produces additional file output.txt:

{ApplicationName: Bash shell ,Environment: ["SOURCE=input.sh"],Imports: [ {File: "/home/rbreu/myscript.sh",

To: input.sh} ],# If script produces output (optional ):Exports: [ {File: output.txt ,

To: output.txt} ]}

File import from local machine to job’s working directory

File export from job’s working directory to local machine

07.07.2009 Slide 9

Page 10: Session11 Ucc Intro

The Bash Application in the IDB

Recall: This is how the Bash Application has been defined onserver side:

<idb:IDBApplication >

<idb:ApplicationName >Bash shell </idb:ApplicationName >

<idb:ApplicationVersion >3.1.16 </idb:ApplicationVersion >

<jsdl:POSIXApplication xmlns:jsdl="http: // schemas.ggf.org/jsdl /2005/11/ jsdl -posix">

<jsdl:Executable >/bin/bash</jsdl:Executable >

<jsdl:Argument >--debugger$DEBUG?</jsdl:Argument >

<jsdl:Argument >-v$VERBOSE?</jsdl:Argument >

<jsdl:Argument >$ARGUMENTS?</jsdl:Argument >

<jsdl:Argument >$SOURCE?</jsdl:Argument >

</jsdl:POSIXApplication >

</idb:IDBApplication >

07.07.2009 Slide 10

Page 11: Session11 Ucc Intro

Specify Resources

{ApplicationName: Date ,

Resources: {Memory: 268435456 , # per CPU in bytesRuntime: 86400, # per CPU in secondsNodes: 3,CPUs: 64, # per node

#Custom resources (site -dependent !):StackLimitPerThread : 262144

}}

Please be sparing if you try that here at ISSGC ;-)

07.07.2009 Slide 11

Page 12: Session11 Ucc Intro

Data management

List a remote directory:

> ucc ls u6://GILDA -CATANIA/home.ssh.bash_historymydata

Copy files between local and remote machine:

> ucc get -file -s u6://GILDA -CATANIA/home/mydata \-t mydata

> ucc put -file -s mydata2 \-t u6://GILDA -CATANIA/home/mydata2

07.07.2009 Slide 12

Page 13: Session11 Ucc Intro

Batch Processing

Use batch command to submit all files within a directory:

> ucc batch -i /my/dir/

UCC returns when all jobs are finished

Output files are fetched automatically

With -f option, ucc waits for more files to be copied in thatdirectory:

> ucc batch -f -i /my/dir/

07.07.2009 Slide 13

Page 14: Session11 Ucc Intro

UCC from within Emacs

UCC commands inEmacs

Output highlighting

Clickable links inoutput

See ucc-1.1.1/extras/

07.07.2009 Slide 14

Page 15: Session11 Ucc Intro

Advanced usage: Groovy scripting

Use groovy scripting to automatetasks, implement customcommands, . . .

Simple example: Delete all your jobs

import de.fzj.unicore.uas.client .*;

def lister =

new de.fzj.unicore.ucc.helpers.TargetSystemLister(registry)

lister.each {

it.jobs.each{

messageWriter.message "Job at "+it.address.stringValue

new JobClient(it.address.stringValue , it ,

securityProperties ). destroy ()

}

}

Run with ucc run-groovy -f delete.groovy

07.07.2009 Slide 15

Page 16: Session11 Ucc Intro

More information

Information for the practical sessions:www.fz-juelich.de/jsc/unicore/ISSGC09/

UNICORE Website: www.unicore.eu/

UCC Documentation:www.unicore.eu/documentation/manuals/unicore6/ucc/

UCC Scripting with Groovy:http://www.unicore.eu/documentation/files/ucc groovy.pdf

Mailing list: [email protected]

More job examples and Groovy examples can be found in the uccpackage.

07.07.2009 Slide 16