Anteprima
Vedrai una selezione di 20 pagine su 93
Tesi Marco Zennaro Pag. 1 Tesi Marco Zennaro Pag. 2
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 6
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 11
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 16
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 21
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 26
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 31
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 36
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 41
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 46
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 51
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 56
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 61
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 66
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 71
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 76
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 81
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 86
Anteprima di 20 pagg. su 93.
Scarica il documento per vederlo tutto.
Tesi Marco Zennaro Pag. 91
1 su 93
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

EOF

tar zcf results.tar.gz output.README `basename ${OUTPUT_FILE}`

2>/dev/null

Dopo aver scritto lo script di esecuzione, e definito quali dovessero essere i file di

output da recuperare alla fine dell’operazione di rendering (stdout, stderr e file

contenente il video “renderizzato”), ho iniziato finalmente a scrivere il codice della

portlet e le relative JSP. Tutto il codice che ho sviluppato è disponibile sul web alla

pagina:

http://sourceforge.net/p/ctsciencegtwys/liferay/HEAD/tree/trunk/blender-portlet/

Alcuni screenshot sono mostrati nel seguito, tranne quello della pagina di descrizione

dell’applicazione che è stato invece già inserito all’inizio del presente capitolo.

La figura seguente mostra la pagina nella quale l’utente può visualizzare l’infrastruttura

che sta usando e, volendo, scegliere il sito sul quale eseguire l’applicazione di

rendering;

   

Figura 6.13 - Pagina di visualizzazione dell'infrastruttura Cloud

  Progetto  software  e  risultati   69  

   

   

Marco   Z ennaro   |   “ Rendering-­‐as-­‐a-­‐Service”   s u   C loud  

 

   

 

La figura seguente mostra invece la pagina per la scelta dei parametri di esecuzione, del

file da “renderizzare” e dell’eventuale notifica via email dell’inizio e della fine

dell’esecuzione.

   

Figura 6.14 - Pagina con i parametri di configurazione dell'esecuzione

 

I vari campi sono spiegati nel seguito:

Virtual Server: permette di scegliere la VM da usare; al momento esiste solo un

• template con a bordo la versione 2.69 di Blender;

VM Template: permette di scegliere le dimensioni (in termini di numero di core

• logici e di GB di memoria) della VM da usare;

VM Name: permette di dare un nome logico alla VM;

• Description: permette di associare una breve descrizione all’esecuzione in

• modo da ritrovarla facilmente nell’elenco dei propri job;

Notification: permette di impostare la notifica via email dell’inizio e della fine

• dell’esecuzione dell’applicazione di rendering;

Advanced settings: al momento, permette solo di scegliere il file da

• renderizzare.

Fatte tutte le scelte, basta cliccare sul “bottone verde” che compare in basso a sinistra

per mandare in esecuzione l’applicazione. Da questo momento in avanti, il suo stato può

  Progetto  software  e  risultati   70  

   

   

Marco   Z ennaro   |   “ Rendering-­‐as-­‐a-­‐Service”   s u   C loud  

 

   

 

essere monitorato sulla pagina MyJobs, facente parte integrante del Catania Science

Gateway Framework, che è mostrata nella figura seguente.

   

Figura 6.15 - Pagina di monitoraggio delle varie esecuzioni

 

Quando l’esecuzione dell’applicazione è completata con successo, l’indicazione sul suo

stato (SCHEDULED, RUNNING, ecc.) viene sostituita da una piccola iconcina che

contiene il link per lo scaricamento dei file di output sul computer dell’utente.

 

6.4. Possibili sviluppi futuri

 

Come sempre accade, il lavoro relativo ad una tesi sperimentale, qual è stata la mia,

rappresenta una “finestra” che si apre per un tempo finito sul normale “scorrere” delle

attività di un gruppo di ricerca. Ciò significa che molto è stato fatto ma che sviluppi

futuri sono ancora possibili sul mio progetto software.

Alcuni sono elencati di seguito, a conclusione del capitolo:

La possibilità di scegliere la versione di Blender e/o l’algoritmo di rendering,

• cambiando nella pagina di input il template di VM;

La possibilità di lanciare simultaneamente pià renderizzazioni (in un’unica job

• collection in modo da sfruttare la scalabilità intrinseca ad un ambiente distribuito

qual è una Cloud);   Progetto  software  e  risultati   71  

   

   

Marco  Zennaro  |  “Rendering-­‐as-­‐a-­‐Service”  su  Cloud  

 

   

  Fare uno studio di scalabilità in termini di tempi di esecuzione del rendering e

• delle dimensioni del file da renderizzare;

Distribuire i template di VM utilizzati in altri siti, sia del CHAIN-REDS Cloud

• Testbed che dell’EGI Federated Cloud (questa attività è stata già pianificata);

Inserire la portlet per l’esecuzione di Blender in uno o più Science Gateway

• ufficiali (questa attività è stata già pianificata).

  Progetto  software  e  risultati   72  

   

   

Marco  Zennaro  |  “Rendering-­‐as-­‐a-­‐Service”  su  Cloud  

 

   

 

7. Appendice 1

7.1. Creazione del template di una Macchina Virtuale

 

Prima dell’installazione della macchina virtuale, ho dovuto tener conto della necessità

di soddisfare alcuni preriquisiti. Ho così eseguito i sequenti comandi:

# yum install -y gcc gcc-c++ glibc-devel glibc-devel.i686

# yum install csh

