martedì ott 14, 2008

Cloud Computing: una comparazione tra Google AppEngine, Amazon EC2 e Project Caroline di Sun

Tratte da un intervento al Los Angeles Java User group (qui c'è il blog dell'autore) ecco le slide con l'analisi dei principali servizi di Cloud Computing disponibili in rete:

Cloud Computing
View SlideShare presentation or Upload your own. (tags: ec2 appengine)

mercoledì mag 21, 2008

Solaris, OpenSolaris e Project Indiana

...ecco un video tratto da una mia presentazione presso l'Università di Napoli "Parthenope":

Il video è stato girato prima della disponibilità della distribuzione binaria OpenSolaris 2008.05.

giovedì apr 24, 2008

Fortress, un linguaggio di programmazione per matematici

Una panoramica di Project Fortress, il nuovo linguaggio di programmazione che riprende la sintassi della matematica, utilizza LaTeX per formattare in modo leggibile i sorgenti, sfrutta la Virtual Machine Java per garantire la massima portabilità ed è ottimizzato per il calcolo parallello. Il linguaggio è già stato discusso qui e qui.

Project Darkstar, un motore per i giochi multiplayer online

Un'introduzione a Project Darkstar, un motore (in backend) per la gestione delle sessioni di un ambiente multi utente, come i giochi multiplayer online. Le sue caratteristiche principali sono l'elevata scalabilità e la possibilità di gestire un unico "spazio" condiviso dagli utenti, contrapponendosi quindi all'approccio più comune nei giochi multiplayer online in cui gli utenti contemporaneamente connessi sono suddivisi in differenti "isole", "stanze" o "mondi".

Può essere utilizzato anche per applicazioni meno ludiche, un esempio è Project Wonderland, un sistema di collaborazione 3D, costruito proprio su Darkstar.

Cloud Computing con Project Caroline

Project Caroline è un progetto di ricerca dei Sun Labs che intende fornire una piattaforma scalabile in modo orizzontale per lo sviluppo ed il deployment di servizi Internet. Tali caratteristiche sono spesso riassunte nel termine Cloud Computing. La piattaforma fornisce ai servizi le necessarie risorse computazionali, di storage e di rete. I linguaggi ad oggi supportati da Project Caroline sono Java, Perl, Python. Sulla piattaforma Java è possibile eseguire anche i linguaggi Ruby e PHP.

 

Queste sono alcune caratteristiche tecniche della piattaforma:

  • ZFS per la creazione rapida di file system
  • i file system soono accedibili via NFS e WebDAV
  • le reti (VLAN) sono create su richiesta dell'applicazione, così come sono allocati gli IP Address (interni o pubblici)
  • varie forme di connettività sono implementabili (load balancer, NAT, VPN)
  • anche il servizio di DNS è gestito dalla piattaforma in modo dinamico

 

Di seguito un video che descrive in modo più approfondito il progetto. Il video dura circa 2h, di cui:

  • i primi 15' sono di introduzione ai Sun Labs (nell'ambito dell'iniziativa Open House), poi inizia la descrizione di Project Caroline
  • al 42' vi è una dimostrazione di una applicazione che si integra con Facebook 
  • al 49' inizia la parte più tecnica della presentazione

giovedì apr 10, 2008

OpenSolaris, la nuova distribuzione binaria

Ecco alcune slide sulla nuova distribuzione binaria OpenSolaris, frutto del progetto Indiana e di Ian Murdock

Molto interessante il nuovo modello di distribuzione a pacchetti (Image Packaging System) che permette di aggiornare o estendere le funzionalità di un sistema scaricando i necessari moduli via rete, gestendo le interdipendenze tra i pacchetti.

Ecco un esempio di installazione via rete del linguaggio Ruby (non incluso nell'ultima Developer Preview):

root@opensolaris:~# pkg refresh
root@opensolaris:~# ruby
-bash: ruby: command not found
root@opensolaris:~# pkg status -a| grep -i ruby
pkg://opensolaris.org/SUNWruby18@1.8.6-0.79 known ----
root@opensolaris:~# pkg install SUNWruby18
DOWNLOAD PKGS FILES XFER (MB)
Completed 1/1 1546/1546 8.50/8.50

PHASE ACTIONS
Install Phase 1837/1837
root@opensolaris:~# ruby
puts "Hello, World!"
Hello, World!

Con il comando "pkg status -a" si possono vedere gli altri pacchetti disponibili per l'installazione.

martedì apr 01, 2008

Calcolare Pi greco con Fortress e l'Ago di Buffon

E' disponibile da oggi il nuovo sito e la release 1.0 del linguaggio Fortress (già discusso qui).

La sintassi del linguaggio è molto simile a quella della matematica ed è infatti possibile (utilizzando l'utility fortify che fa parte della distribuzione di Fortress) esportare un sorgente in formato LaTeX.

Ecco un esempio di un programma Fortress che approssima Pi greco utilizzando l'Ago di Buffon (per chi è interessato qui c'è un ulteriore metodo basato sul caso, scritto in Perl). Questo algoritmo si basa sulla relazione che esiste tra Pi greco e la probabilità che un ago, lanciato su un piano percorso da rette tra loro parallele ed equidistanti, intersechi o meno una delle rette.

Il sorgente è tratto dalle demo incluse nella distribuzione di Fortress:

run(args:String...):()=do
needleLength = 20
numRows = 10
tableHeight = needleLength numRows
var hits : RR64 = 0.0
var n : RR64 = 0.0

println("Starting parallel Buffons")
recordTime(6.0)
for i <- 1#3000 do
delta_X = random(2.0) - 1
delta_Y = random(2.0) - 1
rsq = delta_X\^2 + delta_Y\^2
if 0 < rsq < 1 then
y1 = tableHeight random(1.0)
y2 = y1 + needleLength (delta_Y / sqrt(rsq))
(y_L, y_H) = (y1 MIN y2, y1 MAX y2)
if ceiling(y_L/needleLength) = floor(y_H/needleLength) then
atomic do hits += 1.0 end
end
atomic do n += 1.0 end
end
end
probability = hits/n
pi_est = 2.0/probability
printTime(6.0)
println("")
print("estimated Pi = ")
println(pi_est)
end
end

Ecco lo stesso sorgente come output del LaTeX:

Ecco l'output del programma buffons.fss (con 3.000 iterazioni l'algoritmo non converge molto bene): 

