Ich arbeite im Moment daran, eine kleine Testimplementation des Sortieralgorithmus, der für die parallele Version von AMIGA verwendet werden soll, zu schreiben. Es geht prinzipiell darum, ganz viele Teilchen (mehr, als ein Computer alleine im RAM halten kann, daher werden die Teilchen einfach auf alle verfügbaren Computer verteilt) räumlich zu sortieren; damit ist es dann natürlich noch nicht getan, aber das ist eine andere Geschichte. Die Entwicklung läuft natürlich über mein lokales Subversion Repository, aber vielleicht hätte ich es doch über CVS machen sollen, um micht weiter dran zu gewöhnen. Aber dann hätte ich ja nicht dieses tolle Tool gefunden... aber eins nach dem anderen.
Gestern artete das Rumhacken ein wenig aus, als ich mich entschlossen hatte, statt langweiligen Zahlen gleich Teilchen zu sortieren (im Endeffekt sortiert man natürlich trotzdem Zahlen), und so wurde aus dem 'alles in einer Datei'-Gewurschtel dann ein etwas strukturierteres Etwas (Projekt wäre wohl zuviel gesagt) wurde. Und dann fiel mir gestern abend ein, doch mal wieder die GNU Autotools hervorzukramen. Schließlich habe ich ja sogar das
Autobook in gedruckter Form und auch schon vor ein paar Monaten ein wenig mit dem Konzept herumexperimentiert.
Es hat eine Weile gedauert, bis ich die Anfangshürden überwunden hatte (glücklicherweise habe ich ja noch die Sourcen vom ersten Experiment), aber dann ging es sogar halbwegs gut. Bis es darum ging, '--enable-verbose' als Option für das configure-Skript hinzuzufügen. Also das Hinzufügen war einfach, nur hat es nicht das gemacht, was es sollte, nämlich -DVERBOSE zu setzen. Das wollte und wollte nicht funktionieren. Heute, nach etwas Recherche, hat es dann doch geklappt, ich hatte das Define lediglich im falschen Makefile.am gesetzt.
Jetzt gibt es noch ein paar neue Features: Das configure-Skript sucht nach einer
MPI2-Implementation (man kann sogar mittels --with-mpich2=DIR angeben, wo es installiert ist, boah!) und bindet dann die richtigen Bibliotheken ein. Damit kann ich dann darauf verzichten mpicc als Compiler (genaugenommen Compiler-Wrapper) zu verwenden. Man ist begeistert. So richtig schlüssig bin mir zwar nicht, ob das so eine gute Sache ist, aber zum Zwecke der übung ganz gut.
Um das Ganze dann 'richtig' zu machen, wollte ich noch aus den Commit-Messages ein hübsches ChangeLog erzeugen. Dafür liefert Subversion praktischerweise gleich ein Perl-Skript mit (gnuify-changelog.pl), aber irgendwie hat mich das nicht vom Hocker gehauen. Nach etwas Googeln fand sich dann mit
svn2cl ein sehr praktisches Tool, das die XML-Ausgabefertigkeiten von svn nutzt. Wirklich sehr praktisch und hübsch.
Die Testimplementation kommt natürlich auch voran; ist ja nicht so, daß ich nur Bastelkrams drumrum machen würde. Jeder Prozeß für sich kann schonmal seine Partikelliste sortieren, an der Kommunikation hapert es allerdings noch. Aber nachdem ich jetzt ja so ein fesches Framework habe, macht es gleich noch mehr Spaß da rumzuprogrammieren *hüstel*.
Hmm. Da war ich doch eine Weile ruhig. Das liegt aber im Moment daran, daß es soo viel zu tun gibt, außerdem war ich letzte Woche noch in Dresden, dazu gleich mehr. Aber nun habe ich gerade erstmal eine Weile mit MPI (genaugenommen MPICH2) rumgekämpft,
Tracked: Mar 09, 02:45