• Non ci sono risultati.

GRASS GIS nella nuvola informatica=GRASS GIS in the cloud

N/A
N/A
Protected

Academic year: 2021

Condividi "GRASS GIS nella nuvola informatica=GRASS GIS in the cloud"

Copied!
39
0
0

Testo completo

(1)

Introduction Idea Implementation Conclusions

GRASS GIS in the Cloud

Luca Delucchi, Markus Neteler

Fondazione Edmund Mach – GIS & Remote Sensing Platform http://gis.cri.fmach.it

XIII Meeting GRASS e GFOSS 17th February 2012, Trieste (Italy)

(2)

Introduction Idea Implementation Conclusions Cloud Our cluster

Cloud

Cloud computing is the delivery of computing as a service rather than a product, whereby shared resources, software and

information are provided to computers and other devices as a utility over a network

Wikipedia

(3)

Introduction Idea Implementation Conclusions Cloud Our cluster

Cluster

A computer cluster is a group of linked computers, working together closely thus in many respects forming a single computer. Clusters are usually deployed to improve performance and

availability over that of a single computer

(4)

Introduction Idea Implementation Conclusions Cloud Our cluster

Our cluster: infrastructure

FEM GIS cluster consists of 300 nodes

610 GB RAM

34 TB disk storage + 15 TB tape backup

10 Gb/s internal bus Scientific Linux 6.2 Grid Engine

(5)

Introduction Idea Implementation Conclusions Cloud Our cluster

Our cluster: massive spatial data analysis

MODIS Land Surface Temperature (LST) map gap-filling (13,000 maps) MODIS data analysis (LST, NDVI, Snow products)

LiDAR data analysis Solar energy calculations

(6)

Introduction

Idea

Implementation Conclusions

Idea to facilitate GRASS GIS usage on a cluster

Simplify the work

Offer the possibility to use Grid Engine by all our colleagues Launch jobs remotely without connecting every time to the cluster

Offer the possibility to external people to use the cluster without learning Grid Engine

(7)

Introduction

Idea

Implementation Conclusions

Idea to facilitate GRASS GIS usage on a cluster

Simplify the work

Offer the possibility to use Grid Engine by all our colleagues

Launch jobs remotely without connecting every time to the cluster

Offer the possibility to external people to use the cluster without learning Grid Engine

(8)

Introduction

Idea

Implementation Conclusions

Idea to facilitate GRASS GIS usage on a cluster

Simplify the work

Offer the possibility to use Grid Engine by all our colleagues Launch jobs remotely without connecting every time to the cluster

Offer the possibility to external people to use the cluster without learning Grid Engine

(9)

Introduction

Idea

Implementation Conclusions

Idea to facilitate GRASS GIS usage on a cluster

Simplify the work

Offer the possibility to use Grid Engine by all our colleagues Launch jobs remotely without connecting every time to the cluster

Offer the possibility to external people to use the cluster without learning Grid Engine

(10)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work? Future

Implementation: requirements

GRASS GIS 7 (current development version)

Grid Engine Python > 2.4

(11)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work? Future

Implementation: requirements

GRASS GIS 7 (current development version) Grid Engine

(12)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work? Future

Implementation: requirements

GRASS GIS 7 (current development version) Grid Engine

Python > 2.4

(13)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Required parameters (if you want launch jobs)

conf = file with username and password or stdin to connect to the cluster

server = hostname of the cluster

qsub script = file containing qsub script (template) grass script = own GRASS GIS script

g.cloud conf=/tmp/passwd server=giscluster

(14)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Required parameters (if you want launch jobs)

conf = file with username and password or stdin to connect to the cluster

server = hostname of the cluster

qsub script = file containing qsub script (template) grass script = own GRASS GIS script

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test novariables.sh

(15)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Required parameters (if you want launch jobs)

conf = file with username and password or stdin to connect to the cluster

server = hostname of the cluster

qsub script = file containing qsub script (template)

