Distribuerte Objekter

Download Report

Transcript Distribuerte Objekter

Distribuerte Objekter
Våren 2012
Professor II Eric Jul
Forelesning F2 – 2012-02-06
Velkommen
• Eric Jul, Professor II, til daglig: Bell Labs,
Dublin, Ireland
• Tor Ivar Johansen, hjelpelærer
• Bjørn Erik, hjelpelærer
Hvem var her IKKE første gang?
Kontakt
• [email protected]
• Haster? SMS til +45 40 25 16 50
• Skypeid: ericbjul – efter aftale.
• Tor Ivar og Bjørn Erik: kan hjelpe med det
praktiske
Hvad
• Kurs om Distribuerete Objekter
Hvornår
Starter i dag og er på følgende mandage:
• 23/1 – 2011
• 6/2 – 2011
• 20/2 – 2011
• 19/3 – 2011
• 16/4 – 2011 (forventet)
Klokken 10 – 12 og 13 – 16
I alt 5 x 2 x 3 timer = 30 timer
Hvor?
Her!?!? Men se websiderne.
Øvelsestimer: hver fredag med Tor Ivar/Bjørn
Erik
VIGTIGT: mød op til øvelserne!
Hvad
Principper om distribuerete objekter.
Anvender et gennemgående språk: Emerald.
VIGTIGT: Emerald er et værktøj, et eksempel –
Emerald er i sig selv IKKE formålet med kurs.
Materiale
• Rapporter
• Artikler
www.emeraldprogramminglanguage.org
www.sourceforge.org
Kontakt
Eric:
[email protected]
Haster det, så: SMS til +4540251650
Skype: ericbjul
Kurs opbygning
VIGTIGT: learning-by-doing
Fem moduler:
• forelæsning
• øvelser (vigtigt)
• en større opgave
Eksamen
Nogle obligatoriske opgaver, de sidste to med
karakter, som tæller 1/3.
Sidste 1/3 er mundtlig eksamen
Modul 1: Emerald basics
•
•
•
•
Emeralds objektbegreb
constructors, classes
Interfaces/types
Immutable types
Assignment: Install Emerald from SourceForge
Modul 1: Opgaver
• Installer Emerald på din maskine
• get language report and Emerald article
“General Purpose Lanuage”
• Skriv og kør “Hello, world” i Emerald
• Skriv et Sieve program: Et objekt som
accepterer det første tal, som det får, herefter
vil det videresende til en kopi af sig selv, de
tal, der IKKE har det første tal som divisor.
Send tallene fra 2 til 100 igennem sien!
Modul 1: Opgaver
Hvor mange har:
– installeret Emerald på egen maskine?
– kørt Hello World?
– gennemført alle opgaverne?
– været til øvelserne?
Modul 2: Concurrency, distribution
•
•
•
•
•
Hvorfor distribution er interessant for alle!
Concurrency
Monitors
Distribution model
Distribution primitives
Obligatorisk opgave:
Små programmeringsopgaver om concurrency
Modul 3: Distribution
Grundliggende principper for distribution :
• Remote References
• RPC – remote procedure call
• Implementation of RPC
• Location concept
• Simple mobility
• Asynchronous operations in Emerald
• Immutability and its uses
Modul 4: Advanced distribution
Avancerede distribution:
• Call-back concept: Node State Changes
• Emerald Virtual Machine
• Secure hash functions
• Peer-to-peer
• Napster/Nopester
• Implementation of process mobility
• Distributed Garbage Collection
En større programmeringsopgave
Modul 5: Større opgave
•
•
•
•
•
•
Heterogeneous mobility
Design Patterns: Proxy, Observer
Keys
Replication
Take-home exam
Planetlab
En større programmeringsopgave
Denne gang:
•
•
•
•
Hvorfor Distribution er interessant for alle!
Concurrency in Emerald
Principles for concurrency
Distribution
Why Distribution?
Trends:
• Moore’s law (1965): transistors/cm2 doubles
every year
• Modified Moore’s Law (1975): transistors/cm2
doubles one to two years
Consequence: Number of machine cycles has
doubled every 1-2 years since 1959.
CPUs
A consequence of Moore’s Law has been that CPUs
from 1959 to 2005 increased in clock frequency
at the same rate as the increase in transistors.
However, from 2005 clock frequencies has leveled
completely off at about 3 GHz.
Instead, the number of cores doubles every 1-2
years.
Summary: Cycles/second doubles every 1-2 years
from 1959 to (estimated) 2018!
Speed of Light
• Speed of light is approximately 300,000 km/s
• Exact definition: c = 299,792,458 m/s in
vacuum.
• In copper and optical fiber: about 1/3 slower.
In a nanosecond, light moves about 30 cm, i.e.,
about 1 foot, so 1 ns is a “light-foot”!
Latency
If two machines are 3 meters apart, latency due
to speed of light is approximately 10
nanoseconds ((3m) / (3x109m/s))
Now measure “distance” in CPU cycles:
In 1980: Intel 8080 1MHz CPU: 1/100 cycle
In 2005: Intel Pentium 3GHz CPU: 30 cycles
Exploding Universe
Chocking Consequence:
If any two computers at a fixed distance (in
meters) are upgraded often then they will
appear to move away from each other
exponentially as measured in clock cycles.
THUS everyone must use distributed
techniques!
The speed of light is, sadly, way, WAY too slow!
Opgavesæt II
• Kør hi – ho
• Programmer en barrier i Emerald, test med program der
har 4 processer, som venter på barrieren gentagne gange,
skrive ud hver gang de prøver at passerer og igen når de
passerer. Endnu en process som udløser barrieren 3 gange.
Kør programmet.
• Programmer en producer-consumer-med-buffer i Emerald.
Send tallene 1-30 igennem bufferen, hvor producer og
consumer hhv. hver 3. og 5. gang venter i 100 ms (brug
delay). Lad bufferen udskrive, når den indsætter/fjerner et
element. Brug array. Max 2 elementer.
Afleveringsfrist, 2012-02-20 kl. 23.59 norsk tid (22.59 UTC)
Sendes til Tor Ivar.