Wie arbeitet man mehrere Projekte HINTEREINANDER ab ?

Grid-Computing, technische Entwicklung von Distributed Computing...
Nachricht
Autor
Wzmesse

#1 Ungelesener Beitrag von Wzmesse » 04.01.2002 22:17

Ich poste zum ersten Mal hier, deswegen möchte ich um Nachsicht bitten, wenn ich weit aushole und "einen Roman schreibe". Ich weiß nicht, welche Informationen Vorrang haben und welche eher unwichtig sind, deshalb schreib ich einfach mal alle auf. Ich habe aber mit Distributed Computing schon seit fast 3 Jahren Erfahrung (seit 1999 SETI @ HOME). Letztes Jahr sind noch THINK und FOLDING @ HOME dazugekommen, und deshalb ergibt sich folgende Frage:

Es ist inzwischen wünschenswert, eine Windows-Lösung für das "hintereinander-abarbeiten" mehrerer Clients zu erstellen. Insbesondere bei THINK kommt es in letzter Zeit häufiger vor, dass unvorhergesehen der Client stoppt und eine Verbindung zum Web verlangt. Da ich oft erst nach mehreren Stunden an den PC zurückkehre, ist er seitdem sinnlos gelaufen und hat Strom verbraucht. Auch passiert es teilweise, dass ich Clients, die schon ca. bei 95 % des Pakets angelangt sind, die Nacht über durchlaufen lasse und einen weiteren Client parallel laufen lasse (weil ich ja weiß, das die restlichen 5 % höchstens noch ein paar Stunden brauchen werden, ich aber nachts auch mal gern schlafen würde *ggg*) ! Das belastet das System recht stark (meinem Eindruck nach) und ist ausserdem umständlich.

Bequemer wäre es, eine Windows-Lösung dafür zu finden. Ich denke da an eine Batch-Datei, vielleicht kennt jemand aber auch einen anderen Weg.

Konkret geht es vorerst um THINK und FOLDING @ HOME, sollte später aber auch auf andere Clients anwendbar sein. Die Lösung sollte erkennen, wenn ein Client bei 100 % angelangt ist oder aus sonstigen Gründen stoppt und dann, möglichst sofort, den nächsten Client starten und ihn weiterlaufen lassen.

Ist so etwas möglich ? Gern stehe ich auch für Rückfragen per eMail oder ICQ bereit.



Gruß



Michael (Wzmesse) <IMG SRC="/phpBB/images/smiles/icon_confused.gif" alt="Confused">

Benutzeravatar
Bananeweizen
Urvater
Urvater
Beiträge: 2867
Registriert: 14.06.2001 01:00
Wohnort: Kornwestheim

#2 Ungelesener Beitrag von Bananeweizen » 04.01.2002 22:42

Hi und erstmal ein herzliches Willkommen !



Ich selbst habe UD bei mir nicht laufen, würde aber mal den UD Monitor als (Teil)Lösung vorschlagen:



http://www.rechenkraft.de/tools.php?id=43



Der cacht mehrere WUs, so daß Verbindungsprobleme deinen Rechner nicht mehr aushebeln. Außerdem kann das Programm auch ein anderes Programm nach Beendigung einer WU starten.



Vielleicht findest du bei den restlichen Tools ja auch noch andere brauchbare Sachen. <IMG SRC="/phpBB/images/smiles/icon_smile.gif" alt="Smile">



Eine universelle Lösung ist mir nicht bekannt.



Ciao, Michael.

Benutzeravatar
vfrey
GPU-Einsetzer
GPU-Einsetzer
Beiträge: 2322
Registriert: 28.06.2001 01:00
Wohnort: Kirchseeon

#3 Ungelesener Beitrag von vfrey » 04.01.2002 22:45

Hallo,



als erstes muß ich zugeben, dass ich Deine Frage zwar nicht beantworten kann, die Antwort aber selbst gern wüsste... <IMG SRC="/phpBB/images/smiles/icon_blush.gif" alt="blush">



Das einzige was ich Dir anbieten kann, sind ein paar Schleichwege, um den Computer nicht nutzlos laufen zu lassen.



Grundsätzlich sollte Dein Browser eine Möglichkeit zum Autoconnect anbieten. Beim IE läuft das z. B unter Internet Options -> Connections. Da die von Dir erwähnten DC-Clients versuchen, eine Verbindung zum Netz herzustellen, müsste diese Option eine Online-Verbindung herstellen. Da Du gleichzeitig einstellen kannst, dass die Verbindung nach z. B. 5 Minuten wieder getrennt wird, sollten Dir hierbei also auch keine allzu hohen Telekommunikationskosten entstehen. Da die hier von mir beworbene Methode bei mir selbst leider nicht funktioniert (Provider ist T-Online, die automatische Verbindung wird aber immer versucht, über einen LeastCostRouter aufzubauen), bitte ich einen der anderen, hierzu vielleicht noch was zu sagen.