$ ~user/Test/fortress-1.0/bin/fortress demos/buffons.fss 
guessing FORTRESS_HOME=/Users/user/Test/fortress-1.0/bin/..
Starting parallel Buffons
Operation took 689ms

estimated Pi = 3.132848645076008

venerdì mar 23, 2007

Joost, una TV P2P su Sun

Il nuovo progetto dei creatori di Kazaa, fino a qualche anno fa il più diffuso software di file sharing P2P, e di Skype, il più diffuso sistema di (video)fonia P2P, sta entrando nella fase finale di beta testing.

All'inizio conosciuto come "Venice Project" ha trovato da alcune settimane il nome definitivo di Joost: una piattaforma IPTV per la distribuzione di contenuti video basato su un trasporto di tipo P2P, con tutti i vantaggi economici e di scalabilità che ne conseguono.

L'idea è quella di creare una piattaforma televisiva interattiva su Internet, in cui gli utenti possano interagire ad esempio fornendo un rating dei contenuti e partecipando a chat room dedicate ai singoli canali o allo stesso contenuto. In particolare molta enfasi è stata data alla creazione di una interfaccia utente semplice e senza inutili "tecnicismi", ma che cerca di coinvolgere gli spettatori spingendoli ad interagire tra loro, sul modello del Web 2.0.

Navigation

Visti i risultati degli altri progetti portati in campo (Kazaa, Skype) vi è molta attesa per la diffusione di questa nuova piattaforma. Una nota interessante è che i sistemi utilizzati per implementare Joost sono Sun, come si evince da questa entry nel blog ufficiale che punta ad un set di fotografie su Flickr.


lunedì gen 22, 2007

Fortress, un linguaggio di programmazione per l'High Performance Computing (HPC)

Fortress è un nuovo linguaggio di programmazione disegnato dai Sun Labs per l'High Performance Computing (HPC). Per esplorare approcci innovativi e semplificarne l'utilizzo, il disegno del linguaggio Fortress non è stato legato a nessuna sintassi o semantica di linguaggi tradizionali e tutti gli aspetti specifici di un linguaggio per l'HPC sono stati ripensati da zero. Il risultato è un linguaggio che implementa nativamente funzionalità come transazioni, località e calcolo parallelo implicito. Funzionalità ulteriori come un modello basato su componenti ed un framework di test facilitano l'assemblamento ed il collaudo dei programmi e permettono al compilatore di effettuare ottimizzazioni efficienti anche tra librerie differenti.

Anche la sintassi di base del linguaggio Fortress sono ritagliate su misura per la moderna programmazione HPC, supportando la notazione matematica e il controllo statico delle proprietà (come unità fisiche e dimensioni), il controllo statico di vettori e matrici multidimensionali e la definizione in una libreria di sintassi legata ad un dominio applicativo specifico. Inoltre il linguaggio è stato disegnato con l'intento di essere "estendibile" tramite l'aggiunta di ulteriori funzionalità specifiche: infatti la maggior parte del linguaggio stesso (incluse, ad esmepio, la definizione dei vettori e di altri tipi di base) è codificata nelle librerie utilizzando come base un insieme relativamente ridotto di regole "fisse".

Il nome "Fortress" intende sottolineare l'intenzione di produrre un "Fortran" intrinsecamente sicuro. In realtà, a parte per l'etimologia, non vi sono relazioni evidenti tra i due linguaggi, a parte il dominio applicativo di riferimento: nelle intenzioni degli autori l'obiettivo di Fortress è di essere per il Fortran ciò che il linguaggio Java è stato per il C.

Per ulteriori informazioni:


About

Un diario digitale sui miei interessi: Internet, Solaris, Java, Fotografia, ecc.

Search

Archives
« aprile 2014
lunmarmergiovensabdom
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today