|
|
|
|
Koordinationssprache LINDA |
tsluga
Neuling
Dabei seit: 17.07.2007
Beiträge: 3
|
|
Koordinationssprache LINDA |
|
Hallo zusammen,
ich sitze momentan an meiner Bachelor Arbeit in Informatik. Ich entwickle dafür eine moderne Variante der Koordinationssprache LINDA in C++. Mit sowas kann man wunderbar Parallelverarbeitung machen, einige kennen vielleicht MPI. Es ist momentan eine reine Linux Entwicklung.
Wieso schreibe ich :
Ich will nach meinem Abschluss diese Bibliothek weiter entwickeln.Ich bräuchte dafür paar "Programmierer", die Lust hätten an diese Bibliothek weiter zu basteln.
Was man können sollte :
Primär sollte man in C/C++ programmieren können. Vorteilhaft ist natürlich, wenn man Kenntnisse in Netzwerkprogrammierung unter Linux hat. Man sollte sich mit Thread Programmierung auskennen ( Boost.Threads ) und vorallem Synchronisation ( Mutex, Semaphore, Reentrat usw. sollten keine Fremdwörter sein ). Für die Visualizierung gibt es eine GUI die in QT4 entwickelt wurde, daher wären da vielleicht auch Grundkenntnisse ganz vorteilhaft.
Ich weiß, hört sich kompliziert an ( oder nicht ) aber vielleicht sind hier paar Informatiker und für die sollte sowas kein Problem sein.
Es gibt aber auch die Möglichkeit, dass Leute die LIB testen, unter unterschiedlichen Linux Distris.
Ich hätte erstmal gerne Feedback von eventuell interessierten.
Bei Fragen zu Linda, einfach hier schreiben oder per ICQ anquatschen ( 135 15 20 66 ) . Es ist ein ernsthaftes Projekte ( York Universität in England hat dafür eine eigene Forschungsgruppe ).
Anmerkung : Es ist keine kommerzielle Software, absolut OpenSource daher völlig unentgeltlich, also sind eher die Leute gefragt, die Spass haben Software zu entwickeln.
Wie gesagt, bis jetzt muss ich die erstmal selber weiterbauen, (ca.) ende des Monats werde ich die Arbeit abgeben und dann können auch mehr Leute dran arbeiten. Entwickelt wird das ganze für die FH Hannover, wo die auch ( wahrscheinlich ) später in den Vorlesungen benutzt wird.
Gruß
Thomas
|
|
17.07.2007 00:09 |
|
|
Misel
Hüter des Kitkat
Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d
e
|
|
Klingt ja nicht schlecht und während meines Studiums habe ich auch mit MPI und C(++), QT ... und dem ganzen Krams gearbeitet und könnte eine Auffrischung gebrauchen.
Aber kannst Du das mit dem Linda noch mal in eigenen Worten zusammenfassen. Wenn ich nach "LINDA Koordinationssprache" google, finde ich Dein Post in weiteren Foren ... :J
__________________ LAUFT! Ich spiele KILLERSPIELE!
|
|
17.07.2007 11:03 |
|
|
tsluga
Neuling
Dabei seit: 17.07.2007
Beiträge: 3
Themenstarter
|
|
Ja, ich finde LINDA ganz gut und suche halt Leute
Also, ganz grob :
Es gibt einen Server, der nennt sich TupleSpace. Beliebig viele Clients, können sind nun mit dem Server Verbunden und kommunizieren über den Server miteinander. Alles was die Clients machen können, sind Tuple in den Tuplespace abspeichern ( der Server ist also quasi auch eine Datenbank ).
Ein Tuple kann z.B. sein :
["primzahl",1]
Ein PC packt nun diese Tuple in den Tuplespace, der Befehl lautet out().
Nun könnte man :
["primzahl",1]
["primzahl",2]
["primzahl",n]
in den Tuplespace ablegen. Beliebig viele Clients können nun diese Tuple auslesen ( Befehl rd, das Tuple bleibt ) oder auslesen und löschen ( Befehl in, das Tuple wird gelöscht). Nun prüfen die Clients ob es Primzahlen sind, und packen Ergebnisse rein, also ein Tuple wie :
["primzahl",3,true]
Ein andere Rechner gibt nun alle Primzahlen aus. Man kann so ganz leicht Sachen, paralellisieren ( wie bei MPI ). Unterschied ist, dass in MPI alles in einem Programm untergebracht werden muss, während man in LINDA kleine Programme für bestimmte Zwecke schreiben kann ( z.B. Primzahlen in Tuplespace packen, Programm zum berechnen und ein Programm zum ausgeben der Primzahlen ). Es ist quasi vergleichbar mit MPI, es wird aber ein zentraler Server verwendet zum Speichern von Daten.
Ich schreibe meinem Dozenten gleich ne Mail und frage ob ich es veröffentlichen darf, dann kann man es sich selber anschauen.
PS: Für die Netzwerkaktivitäten gibt es eine GUI ( tuplescope ) sie anzeigt, was welcher Client macht.
|
|
17.07.2007 12:15 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Hört sich prinzipiell interessant an.
Also so eine verteilte Applikation welche über eine art Skriptsprache ansprechbar ist, ist das Ziel?
Und Linda ist mir kein Name, gibts da irgendwo ne Referenz zu?
Wie implementierst du den "Linda Prozessor", also das was dann am Server wieder
aus dem Text was für das Programm macht
Und braucht der Client dies nicht auch?
Ist da schon ein fertiges Protokoll bei Linda dabei?
Ich frag mich gerade, wieso ihr nicht einfach ne DB nehmt, und dann entsprechend
Tabellen erstellt
phlox
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
17.07.2007 14:47 |
|
|
tsluga
Neuling
Dabei seit: 17.07.2007
Beiträge: 3
Themenstarter
|
|
Ich habe das okay bekommen, ich packe nachher mal die Sourcen auf meinen Webspace. Das ganze ist wie gesagt in C++ implementiert.
Man setzt sich an einen Rechner und sagt z..B. ich möchte nun, dass 10 Rechner ab einem Problem arbeiten. Mein lib startet nun auf jeden Rechner ein Programm ( es wird per ssh eine Verbindung aufgebaut, Programm gestartet, welches sich nun mit dem Server verbindet ). Es gibt einige Implementierung in C bzw. C++ diese sind aber ziemlich schlecht
Eine Datenbank, nun ja, der Server hat eine Datenbank ( bzw. ist in Arbeit ), er akzeptiert jedoch auch Verbindungen, ist für das Suchen/Speicher/Löschen von Tupleln zuständig, für das beenden der Clients uwm.
Es sind viele Kleinigkeiten, aber ich werde nachher mal die Sachen hochladen und paar kleine Beispiele. Man kann es sich dann selber anschauen. Ich würde mich primär über BETA Tester freuen und über Leute die Lust haben auch weiter dran zu basteln.
Es wird sowas wie MPI jedoch mit einem Server als zentrale Kommunikationsschnittstelle.
Nachtrag :
Ich habe mal die sourcen hochgeladen. Für den Anfang würde es mich interessieren ob es sich übersetzen lässt.Ein kleines Beispielprogramm liegt unter examples.
Für das Makefile bitte :
als root : make copy_hpp openlinda install eingeben.
Falls es wirklich interessiert für dieses lib gibt, kann ich mal einen kleinen Kurs zu LINDA machen. Es ist nicht besonders kompliziert.
OpenLINDA src
Benötigte libs :
Boost.Threads
Boost.Serialization
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von tsluga: 18.07.2007 00:58.
|
|
17.07.2007 19:06 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Hm, hab leider keine Zeit mich selber in die Sourcen einzuarbeiten.
Exsistiert denn schon eine Onlien Doku wie z.b. man sie mit Doxygen erstellen könnte?
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
18.07.2007 11:23 |
|
|
|
|
|
|