Eine weitere Möglichkeit ist das Cachen von WUs. F@H bietet sowas nicht an, UD eigentlich auch nicht. Es gibt aber das recht nützliche Tool UDMonitor, mit dem Du beliebig viele virtuelle Computerslots aufbauen kannst. Bei mir zuhause laufen z. B. 6 Slots und ich habe keinerlei Probleme die Rückgabezeiten der WUs einzuhalten.



Genug gefaselt, vielleicht hilft's Dir ein bißchen. <IMG SRC="/phpBB/images/smiles/icon_smile.gif" alt="Smile">

Wzmesse

#4 Ungelesener Beitrag von Wzmesse » 04.01.2002 23:25

Das ist ja soweit schonmal ziemlich gut, und ging auch recht schnell. Ich probiere den Tipp mit dem UD Monitor mal aus, sollte sich was Neues ergeben, melde ich mich wieder.

Weiterhin die Bitte an die anderen, wenn jemand noch einen anderen Weg weiß, der hier noch nicht vorgeschlagen wurde, bitte meldet euch.

Vielen Dank im Voraus.



Michael <IMG SRC="/phpBB/images/smiles/icon_good.gif" alt="good">

Benutzeravatar
Der Diplomat
Powerknopf-Verweigerer
Powerknopf-Verweigerer
Beiträge: 1470
Registriert: 21.07.2001 01:00
Wohnort: Landsberg

#5 Ungelesener Beitrag von Der Diplomat » 05.01.2002 10:26

Grundsätzlich sollte das erstellen eines Programms keiner Grundlagenforschung bedürfen. Schließlich erkennt der distributed.net-Client ja auch, wenn die CPU durch andere Programme belastet wird und fährt zurück.



Es gäbe also die Wahl, in den Newsgroups die Idee zu entfachen, in der Hoffnung ein Freeware-Programmierer würde diese Idee aufgreifen und zu einer Lösung bringen. Dabei müsste das Programm nur erkennen, dass a) Programm X läuft, b) die CPU auf einmal idled, c) Programm Y starten.



Oder aber man bedient sich den hier auf den Seiten von Rechenkraft.de vorgeschlagenen Lösungen: Folding@Home laufen zu lassen und ein Programm, dass nur dann sich die CPU greift, wenn Folding@Home idled. Dummerweise ist mir aufgefallen, dass Folding@Home schon sehr gut programmiert wurde, also selbst zurückfährt. ECCp-109 fährt ja fast voll, während Folding@Home läuft. Vielleicht ist da der distributed.net-Client mit OGR-25 geeigneter. Will sagen: Mehrere Clients gleichzeitig laufen lassen.



Eine weitere Möglichkeit ist es Hilfstools einzusetzen wie die hier vorgeschlagenen (UDMonitor, SetiQueue, etc.), leider gibt es die nicht für alle Projekte.



Michel

<font size=-1>[ Diese Nachricht wurde geändert von: Der Diplomat am 05.01.2002 10:27 ]</font>

Benutzeravatar
Bananeweizen
Urvater
Urvater
Beiträge: 2867
Registriert: 14.06.2001 01:00
Wohnort: Kornwestheim

#6 Ungelesener Beitrag von Bananeweizen » 05.01.2002 10:47

Mir ist grad noch was eingefallen: Sofern man einen Temperatursensor auf dem Board hat (und das ist ja heutzutage die Regel) kann man sich statt der CPU-Idleness auch der Temperatur als Auslöser bedienen.



Ich habe bei mir zur Überwachung der Temperatur Motherboard Monitor 5 laufen. Und dort kann man beliebig viele Programme angeben, die jeweils bei bestimmten Temperaturen gestartet oder beendet werden sollen. Damit könnte man zumindest einen Teil der Clients temperaturabhängig anwenden.



Auch Umwege führen zum Ziel. <IMG SRC="/phpBB/images/smiles/icon_smile.gif" alt="Smile">



Ciao, Michael.

Benutzeravatar
Der Diplomat
Powerknopf-Verweigerer
Powerknopf-Verweigerer
Beiträge: 1470
Registriert: 21.07.2001 01:00
Wohnort: Landsberg

#7 Ungelesener Beitrag von Der Diplomat » 05.01.2002 15:55

Was für eine verrückte Idee, aber stimmt. Müsste man jetzt nur noch recherchieren inwieweit die unterschiede messbar sind und wie lange das dauert, bis die Temperatur sinkt, nachdem ein Programm auf idle gegangen ist.



Michel

Benutzeravatar
Bananeweizen
Urvater
Urvater
Beiträge: 2867
Registriert: 14.06.2001 01:00
Wohnort: Kornwestheim

#8 Ungelesener Beitrag von Bananeweizen » 05.01.2002 16:50

