Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2010  »  12  »  Wissenstransfer  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© chriskuddl | ZWEISAM, Photocase.com

Aussichtsreiche Würfelkandidaten unter der Lupe

Wissenstransfer

von Nils Magnus
Erschienen im Linux-Magazin 2010/12

Obwohl er einfachen Regeln gehorcht, fordert der Würfelwettbewerb Lösungen heraus, die erst einmal in ein Programm gewandelt sein wollen. Die Implementation humanoider Vorgehensweisen konkurriert dabei mit Brute-Force-Algorithmen. Doch vor dem Showdown steht erst einmal Systempflege.

121 Bots tragen die Meisterschaft im Würfeln beim in Linux-Magazin 09/10 ausgelobten Wettbewerb gegeneinander aus [1]. Was erst als einfache Aufgabe erschien, entpuppte sich als ausgewachsene Logistikfrage. Dass der Wettbewerb die Rahmenbedingungen der Teilnahme vergleichsweise locker spezifiziert, bezahlte die Jury teuer mit dem Einrichten der Turnierumgebung. Allein das Extrahieren der Bots und das Sichten der Begleitschreiben forderte einige Zeit. Anschließend ging es darum, die Bots in einer einheitlichen Umgebung zu entpacken und die notwendige Software zu installieren.

Zwar haben sich die meisten Teilnehmer an die Vorgaben gehalten, die benötigten Debian-Pakete für einen aktuellen Ubuntu-Server anzugeben, aber einzelne baten auch darum, Softwarepakete aus Quell-Repositorys herunterzuladen und zu übersetzen. Manche Sprachen wie Haskell oder Ruby setzen zudem auf eigenen Bibliotheksverwaltungen. Inklusive Abhängigkeiten fanden insgesamt 299 neue Pakete für Compiler, Interpreter und Bibliotheken gegenüber der Standardinstallation ihren Weg auf den Server.

Die meisten Teilnehmer haben ein Makefile beigelegt, mit dem sich sowohl der Code übersetzen als auch der resultierende Bot starten ließ, sofern es sich um eine Compilersprache wie C oder Java handelte. Aber auch bei PHP, Perl oder Python kann das helfen, besonders wenn alle Programme gleichermaßen skriptgesteuert starten sollen.

Kontrahenten abschirmen

Jeder Bot bekam aus Sicherheitsgründen seinen eigenen Sandkasten, wenn auch keinen Sicherheitstrakt: Pro Teilnehmer gibt es auf dem Server einen eigenen Benutzer mit passenden Schreib- und Leserechten, damit niemand über Nachbars Zaun schielen kann, um dort Würfelgeheimnisse zu stehlen. Um die einzelnen Spieler von einem zentralen Verteiler aus zu starten, bekam die Konfigurationsdatei von Sudo eine Anpassung, die die Benutzerübergänge modellierte.

Verkleideter Gameserver

Bei einer anderen Konfigurationsfrage behalf sich die Redaktion mit einem Trick: Die meisten Einsendungen hatten den Host »wettbewerb.linux-magazin.de« und Port 3333 voreingestellt. Anstatt alle diese Angaben auf den zum Turnierbetrieb auserkorenen Mehrkernrechner zu ändern, trug sie in »/etc/hosts« einfach 127.0.0.1 für diesen Hostnamen ein. Durch den Betrieb auf Localhost versprach sie sich einen schnelleren Durchsatz.

Bei näherer Betrachtung war das aber gar nicht der limitierende Faktor: Spielten in der Vorrunde alle Bots in dem Tempo, das sie für richtig hielten, galt es nun die Spielpaarungen in eine deterministische Reihenfolge zu bringen, damit auch jeder gegen jeden antritt. Diese Serialisierung erwies sich als komplizierter als erwartet, zumindest wenn es darum geht, eine größere Anzahl von Matches parallel zu absolvieren.

Der vom Magazin-Leser Roman Held entwickelte Dice-or-Die-Server ist immerhin in der Lage, rund 120 Begegnungen auf einmal zu koordinieren. Da weder der Server noch das Würfelprotokoll Synchronisationsmechanismen zwischen den einzelnen Spielen vorsehen, muss der Turnierleiter abschätzen, ob eine Paarung die virtuellen bereits Würfelbecher in die Hand genommen hat, bevor er die nächsten beiden Kandidaten an den Tisch bittet. Dazu kommt die Erkenntnis, dass zu viele Lagen an Aufrufskripten ihren Tribut zollen: Ein Steuerskript wählt die Paarungen aus, ein zweites bereitet den UID-Übergang zu den individuellen Bots vor, ein Wrapper startet Make mittels »make game«, manchmal zunächst ein Netcat-Wrapper (siehe "Bash Bashing" in dieser Ausgabe), der dann einen Interpreter aufruft, der seinerseits schließlich das eigentliche Skript ausführt. Solche Stacks belegen viele Ressourcen, wie Abbildung 1 zeigt. Viel mehr als 16 parallele Bots sind kaum handhabbar.


Abbildung 1: Gut ausgelasteter Wettbewerbsort: Während des Turniermodus hat der Mehrkern-Server einiges zu tun. Tiefere Einkerbungen in der Lastkurve entstehen übrigens vorrangig durch einzelne Prozesse, die hängen und damit weitere Spielpaarungen blockieren.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Eurovision Bot Contest Über 120 Teilnehmer stürmen beim Programmierwettbewerb die Würfelbecher
Vom Thron gestürzt Die besten Lesereinsendungen des Programmierwettbewerbs
Programme von Welt Software internationalisieren mit Gettext
Ready, Set, Go! Google erfindet neue Programmiersprache
Erweiterungsbau Mit NSE den Netzwerkscanner Nmap erweitern
Parallelarbeit Bash-Skripte, die Multicore-Prozessoren auslasten
Whitepaper
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)