Neues BlogMein neues Blog findet ihr unter http://www.dunkelstern.de/ (ja ich hab sie endlich gekriegt \o/) Hier werde ich also nix mehr schreiben und die wichtigsten Artikel hab ich auch in mein neues Blog übernommen, Ciao Google und euer kaputtes Template System Eingestellt von dunkelstern |
||
0 Kommentare Labels: blog , hobby , internet |
Dr. HorribleJoss Whedon's neueste Idee: Dr. Horrible, eine Art Musical über einen Verrückten "bösen" Wissenschaftler der sich verliebt. Seine Geliebte verliebt sich jedoch in seinen Erzfeind Captain Hammer... Genial, aber ich weiß leider nicht wie lang das Ding nu wirklich online bleibt. Es hieß bis Mitternacht des 20. Juli, das ist aber bereits rum und man kann es immer noch Angucken. Also viel Spass Eingestellt von dunkelstern |
||
0 Kommentare Labels: fun , internet , musik |
Map-Reduce und ParallelisierungIst Google wirklich so innovativ wie es immer dargestellt wird? - Ich denke, dass das nicht unbedingt der Fall ist, aber Google erhält im heutigen Internetzeitalter einfach viel mehr Aufmerksamkeit als es Uniprofessoren oder auch andere einzelne Individuen tun.
Ein schönes Beispiel hierfür ist der so hoch gelobte "MapReduce" Algorithmus zur massiven Parallelisierung von komplexen Aufgaben (z.B. um massiven Datendurchsatz zu erzielen). Um kurz zu erklären was MapReduce eigentlich ist hole ich mal ein wenig aus hier. Wer MapReduce kennt kann also den nächsten Absatz überspringen. MapReduce ist eine Möglichkeit wie man aus einer komplexen Aufgabe eine massiv parallel verarbeitete Aufgabe machen kann. Als Beispiel nehme ich hier jetzt mal eine einfache Suche nach einem bestimmten Wort in einer Textdatenmenge - von sagen wir 30 Terabyte - an. Ein Einzelner Rechner würde hierfür wahrscheinlich Jahre benötigen, mal abgesehen davon, dass ich die Storage Lösung für diese Menge Daten gerne mal sehen würde :) Verteilt man diese Aufgabe allerdings auf viele - sagen wir mal 2000 - Rechner, so wird die Aufgabe schon sehr viel übersichtlicher. Jeder Rechner muss dann "nur" noch 15 Gigabyte durchsuchen. Diese Aufgabe ist in einem angemessenen Zeitrahmen zu erledigen und die Datenmenge verteilt sich angenehm auf die 2000 Festplatten der Rechner. Doch wie schaffe ich es jetzt diese Suche einfach programmierbar zu halten? Hier kommt nun MapReduce zum Einsatz. Als Programmierer muss ich nun lediglich die Aufgabe splitten und die Infrastruktur von MapReduce verteilt die Aufgaben automatisch auf die Rechner, ich gebe also sozusagen nicht mehr eine Aufgabe "Durchsuche die 30 Terabyte Daten" sondern viele kleine Aufgaben "Durchsuche mir das Datenfragment X (mit der Größe von 500MB meinetwegen) nach Y". Eine Art Loadbalancer verteilt die Aufgaben nun auf den Cluster und wartet auf die Ergebnisse. Die Ergebnisse, so sie denn überhaupt eintreffen werden an die sogenannte Reduce-funktion weitergegeben und diese wertet die Ergebnissdaten schon mal aus während weiterhin Rechenaufgaben verteilt werden. Theoretisch wird jeder Rechner im Cluster also 30 Aufgaben (je 500MB) zugeteilt bekommen. Der Clou an der Sache ist jedoch der, dass alles komplett Asynchron läuft, d.h. kommt nach einem bestimmten Timeout kein Ergebniss von einem Node zurück wird die Aufgabe neu vergeben (Seti at Home macht das ja ähnlich :) ) bis alle Ergebnisse eingesammelt worden sind. Hier kann nun entweder eine Reduce Kaskade die Zwischenergebnisse der Reduce Nodes weiterverarbeiten (weiteres Ausfiltern der Ergebnisse oder zusammenfassen und doppelte Ergebnisse rauswerfen) oder die Ergebnisse landen direkt wieder beim Master. Durch die asynchrone Verarbeitung ist vollkommen egal was für Nodes im Cluster sind, bzw. wie schnell diese sind, ist eine Node mit der Aufgabe überfordert oder fällt aus, so wird die Aufgabe neu vergeben. Doch warum ist das nicht innovativ? - Ganz einfach deswegen, weil das eine absolute Grundlage der Parallelverarbeitung ist! Jeder einigermaßen intelligente Programmierer kommt früher oder später selbst auf die Idee genau so eine Lösung zu implementieren wenn es um große Datenmengen oder Zeitintensive Aufgaben geht. Außerdem wird MapReduce immer mehr auch auf "normalen" PCs zum Einsatz kommen, einfach deswegen weil man heute mehrere CPU-Kerne zur Verfügung hat und diese auch ausnutzen möchte. Ein Beispiel hierzu: Ich möchte Daten komprimieren, es sind viele in kurzer Zeit, unkomprimiert packt meine Festplatte den Datenstrom nicht, daher benötige ich Echtzeitkomprimierung. Das kommt z.B. bei uns in der Firma vor wenn ich eine OpenGL Anwendung mit X-POSE-X-Record aufzeichen will, Unreal Tournament 2004 verursacht z.B. ca 250 MiB OpenGL Daten pro Sekunde, das packt keine Platte! Was mache ich also als Programmierer: Ich versuche die 3 unbelasteten CPU Kerne die sich hier gerade langweilen mit zu nutzen. Wie mache ich das am besten? - Die einfache Methode ist direkt ein MapReduce Derivat. Ich versuche den Datenstrom in kleine Pakete einzuteilen, packe diese Pakete als einzelne Aufgaben in eine Queue und lasse X Threads nen Encoder starten die sich dann die Daten aus der Queue pulen und sie verarbeiten. Das Ergebnis landet mit richtiger Sequenznummer in einer Ergebnis Queue. Diese Ergebnisse werden von einem weiteren Thread sortiert (die Encoder sind nicht bei jeder Datenmenge gleich schnell, daher das Chaos :) ) und schließlich auf die Platte geschrieben. Ich mappe also Aufgaben auf meine Encoder Threads und ein weiterer Thread (der, der auf die Platte schreibt) reduziert meine Ergebnisse (Reduce Aufgabe läuft hier also auch parallel). Das ist eigentlich ganz einfach oder? Doch warum wird das Gedöns nun Google zugeschrieben, und vor allem warum kommt darauf erst 2004 jemand? - Erstens, weil Google nen Namen dafür gefunden hat und diese Methode durch ihren ungleichförmigen Rechencluster im großen Maßstab anwendet und an zweiter Stelle wohl auch deswegen, weil sich niemand über solches Basiswissen groß Gedanken gemacht hat. Ich mein nichts gegen Google... die haben schließlich den größten Superrechner der Welt, auch wenn er nicht unter den Top500 Auftauchen wird, weil seine Rechenleistung nicht gemessen werden kann. Ich sollte auch mal Papers schreiben über so grundlegende Sachen, aber lesen wird sie wahrscheinlich eh niemand ;) Eingestellt von dunkelstern |
||
2 Kommentare Labels: computer , hobby , programmieren , technisch |
CSS Naked DayWo ist das Layout hin?
Ganz einfach heute ist CSS Naked Day, d.h. CSS Layouts werden für einen Tag auf allen Websites die Teilnehmen deaktiviert. Dabei kann man sehr gut sehen wie Barrierefrei eine Website eigentlich wirklich ist (Blinde sehen ja schließlich das Layout auch nicht :) ) Website hier: http://naked.dustindiaz.com/ Update: Hab das Layout wieder eingeschaltet :) Eingestellt von dunkelstern |
||
0 Kommentare Labels: aktion , fun , internet |
Animoto is damn cool!Hi Animoto :)
If you ever read this animoto guys: YOU ROCK! At first the story why they so absolutely rock:
Eingestellt von dunkelstern |
||
1 Kommentare |
Wumbu adoptieren... Sofort :)Hab mich lieb: Eingestellt von dunkelstern |
||
1 Kommentare Labels: fun , internet , unwichtig |
Die Riesenmaschine spricht mir mal wieder aus der SeeleDas muss ich hier unbedingt verlinken: O PROGRESS, WHERE ART THOU?
[...] Das Aufschneiden selbst, für das eine Nagelschere nicht ausreicht, vielmehr schweres Gerät erforderlich ist, erweist sich dementsprechend als Akt höheren Berserkertums und erinnert an das Zersägen gefrorener Rinderhälften mit der Flex oder den Abriss einer Scheune mit der Eingestellt von dunkelstern |
||
0 Kommentare Labels: blog , fun , grobmotorik , internet , rant |
Firewire Harddisk TimeoutsAgain I got a little hardware problem :)
The problem with my disk (it's a Western Digital MyBook Studio Edition disk) is the spinup time. The disk needs some time to recover from suspend mode and the disk controller seems to block communication while this happens. The simple idea to get this sorted out is to increase the timeout the driver waits for the drive to answer. I increased the timeout from 2000ms to 5000ms and just get one error message at the beginning, but it works good after that first timeout. The patch is against Linux 2.6.24 (yes this time I am pretty up to date :) ). It looks like that then:
The message that the driver cannot log into fw1.1 seems logical, since I've only one device connected but the disk has 2 ports to allow extending the bus with other devices Eingestellt von dunkelstern |
||
0 Kommentare Labels: archlinux , computer , geekig , linux , programmieren , technisch |
Nochmal Animoto, diesmal Defqon.1Nur 6 Bilder in 30 Sekunden obwohl die Musik nicht mal langsam ist, aber cool aussehen tut's auf jeden Fall mal, das nächste wird wohl ein Full Length Video
Eingestellt von dunkelstern |
||
0 Kommentare |
Animoto ist coolIch denke ich werde das auch noch auf der On the Rocks seite Posten :)
Eingestellt von dunkelstern |
||
0 Kommentare |