Experten-Tipps
Dominic Battre
dominic at battre.de
Fri Mar 1 20:54:05 CET 2002
Hi.
Ich bin neu hier... Ich studiere seit Kurzem in Paderborn Informatik und
habe mal ein paar Fragen an euch.
Im Sommer nächsten Jahres wird in Deutschland die zentraleuropäische
Informatik-Olympiade ausgerichtet und ich werde wohl für die Auswertung
der Programme der Teilnehmer verantwortlich sein.
Zur kurzen Erläuterung: 40 Teilnehmer werden an zwei Tagen jeweils 5
Stunden lang versuchen Informatik-Probleme zu lösen. Die Aufgaben sind
so konstruiert, dass es darum geht Algorithmen für bestimmte Probleme zu
finden und sie korrekt zu implementieren.
Bei jedem Problem müssen Eingabe-Daten aus einer Datei gelesen und die
Ausgabe in eine Datei geschrieben werden. Zu jeder Aufgabe gibt es 10
Testfälle, welche die Programme selbstständig lösen können sollen (dafür
gibts dann Punkte). Ich denke, das reicht fürs erste an Erläuterung
(näheres bei Interesse unter http://olympiads.win.tue.nl/ioi/ - Aufgaben
findet man z.B. unter
http://olympiads.win.tue.nl/ioi/ioi2001/contest/index.html)
Wie gesagt, ich werde wohl für die Auswertung verantwortlich sein. Die
Auswertung soll vollständig automatisch und parallel auf mehreren
Computern stattfinden. Abgesehen von der Parallelität läuft es schon
ganz gut, aber ich suche noch Experten-Rat auf einigen anderen Gebieten:
1) Die Teilnehmer programmieren wahlweise unter Linux oder unter
Windows. Wie sammelt man am geschicktesten (und natürlich voll
automatisch) die Dateien ein? Ich habe an ssh bzw. scp gedacht, habe da
aber mit Windows bedenken... Außerdem scheint scp kein Passwort als
Parameter zu wollen, sodass man seinen Public-Key auf alle Rechner
bringen muss. Das ist nicht ganz einfach.
Weiterhin soll es für die Auswertungssoftware einfach sein, die Daten
von einem Rechner zum anderen zu kopieren, für die Teilnehmer aber
unmöglich.
2) Die Rechner müssen nach dem ersten Wettbewerbs-Tag komplett wieder in
ihren Ursprungszustand versetzt werden. Hat einer Erfahrungen mit
Klon-Software? Was würdet ihr empfehlen? Evtl. was kostenloses? Es wäre
gut, wenn die Software sowohl Linux- als auch Windows-Partitionen
unterstützt und den Bootmanager installieren kann. Wie macht man die
Nacharbeiten (IP-Adresse, Hostname, User anlegen, ...) am
geschicktesten? Perl-Skript? Alternativ könnte man bestimmt vieles davon
zentral erledigen (DHCP, Domäne, ...) aber davon habe ich noch wenig wissen.
3) Wie stellt man sicher, dass die Teilnehmer während des Wettbewerbes
nicht miteinander kommunizieren können? Um drucken zu können, sind wir
durchgängig auf das Netzwerk angewiesen, d.h. wir können nicht die
Switches ausschalten. Gibt es da Hardwarelösungen?
IP-Tables/Gateway-Konfigurationen auf Clientseite können wir wegen
Windows-Clients wohl nicht nutzen. Ich habe an das loggen des Traffics
mit tcpdump gedacht, aber das finde ich nicht so 100%ig...
4) Wir verhindern mit einem Kernel-Modul, dass die Programme der
Teilnehmer bei der Auswertung über das Netz kommunizieren können oder
nicht erlaubte Dateien öffnen. Zusätzlich laufen die Programme in einem
chroot-jail. Es wäre wünschenswert, wenn die Programme was den
Speicherkonsum betrifft, beschränkt werden könnten. Hat da einer
Erfahrungen mit? Was mit Kernel 2.2.x ganz gut funktioniert, hat unter
Kernel 2.4.x anscheinend keine Wirkung. (setrlimit(2))
5) Was würdet ihr für eine Distribution empfehlen? Es ist wichtig, dass
sie gute Internationalisierung enthält und nicht allzuschwer zu
administrieren ist...
So, das waren jetzt eine Menge Fragen. Viele der Fragen lassen sich auf
die Frage nach gescheiter Netzwerkadministration zurück führen. Hat
einer interessante Literatur-Tipps / Links diesbezüglich?
Ich werde auf jeden Fall mal zum nächsten Treffen in Paderborn kommen
und freue mich, euch kennen zu lernen. Habt ihr einen bestimmten Platz
im Pub, wo ihr immer sitzt? Oder erkenne ich euch an den
thinkgeek.com-T-Shirts?
Dominic
More information about the Linux
mailing list