2. Der Inhalt
● Was ist ein RaspBerry Pi
● Wieso RPIs im Cluster
● Lastverteilung, Marke Eigenbau
● Praktische Erfahrungen
● Ausblick
● Qt am RaspBerry Pi
7. TouchCalc
● Eine Engine fiel vom Himmel ;) ;)
– Notdürftig auf C++ portiert
● Einsatz unter Windows Phone und Firefox OS
– Wenig Konkurrenz
– C++ ungeeignet
8. TouchCalc - II
● Aufbau als Client-Server-App
● Server rechnet, Client zeigt an
– Bessere Kontrolle über Nutzerverhalten
– Einfachere Portierung
● Nutzerakzeptanz gegeben (!!!)
10. Drei Varianten
● Modell A
– Kein LAN
– 256MB RAM
– Weniger Stromverbrauch (500 statt 700mA)
● Modell B
– LAN
– 512MB RAM
11. Möglichkeit der Kaskadierung
● Ein RaspBerry Pi B routet mehrere As
– Einsparung im Bereich Energieverbrauch
● Nur manchmal sinnvoll:
– Viel Rechenleistungsbedarf
– Kommt mit 256MB RAM aus
– Wenig Bandbreite
12. Flaschenhals USB
● SOC ist für Handys vorgesehen
– Vergleichsweise wenig BUSse, etc
● Alles hängt am USB
13. Flaschenhals USB - II
● Geschwindigkeit per USB – rund 30MB
root@raspberrypi:~# dd if=/dev/sda of=/dev/null bs=32M
count=10 iflag=direct
10+0 records in
10+0 records out
335544320 bytes (336 MB) copied, 10.6428 s, 31.5 MB/s
14. Flaschenhals USB - III
● Bandbreite über LAN
– Rund 50-60MBit
● Achtung: Kollision zwischen USB und LAN
– Für E/A-lastige Systeme ungeeignet
15. Betriebssystem herbei
● RPI hat KEINEN Bootloader, etc
● Start NUR über SD-Karte möglich
● Externer Massenspeicher
– SD
– USB (Stromverbrauch!)
16. Betriebssystem herbei - II
● Standardsystem: RaspBIAN
● Abgespecktes Debian
● An ARM-Prozessor angepasst
● Ubuntu funktioniert NICHT
17. Zustandlosigkeit
Ein Protokoll, das zwischen den einzelnen
Aufrufen keinen Zustand hält. Mehrere Anfragen
desselben Klienten werden vom selben Host als
unabhängig betrachtet...
18. Zustandslosigkeit - II
● Zustandslose Protokolle sind gut
– Skalieren sehr gut
– Verursachen keine Internodal-Kommunikation
● „Babycluster“ haben wenig
Internodalbandbreite
23. Ein kleines Beispiel
● Zwei Rpis
– 1 Leistungseinheit
● Ein BeagleBone
– 2 Leistungseinheiten
● RPI A
– 0.00-0.25
● RPI B
– 0.25-0.5
● BB A
– 0.5-1
24. Verschiedene Anfragen?
● Was ist, wenn die Anfragen verschieden sind
● Verteilung bleibt trotzdem fair
– Alle Aufgaben werden gleich verteilt
– Jeder Server bekommt gleichen Anteil an Clients
25. Problem: Single Point of Failure
● Ausfall des ServerServers
– Keine Berechnungen möglich
● Problemlösung
– Client cached Liste lokal
– Auslieferung erfolgt mit Liste „stabiler“ Server
26. Funktioniert gut
● Computersimulation mit Qt
– Von der Qualität des RNG abhängig
● Praxistext: seit 6 Monaten keine Imbalancen
– Firefox OS
– Windows Phone
31. Router sind anfällig
● 5 Router, eine grantige Assistentin
– Diverse seltsame Abstürze
● Home-Router sind unzuverlässig
– War nicht immer so (!!!)
32. MicroUSB-Lader sind teuer
● Rund 5V / 700mA per Planare
● Energieversorgung via MicroUSB ist „teuer“
● Besser: Netzteil an GPIO-PIN
– Effizienter
– Risiko von Hardwareschaden
– Sicherung „umgangen“
36. Ideales Lehrwerkzeug
● RaspBerry Pis sind preiswert
● RaspBerry Pis sind cool
– „Out-Sell Arduino on a 100 to 1 basis“
● RaspBerry Pis schränken ein
– Grenzerfahrung wg wenigen Ressourcen
– Nutzer lernen Umgang mit SSH (!)
37. Ideales Lehrwerkzeug - II
● Nahe an echtem Server
● Software lässt sich weiterverwenden
– Linux ist – meist - Linux
● Reale Server leicht einpflegbar
– ServerServer anpassen
42. Hinweis, der Form halber
● Im Saal „Grün“ findet eine QA-Session statt
● Diese ist hochkarätig besetzt
● Öffentliche Diskussion ist dort möglich
43. Native Nutzung
● Qt 4 lässt sich per apt-get installieren
● Qt Creator und Co rennen am Rpi
● Kompilation großer Programme: aua
44. Bessere Idee
● RaspBerry Pi per Cross-Compiler ansprechen
● Erstellung von Qt 5 erfolgt am Desktop
● Wird danach in SD-Kartenimage geschrieben
45. BakeQtPi
amhan@ubuntu:~/Downloads$ sudo ./bakeqtpi.bash -help
[sudo] password for tamhan:
Using 4 threads for compilation
Usage:
./bakeqtpi.bash [options]
options:
--package Downloads and builds the official QT5 Package from
qt-project.org
--webkit Builds Webkit
--http Tells git and init-repository to use http(s)
--httppi Tells the script to download the Raspbian image using http/wget
--torrentpi Tells the script to download the Raspbian image using
torrent/ctorrent
--raspbian <path> Use custom raspbian. Note, you can point this to your SD
card, assuming it's a standard
raspbian sd card using --raspbian /dev/sdX (Don't put the
partition number in)
--confclean Runs 'make confclean' before running ./configure
-v, --version Version Info
-h, --help Help and usage info
46. Aber Achtung!
Donwloading QT5 Package
--2013-09-24 21:25:02--
http://releases.qt-project.org/qt5/5.0.0/single/qt-everywhere-opensource-src-5.0.
0.tar.gz
Auflösen des Hostnamen »releases.qt-project.org (releases.qt-project.org)«...
77.86.229.90
Verbindungsaufbau zu releases.qt-project.org
(releases.qt-project.org)|77.86.229.90|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 301 Moved Permanently
Platz: http://download.qt-project.org/ [folge]
--2013-09-24 21:25:03-- http://download.qt-project.org/
Auflösen des Hostnamen »download.qt-project.org (download.qt-project.org)«...
77.86.229.90
Verbindungsaufbau zu download.qt-project.org
(download.qt-project.org)|77.86.229.90|:80... verbunden.
47. Achtung, Ubuntu!
● Wird mit veraltetem Qt Creator ausgeliefert
● Installation neuer Version ersetzt diese nicht
● qtcreator startet alte Version
– Erkennt Cross-Compiler nicht!
48. Praktisches Entwickeln
● SD-Kartenimage ist erforderlich
tamhan@ubuntu:~/opt$ sudo mount -o
loop,offset=62914560
2013-02-09-wheezy-raspbian.img
/home/tamhan/opt/rasp-pi-rootfs/