grass script = own GRASS GIS script

g.cloud conf=/tmp/passwd server=giscluster

(16)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Required parameters (if you want launch jobs)

conf = file with username and password or stdin to connect to the cluster

server = hostname of the cluster

qsub script = file containing qsub script (template) grass script = own GRASS GIS script

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test novariables.sh

(17)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Required parameters (if you want launch jobs)

conf = file with username and password or stdin to connect to the cluster

server = hostname of the cluster

qsub script = file containing qsub script (template) grass script = own GRASS GIS script

(18)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Optional parameters

raster = name of raster(s)

vector = name of vector(s)

variables = string with name and values of variables stated as Python dictionary “’key’:[’value0’,’value1’]”

email = user’s email address

reconnect = reconnect with old job to see if it is finished and move the output data back on the client

path = path to the folder which must be accessible from cluster frontend and blades

(19)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Optional parameters

raster = name of raster(s) vector = name of vector(s)

variables = string with name and values of variables stated as Python dictionary “’key’:[’value0’,’value1’]”

email = user’s email address

reconnect = reconnect with old job to see if it is finished and move the output data back on the client

path = path to the folder which must be accessible from cluster frontend and blades

(20)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Optional parameters

raster = name of raster(s) vector = name of vector(s)

variables = string with name and values of variables stated as Python dictionary “’key’:[’value0’,’value1’]”

email = user’s email address

reconnect = reconnect with old job to see if it is finished and move the output data back on the client

path = path to the folder which must be accessible from cluster frontend and blades

(21)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Optional parameters

raster = name of raster(s) vector = name of vector(s)

variables = string with name and values of variables stated as Python dictionary “’key’:[’value0’,’value1’]”

email = user’s email address

reconnect = reconnect with old job to see if it is finished and move the output data back on the client

path = path to the folder which must be accessible from cluster frontend and blades

(22)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Optional parameters

raster = name of raster(s) vector = name of vector(s)

variables = string with name and values of variables stated as Python dictionary “’key’:[’value0’,’value1’]”

email = user’s email address

reconnect = reconnect with old job to see if it is finished and move the output data back on the client

path = path to the folder which must be accessible from cluster frontend and blades

(23)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Optional parameters

raster = name of raster(s) vector = name of vector(s)

variables = string with name and values of variables stated as Python dictionary “’key’:[’value0’,’value1’]”

email = user’s email address

reconnect = reconnect with old job to see if it is finished and move the output data back on the client

(24)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Flags

c = cycle through all variables

k = keep temporal files and mapsets a = use ssh-add for faster access

(25)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Flags

c = cycle through all variables k = keep temporal files and mapsets

(26)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: how does it work?

Flags

c = cycle through all variables k = keep temporal files and mapsets a = use ssh-add for faster access

(27)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: more examples

North Carolina sample data r.texture example

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test onevariable raster.sh variables=“’TEXT’ :

[’asm’,’contrast’,’corr,var’,’idm’,’sa’,’se’,’sv’,’entr’,’dv’,’de’,’moc1’,’moc2’]” raster=lsat7 2002 40

r.sun example

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test onevariable sun.sh variables=“’DOY’ : [1,2,3,4,5,6,7,8,9,10]” raster=elevation

(28)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: more examples

North Carolina sample data r.texture example

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test onevariable raster.sh variables=“’TEXT’ :

[’asm’,’contrast’,’corr,var’,’idm’,’sa’,’se’,’sv’,’entr’,’dv’,’de’,’moc1’,’moc2’]” raster=lsat7 2002 40

r.sun example

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test onevariable sun.sh variables=“’DOY’ : [1,2,3,4,5,6,7,8,9,10]” raster=elevation

(29)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: more examples

more variable example

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test morevariables sun.sh variables=“’NPOINT’ : [10,20], ’BUFFERDIST’ : [100,500]”

use number point 10 with buffer distance 100; and number point 20 with buffer distance 500