Also ich habe das eben mal prototypisch getestet. Sowohl das Unterschreiten als auch das Überschreiten einer Temperatur kann für Start bzw. Stop eines Programms genutzt werden. Allerdings hat es bei mir mit dem ECCp-Client nicht funktioniert (nur mit Batch-Files, die ich testhalber benutzt habe).



Ciao, Michael.

Benutzeravatar
S_Garbe
Rechenkraft.net-Sponsor
Rechenkraft.net-Sponsor
Beiträge: 1219
Registriert: 09.11.2001 01:00
Wohnort: Kohlstädt

#9 Ungelesener Beitrag von S_Garbe » 05.01.2002 16:53

@Bananeweizen - hast Du den Grafik oder den Command-Line Client von Eccp verwendet?

Benutzeravatar
Bananeweizen
Urvater
Urvater
Beiträge: 2867
Registriert: 14.06.2001 01:00
Wohnort: Kornwestheim

#10 Ungelesener Beitrag von Bananeweizen » 05.01.2002 21:28

Grafik. Das sollte aber kein Problem sein, da sich MBM hoffentlich an der ID des gestarteten Prozesses orientiert. Und da ist Grafik/Kommandozeile/gar kein Fenster eigentlich vollkommen egal.



Prinzipiell würde ich, um diese Lösung praktisch zu nutzen, sowieso eher noch ein kleines Start/Stop-Programm schreiben, welches den eigentlichen Client startet und selbst mittels zweier verschiedener Batches von MBM gesteuert wird...

(da schlägt immer gleich der Programmierer in mir durch <IMG SRC="/phpBB/images/smiles/icon_biggrin.gif" alt="Breites Lachen"> )



Ciao, Michael.



PS: Apropos Programmieren: Mein Prototyp für den Statistikmanager stabilisiert sich langsam.

Benutzeravatar
Der Diplomat
Powerknopf-Verweigerer
Powerknopf-Verweigerer
Beiträge: 1470
Registriert: 21.07.2001 01:00
Wohnort: Landsberg

#11 Ungelesener Beitrag von Der Diplomat » 06.01.2002 09:08


PS: Apropos Programmieren: Mein Prototyp für den Statistikmanager stabilisiert sich langsam.


Meinst Du die Beta-Version unter Meine Projekte?



Da hätte ich eine Bitte. Für ECCp-109 unbedingt einen anderen Hintergrund verwenden, da die Teilnehmer-Namen kaum zu erkennen sind, außer sie sind grün oder rot. Ansonsten sind sie ja auch gelb.



Michel

Benutzeravatar
Bananeweizen
Urvater
Urvater
Beiträge: 2867
Registriert: 14.06.2001 01:00
Wohnort: Kornwestheim

#12 Ungelesener Beitrag von Bananeweizen » 06.01.2002 11:26

Nein, das Konzept habe ich aufgegeben. Ich hatte da ein super Skript in php geschrieben, welches die Statistiken on the fly von den anderen Servern abholt, wenn man sich die eigenen Statistiken anschauen will. Aber das krankt momentan vor allem an drei Problemen:
  • Ich kann keinen Timeout für die Verbindung zum Projektserver angeben (weshalb die ECCp-Statistik fast nie komplett ankommt).
  • Die Aktualisierung erfolgt nur beim Anschauen der Seite, aber nicht zwischendurch.
  • Das ganze ist dermaßen schlecht zu debuggen, weil es auf dem Server läuft...


Nein, mein neuer Ansatz sieht vor, daß ich die Projektstatistiken von meinem eigenen Rechner aus downloade, mit Perl verarbeite und in meine eigene DB schreibe. Dann kann man seine Projektstatistiken direkt auf Rechenkraft.de einsehen (und zwar zu mehreren Projekten!).



Aktuell weiß ich nur noch nicht, ob ich mich dabei auf die Statistiken der Rechenkraft.de-Teilnehmer einschränken muß oder ob ich die kompletten Teilnehmerlisten für einige Projekte schaffe. Ich habe mal überschlagen, daß ich schon allein für die 6 oder 7 interessantesten Projekte mit ca. 50.000 bis 100.000 Downloads pro Tag und ca. 20.000 neuen Datenbankeinträgen rechnen muß, wenn ich alle Teilnehmer berücksichtige. (Zum Beispiel hat MoneyBee aktuell so um die 14.000 Teilnehmer und knapp 600 Teams, also rund 15.000 Statistiken jeden Tag).



Wahrscheinlich ist es da sinnvoller, nur die Teamlisten komplett zu ziehen und dann noch die Teilnehmerstatistiken aller Mitglieder des jeweiligen Rechenkraft-Teams.

Aber der Lasttest kommt erst noch. <IMG SRC="/phpBB/images/smiles/icon_rolleyes.gif" alt="Rolling Eyes">



Ciao, Michael.

Zurück zu „Hintergrundinfos zu Verteiltem Rechnen“