[Rezension] Java MapReduce mit Hadoop

March 27th, 2015

Rezension des Buchs: Donald Miner, Adam Shook. MapReduce Design Patterns: Building Effective Algorithms and Analytics for Hadoop and Other Systems. O’Reilly. 2012.

MapReduce ist ein “Korsett” und zwingt den Entwickler in enge Grenzen. Daher macht es Sinn, dieses Buch zu lesen, damit man schnell die üblichen Tricks und Kniffe kennenlernt. Ähnlich ist es ja beim Lernen von anderen Paradigmen auch, wie z. B. Devide-and-Conquer oder Rekursion. Man begreift das allgemeine Prinzip schnell, man muss aber lernen, wann und wie man es am besten einsetzt.

In diesem Buch werden typische Anwendungsfälle für Hadoop in Java MapReduce implementiert. Dabei liegt der Schwerpunkt nicht auf den eigentlichen Entwurfsmustern (“design patterns”), wie der Titel des Buches suggeriert, sondern auf den konkreten Implementierungen. Wer nur an der Implementierung dieser Pattern interessiert ist, wird mit diesem Buch gut bedient. Man sollte aber vorher schon erste Erfahrungen mit Hadoop gemacht haben und Java gut kennen.

Wer allerdings wirkliche “Entwurfsmuster” für beliebige MapReduce-Frameworks sucht, wird mit diesem Buch nicht 100% glücklich. Die im Untertitel erwähnten “other systems” kommen definitiv zu kurz. Auch wer Hadoop mit Pig, Hive oder Apache Crunch benutzt kann sich das Lesen des Buches evtl. sparen oder nur schnell durchfliegen. Die langen Java-Listings kann man sich dann nämlich sparen.

Wer allerdings wirklich wissen will, was hinter Pig passiert, sei es bei der Fehlersuche oder bei Performance-Problemen, der kann sich hier schon den einen oder anderen Tipp anlesen.

[Rezension] Gute Einführung in C++ AMP

March 16th, 2015

Rezension des Buchs: Kate Gregory. Ade Miller. C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++. Microsoft Press. 2012.

Dieses Buch ist eine gute Einführung in die Programmierung mit C++ AMP. Leider ist das Buch zum Zeitpunkt der Rezension das einzige Buch über C++ AMP, so dass ich es nur mit anderen Büchern über CUDA und OpenCL vergleichen kann. Aber den Vergleich hält das Buch stand und hat sich solide 4 Sterne verdient. Die Reihenfolge fand ich in Kapitel 2 ein bisschen ungünstig, aber das hat sich im nächsten Kapitel wieder gelegt. Kapitel 2 sollte man beim ersten Lesen überspringen und erst am Ende lesen. Denn Kapitel 2 ist über das schon etwas kompliziertere n-body Problem und auch noch mit DirectX-Grafik. Das ist didaktisch nicht klug, das am Anfang zu behandeln. Dann gibt es da noch ein paar Kleinigkeiten, wie z. B. das ständig std::vector<> und std::shared_ptr<> im Programmcode geschrieben wird. Mich stört das “std::”.

Aber alles in allem ist man nach diesem Buch bereits ein fortgeschrittener GPU-Programmierer, der schon ein gutes Verständnis von der Thematik hat. Notwendig sind Vorkenntnisse in C++, STL und der parallelen Programmierung. Die Beispielprogramme wurden an VS 13 angepasst.

[Rezension] Das beste Buch über OpenCL 1.x

February 23rd, 2015

Rezension des Buchs: Matthew Scarpino. OpenCL in Action: How to Accelerate Graphics and Computation. Manning. 2011.

Für mich persönlich ist dieses das beste Buch, um OpenCL zu lernen. Es ist eine hervorragende Einführung in OpenCL 1.1.

Das Besondere an diesem Buch ist, das der Autor versucht, die Programme wirklich zu erklären. Man erfährt die Gründe für seine Design-Entscheidungen. Das Lernen von OpenCL ist keine so einfache Sache. Bevor man zum Programmieren kommt, muss man schon eine Menge Infrastruktur beherrschen. Meiner Meinung nach löst Matthew Scarpino dieses Problem hervorragend.

Die Beispielprogramme hingegen sind aus verschiedenen Themenbereichen, gut kommentiert und teilweise sehr mathematisch. Das störte mich aber nicht, denn OpenCL wird auch oft im Embedded Bereich eingesetzt, der oftmals sehr mathematisch ist, wie z. B. die Signal- oder die Bildverarbeitung.

Das Buch hat inzwischen allerdings schon ein paar Jahre auf dem Buckel. Die Performancetipps müssten inzwischen wohl auf den Prüfstand. Und auch das Kapitel über die Schnittstellen zu anderen Programmiersprachen, Aparapi, JavaCL, PyOpenCL sind wahrscheinlich etwas veraltet.

Aber das Buch enthält so viel Wissen über OpenCL 1.1, so dass es auch heute noch (Februar 2015) *DAS* Buch zum Einstieg in OpenCL ist.

P.S. Ich habe als technischer Editor an diesem Buch mitgearbeitet (siehe S. xvii).

