Archive for Juni, 2010

Konrad Zuse wird 100

Der Vater des modernen Rechner würde heute 100 Jahre alt werden. Konrad Zuse verstarb am 1995 im Alter von 85 Jahren. Zu seiner größten Leistung zählt, meiner Meinung nach, die Z3. Sie war der erste voll programmierbare, funktionsfähige und turingmächtige Digitalrechner der Erde. Die Z3 konnte ihr Programm von Lochstreifen lesen. Das unterschied sie von anderen Rechnern ihrer Zeit.

Liebe US amerikanischen Blogleser, die Väter des ENIAC und des Atanasoff-Berry-Computer können den Anspruch von Zuse haben. Ein nicht universeller Rechner oder ein Rechner, den ich jedes mal neu verkabeln muss, ist kein moderner Rechner.

Mehrkern oder nicht Mehrkern, dass ist die Frage

Ich habe inzwischen ein paar Experimente mit verschiedenen Mehrkernarchitekturen gemacht. Ich habe verschiende Algorithmen mit Cilk++ implementiert. Dabei kam es zu interessanten Ergebnissen. Ich hatte von superlinearen Speedup bis zu einem Speedup unter 1 alles. Aber woran liegt das, dass die Ergebnisse so weit auseinander gehen? Die schlechten Ergebnisse habe ich auf einem 2 Sockel Intel Xeon E5420-System mit 32 GB RAM gemacht. In der Mitte lag ein 2 Sockel System mit Intel Xeon X5570 und 48 GB RAM Die besten Ergebnisse lieferte ein 4 Sockel Rechner mit 16 GB RAM und AMD Opteron 852 Prozessoren.

Eine Erklärung für das unterschiedliche abschneiden der Systeme ist die Anbindung an den RAM und die Caches. Bei dem AMD-System hat jeder (Einkern-) Prozessor privaten Cache und einen eignen Speicherkontroller. Hier gibt es keine Engpässe. Bei dem Intel Xeon X5570 sind die Speicherkontroller in der CPU, aber der L2 Cache ist shared zwischen 2 Kernen. Hyperthreading hat keine Verbesserung der Laufzeit gebacht. Am schlechtesten schnitt das Intel Xeon E5420-System ab. Die beiden Prozessoren gehen über die Nordbrücke, um an den RAM zu gelangen. Ab einer bestimmten Problemgröße wurden die Algorithmen über die Speicherzugriffe sequenzialisiert.

R, die Statistiksoftware installieren

Ich wollte vor ein paar Tagen die aktuelle Version 2.11.1 von R installieren. Es gibt leider kein aktuelles R-Pakage für Solaris. Auf sunfreeware gibt es ein R-Package in der Version 2.7.2. Also blieb mir nichts anderes übrig, als R selbst zu übersetzten. Leider ging das nicht auf Anhieb. Ich habe folgende Fehlermeldung bekommen:

checking for iconv.h... yes
checking for iconv... yes
checking whether iconv accepts "UTF-8", "latin1", "ASCII" and "UCS-*"... no
configure: error: a suitable iconv is essential

Ich habe von blastwave libiconv installiert und bei meiner Solaris 10 Box noch denn gcc 4. Bei OpenSolaris habe ich das Pakage pkg:/developer/gcc/gcc-43 installiert. Es gibt CGLAGS für Sparc und für x86

rennecke@walhalla /tmp/R-2.11.1 % ./configure CFLAGS=-I/opt/csw/include \
`> LDFLAGS=-L/opt/csw/lib \
`> GCC=/usr/gcc/4.3/bin/gcc\
`> CFLAGS='<falg 1> <flag 2> <flag 3>' \
`> --prefix=/opt/R
....
rennecke@walhalla /tmp/R-2.11.1 % gmake

Update Thunderbird

Ich habe schon des öfteren über Thunderbird geschrieben. Heute ist es mal wieder ernst geworden. Ich wollte für den 3er Thunderbird auf meiner Solaris 10-Box (sparc) meine Lieblings-Plugins Lightning und Enigmail installieren. Enigmail und Lightning meinten, dass es keine Versionen für meine Platform gibt.

Die Lösung für mein Problem war ganz einfach: Für Lightning gibt es hier einen ftp-Server Hier gibt es auch das Linux-Plugin für 64-Bit. Für Enigmail muss man nun die Projektseite bemühen. Hier findet man die Plugins für Solaris und Linux. (Es wissen bestimmt alle Solaris-Nutzer, dass OpenSolaris-Plugins auch unter Solaris 10 funktionieren und umgekehrt, man sollte nur bei der Architektur sparc bzw. x86 aufpassen)