# yum install -y libpng-devel

Ho quindi compilato il compilatore GCC 4.8 all’interno della cartella objdir eseguendo:

# wget ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-4.8.0/gcc-

4.8.0.tar.gz

# tar xzf gcc-4.8.0.tar.gz

# cd gcc-4.8.0

# ./contrib/download_prerequisites

# cd ..

# mkdir objdir

# cd objdir

# $PWD/../gcc-4.8.0/configure --prefix=/opt/gcc-4.8.0

# make

# make install

# cd ..

Ho quindi eseguito il download e l’installazione di Blender sulla macchina virtuale:

# wget http://download.blender.org/release/Blender2.69/blender-

2.69-linux-glibc211-i686.tar.bz2

# tar xf blender-2.69-linux-glibc211-i686.tar.bz2

# cd blender-2.69-linux-glibc211-i686

# yum install libfreetype.so.6

# yum install libSDL-1.2.so.0

# yum install libGL.so.1

# install libGLU.so.1

# yum install libXi.so.6

ed eseguito l’export di alcune variabili:

# export NETCDF=/usr/local/

# export WRFIO_NCD_LARGE_FILE_SUPPORT=1

# export CC=/opt/gcc-4.8.0/bin/gcc

# export CXX=/opt/gcc-4.8.0/bin/g++

# export FC=/opt/gcc-4.8.0/bin/gfortran

# export JASPERLIB=/usr/local/lib/

# export JASPERINC=/usr/local/include/jasper/

Ho scaricato e installato zlib. La zlib è di fatto una libreria per il supporto del

compressore di default del Sistema Operativo (gzip) ed ha molti ambiti di applicazione:

dalla lettura/scrittura di files compressi alla compressione “al volo” degli stream.

   

Appendice  1 73  

   

   

Marco  Zennaro  |  “Rendering-­‐as-­‐a-­‐Service”  su  Cloud  

 

   

  # wget http://zlib.net/zlib-1.2.8.tar.gz

# tar xvzf zlib-1.2.8.tar.gz

# cd zlib-1.2.8

# ./configure

# make

# make install

# cd ..

A questo punto ho compilato HDF5 che è un programma portabile ed estensibile per la

gestione e la manipolazione di diversi tipi di dati. Esso è stato disegnato per un I/O

flessibile ed efficiente di dati voluminosi e complessi.

# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/gcc-

4.8.0/lib/:/opt/gcc-4.8.0/lib64/

# wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-

1.8.11.tar.gz

# tar xvzf hdf5-1.8.12.tar.gz

# cd hdf5-1.8.12

# ./configure --with-zlib=/usr/local/include,/usr/local/lib --

prefix=/usr/local/ --enable-fortran --enable-cxx --enable-shared

# make

# make install

# cd ..

Sono passato così all’installazione e compilazione di netcdf, un altro set di librerie per

la gestione di dati scientifici array oriented:

# wget http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-

4.3.0.tar.gz

# tar xvzf netcdf-4.3.0.tar.gz

# cd netcdf-4.3.0

# ./configure --enable-netcdf4 --enable-benchmarks

# make

# make install

# cd ..

e di netcdf fortran:

# wget http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-

fortran-4.2.tar.gz

# tar xvzf netcdf-fortran-4.2.tar.gz

# cd netcdf-fortran-4.2

# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/

# ./configure

# make

# make install

# cd ..

Quindi ho fatto le due ultime installazioni e configurazioni: prima di jasper

# wget http://www.ece.uvic.ca/~frodo/jasper/software/jasper-

1.900.1.zip

# unzip jasper-1.900.1.zip

# cd jasper-1.900.1

# ./configure --enable-shared

# make

# make install    

Appendice  1 74  

   

   

Marco  Zennaro  |  “Rendering-­‐as-­‐a-­‐Service”  su  Cloud  

 

   

 

e dopo di Grib:

# wget

https://software.ecmwf.int/wiki/download/attachments/3473437/gri

b_api-1.10.0.tar.gz?api=v2

# tar xvfz grib_api-1.10.0.tar.gz\?api\=v2

# cd grib_api-1.10.0

# ./configure --with-jasper=/usr/local/lib --with-

netcdf=/usr/local/lib

# make

# make install

# cd ..

Ora che la macchina virtuale con Blender è pronta, come mostrato nella figura

successiva, non resta che instaziarla all’interno di una piattaforma Cloud. Nel prossimo

paragrafo sono mostrati i passi da compiere per farlo su una Cloud gestita con

OpenNebula, che è una di quelle che ho utilizzato in questo lavoro di tesi.  

Figura 7.1 - Template della VM con Blender    

Appendice  1 75  

   

   

Marco  Zennaro  |  “Rendering-­‐as-­‐a-­‐Service”  su  Cloud  

 

   

 

7.2. Istanziazione della Macchina Virtuale

L’istanziazione di una VM si basa su tre aspetti: l’immagine, il template ed infine la

VM stessa. Prima di tutto, si crea l’immagine; nel nostro caso vogliamo che non sia

persistent dato che dovrà essere istanziata e distrutta dall’adaptor JSAGA per OCCI (v.

Capitolo 6).

Ho quindi eseguito i seguenti comandi di OpenNebula:

# one image create &m

Dettagli
Publisher
A.A. 2013-2014
93 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher redscorpion88 di informazioni apprese con la frequenza delle lezioni di Computer Graphics e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Catania o del prof Gallo Giovanni.