[Rezension] Fortgeschrittenes ‘git’

January 29th, 2015

Rezension des Buchs: Mike McQuaid. Git in Practice. Manning. 2014.

Ich benutze git zwar schon ein paar Jahre, wollte aber mehr Hintergrundwissen haben und komplexere Abläufe kennenlernen. Das ist dem Buch zum einen gelungen, trotzdem habe ich irgendwie das Gefühl, das das nicht alles gewesen sein kann. Als Beispiel wollte ich wissen, wie man große Dateien endgültig aus dem Repository und aus der Historie entfernen kann. Auch wird “git replace” nicht erwähnt.

Nun gut, ich habe trotzdem viel aus diesem Buch gelernt und die Sachverhalte werden gut beschrieben und erklärt. Leute mit Grundwissen über git können dieses Buch mit Gewinn lesen. Experten werden aber nicht davon profitieren.

[Rezension] Zu kurzer Einstieg

January 27th, 2015

Rezension des Buchs: Michael P. McGrath. Understanding PaaS. O’Reilly. 2012.

Es ist ein sehr kleines Büchlein über die Grundlagen des Cloud Computings. Es kann gelesen werden, um sehr schnell in die Thematik einzusteigen. Es ist eher für Entwickler geschrieben, als für CEOs.

Die Beispiele mit OpenShift sind leider schon etwas veraltet, geben aber die ungefähren Arbeitsschritte wieder.

Also nur als ersten Schritt lesen. Und es ist sehr kurz. Aber das Geschriebene ist gut.

[Rezension] Solide Optimierungstipps

January 26th, 2015

Rezension des Buchs: Gregory Ruetsch, Massimiliano Fatica. CUDA Fortran for Scientists and Engineers. Morgan Kaufman. 2013.

Beim Stöbern in diesem Buch habe ich gesehen, dass die Autoren wertvolle Optimierungstipps geben. Da bin ich neugierig geworden. Ich selber bin kein Fortran-Programmierer, kann daher das Buch aus dieser Perspektive nicht beurteilen. Aber für mich C++-Entwickler bietet dieses Buch viele wertvolle Hinweise über die Optimierung von CUDA-Kerneln. Als Beispiel kann hier die mathematisch präzise Analyse der “Fused Multiply Add (FMA)”-Operation in Abschnitt 5.2.1 genannt werden. Das Buch wurde von zwei sehr kompetenten Autoren geschrieben und ist sehr solide. Die Autoren arbeiten beide bei NVIDIA, verfügen daher über Insider-Informationen.

Das Buch ist leider schon ein wenig veraltet, die aktuelle Maxwell-Architektur ist erst 2014 erschienen. Im Buch wird die Kepler-Architektur bis zur Compute Capability 3.5 behandelt.

Einen Punkt Abzug gibt es aber doch, weil im Anhang auf 61 Seiten Source-Code ausgedruckt wurde. Das ist doch heute nicht mehr zeitgemäß, den kann man sich herunterladen.

[Rezension] Die wunderbare Welt von P2P

January 21st, 2015

Rezension des Buchs: Jeffrey Tucker. Bit by Bit: How P2P Is Freeing the World. Liberty.me. 2015.

In diesem Buch erläutert der Autor die weltanschaulichen Hintergründe von Peer-to-Peer-Netzwerken und von Bitcoin. Der Autor konzentriert sich hier auf seine philosophische und ökonomische Sichtweise, dem Libertarismus, einer Marktwirtschaft mit Privateigentum ohne Staat.

P2P-Netzwerke ermöglichen die “Equipotency”, d.h. die gleiche Verteilung von “Power” an alle Teilnehmer. Der Autor bringt hier ein Beispiel, das mit Bitcoin digitaler Handel auch für ärmere Menschen möglich ist, die keine Kreditkarte bekommen oder in einem Land ohne Kreditkartensystem leben.

Aufgrund der dezentralen Organisation lassen sich P2P-Netze nicht einfach verbieten oder zensieren. Sie sind daher nach Meinung des Autors ein Garant der persönlichen und der wirtschaftlichen Freiheit.

Schön zu lesen ist die Analyse von Bitcoin als Währung aus Sicht der österreichischen Schule der

[Rezension] Fast definitiv

January 16th, 2015

Rezension des Buchs: Kristina Chodorow. MongoDB: The Definitive Guide. O’Reilly. 2013.

Das Buch ist ein gelungener Überblick auf MongoDB sowohl aus Entwickler- als auch als DBA-Perspektive. Jedenfalls soweit ich das als MongoDB-Einsteiger mit mehr als 11 Jahren Data-Warehousing-Projekterfahrung sagen kann. Es ist mein erstes Buch über MongoDB und man kann es daher auch als Einstieg benutzen.

Warum nur vier Sterne?

- Ich hätte gerne das erlernte Wissen anhand von Aufgaben überprüft. Hier fehlen Beispielaufgaben.

- Mir fehlt auch ein Überblick über das gesamte MongoDB-

[Rezension] Nur teilweise elegant

January 12th, 2015