more variable example

g.cloud -c conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test morevariables sun.sh variables=“’NPOINT’ : [10,20], ’BUFFERDIST’ : [100,500]”

use number point 10 with buffer distance 100 and 500; number point 20 with buffer distance 100 and 500

(30)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: more examples

more variable example

g.cloud conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test morevariables sun.sh variables=“’NPOINT’ : [10,20], ’BUFFERDIST’ : [100,500]”

use number point 10 with buffer distance 100; and number point 20 with buffer distance 500

more variable example

g.cloud -c conf=/tmp/passwd server=giscluster

qsub script=test launch SGE grassjob.sh grass script=test morevariables sun.sh variables=“’NPOINT’ : [10,20], ’BUFFERDIST’ : [100,500]”

use number point 10 with buffer distance 100 and 500; number point 20 with buffer distance 100 and 500

(31)

Introduction Idea

Implementation

Conclusions

Requirements

How does it work?

Future

Implementation: reconnect

North Carolina sample data reconnect example

(32)

Introduction Idea

Implementation

Conclusions

Requirements How does it work?

Future

Implementation: future

Support for more clustering system (for example Eucalyptus)

Auto installation of GRASS and its dependencies on the cluster if not present (GRASS 7 release as stable version) Show the status of jobs

(33)

Introduction Idea

Implementation

Conclusions

Requirements How does it work?

Future

Implementation: future

Support for more clustering system (for example Eucalyptus) Auto installation of GRASS and its dependencies on the cluster if not present (GRASS 7 release as stable version)

(34)

Introduction Idea

Implementation

Conclusions

Requirements How does it work?

Future

Implementation: future

Support for more clustering system (for example Eucalyptus) Auto installation of GRASS and its dependencies on the cluster if not present (GRASS 7 release as stable version) Show the status of jobs

(35)

Introduction Idea Implementation

Conclusions

Conclusions

First implementation of a module to run GRASS on a cluster

Experimental version

Please test it and report bugs or improvements Contact us for more info

(36)

Introduction Idea Implementation

Conclusions

Conclusions

First implementation of a module to run GRASS on a cluster Experimental version

Please test it and report bugs or improvements Contact us for more info

markus.neteler@iasma.it - luca.delucchi@iasma.it

(37)

Introduction Idea Implementation

Conclusions

Conclusions

First implementation of a module to run GRASS on a cluster Experimental version

Please test it and report bugs or improvements

Contact us for more info

(38)

Introduction Idea Implementation

Conclusions

Conclusions

First implementation of a module to run GRASS on a cluster Experimental version

Please test it and report bugs or improvements Contact us for more info

markus.neteler@iasma.it - luca.delucchi@iasma.it

(39)

Introduction Idea Implementation

Conclusions

Conclusions

Thanks for your attention

Riferimenti

Documenti correlati

This table presents the OLS regression results from Equation (2) where scaled R&D expenditures in year t+1 are regressed on contemporaneous government ownership, time varying

The article examines the notion of untruth in relation to photography and illustrates the function of the photograph as a stylistic and linguistic device that explains the idea of

The lowest average contribution (26.41 experimental coins) corresponds to the treatment with partial information: this figure is statistically different from those

For untargeted metabolomics, characteristic features such as mass resolving power, mass range, mass accuracy, and data acquisition frequency should be considered, while

La poetica della contraddizione ha accomunato questi teatranti eccezionali attra- verso l’elaborazione di un particolare linguaggio della scena dal tratto fortemente allegorico

se da quella di ‘scrittrice lesbica’ passiamo ad analizzare la categoria della ‘tematica lesbica’, si pongono ovvi problemi di esclusione, che riguar- dano scrittrici

We use the technology available in the field of augmented reality, so that the learning environment an immersive, 3-D and fully interactive environment, capable

In this study, the attention is focused on ETs present in Rubus berries, raspberries and blackberries, to verify whether they are able to protect against gastric ulcer and how