Rezension des Buchs: Brian Greene. The Elegant Universe: Superstrings, Hidden Dimensions, and the Quest for the Ultimate Theory. Kindle. 2011 (orig 1999).

Im ersten Teil des Buches werden die Grundlagen der Relativitätstheorie und der Quantenmechanik anschaulich und mit tollen Beispielen erklärt. Es ist die beste Einführung, die ich bisher gelesen habe und klar 5 Sterne.

Mit dem zweiten Teil habe ich allerdings Probleme, denn er ist nicht bodenständig genug. Der Autor schreibt z. B. in Kapitel 11 als “Ich-Erzähler” über seine Entdeckungen und mit welchen Professoren er diskutiert hat. Das liest sich nicht wie ein Sachbuch, sondern wie eine Autobiographie. Der Autor verliert hier die kritische Distanz zu seiner eigenen Forschung. Und er vergisst meiner Meinung nach auch zu oft, dass es sich bei der String “Theory” nur um eine Hypothese handelt.

Denn in der Physik werden mathematische Modelle erstellt, die die physikalische Realität möglichst genau darstellen sollen. Zuerst wird eine Vermutung, eine Hypothese als Menge von Formeln aufgestellt. Erst wenn die Formeln genügend oft in Experimenten überprüft bzw. verifiziert wurden und sie hinreichend genaue Ergebnisse liefern, werden sie als “korrekt” eingestuft und das Modell wird dann als “Theorie” bezeichnet. Korrekterweise dürfte man daher nicht von “string theory” oder “big bang theory” sprechen, da es sich noch um Hypothesen handelt.

Die “String-Theorie” ist zum jetzigen Zeitpunkt nur ein mathematisches Modell, ein Konzept. Es ist eher theoretische Mathematik als Physik. Die String-Teilchen sind so klein, man kann sie weder physikalisch untersuchen, noch mit Computern sinnvoll simulieren.

Es ist wohl noch zu früh für die String-Theorie (bzw. die Superstring- oder M-Theorie). So forschen die Forscher schon mal auf Vorrat in der Hoffnung, dass sie die fehlenden Puzzleteile finden. Ob es ökonomisch sinnvoll ist, eine Nadel in einem Heuhaufen zu suchen, ist eine andere Frage. Das ging nicht in meine Benotung ein. Mir ist der Autor nicht selbstkritisch genug.

[Rezension] Mein Lieblings-Geschichtsbuch

January 12th, 2015

Rezension des Buchs: James Gleick. The Information : a history, a theory, a flood. Pantheon Books. 2011.

James Gleick ist ein wahnsinnig belesener Mensch, der in diesem umfangreichen und lesenswerten Buch die Geschichte der Information und der Informationsverarbeitung darstellt. Äußerst bemerkenswert ist, dass sich der Autor in beiden “Kulturen”, den Geisteswissenschaften und den Naturwissenschaften, sehr gut auskennt.

Wie der Untertitel des Buches bereits verrät, wird zuerst die Geschichte der Information erläutert. Hier macht der Autor einen großen Bogen von Trommelsprachen und Keilschriften über den Buchdruck, Wörterbücher, Charles Babbage, Telegraphie, Morse-Codes und Telefonie hin zu den heutigen Computern. Es ist äußerst bemerkenswert, was der Autor da alles zusammengetragen hat. Sehr gut gefallen hat mir, das hier auch die physikalischen Grundlagen der Dampfmaschinen bzw. der Elektrizität berücksichtigt werden.

Später im Buch wird die Entwicklung der modernen Logik, der Informationstheorie und der Wahrscheinlichkeitsrechnung und deren Grundlagen erklärt. Für ein Buch, das sich an die Allgemeinheit richtet, habe ich hier als Informatiker keine Wünsche offen.

Interessant beschrieben werden auch die Auswirkungen auf die anderen Fächer wie z. B. der Physik oder der Psychologie. Die Diskussionen zur Zeit der Gründung von neuen Fächern, wie z. B. der Kybernetik, der Informatik und der Kognitionswissenschaften sind interessant.

Schließlich wird abschließend die heutige Situation beschrieben und die Datenflut behandelt. Aber diese Entwicklung ist noch nicht abgeschlossen, denn es wird ja z. B. heute von einem “Internet der Dinge” geredet, das noch mehr Geräte miteinander verbinden soll und noch mehr Informationen verarbeiten soll.

Es ist bei diesem komplexen Thema sehr schwierig, ein Buch zu schreiben, dass sich an die Allgemeinheit richtet und von allen akzeptiert wird. Es dürfen einerseits nicht zu viele und zu komplexe mathematische Formeln vorkommen, noch dürfen die kulturellen Hintergründe zu ausführlich beleuchtet werden. Ansonsten springt eine der Zielgruppen ab. Ich finde, James Gleick hat hier einen vernünftigen Kompromiss gefunden.

Fazit: Das Buch ist kein Lehrbuch der Informationstheorie, aber es ist als Geschichtsbuch und Grundlagenbuch sehr lesenswert.


Copyright © 2007-2015 Jörn Dinkla. All rights reserved.

###ENDMATTER