Thread Perl 6 und Nebenläufigkeit (10 answers)
Opened by leo11 at 2009-01-02 18:35

moritz
 2010-01-04 17:01
#130009 #130009
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
2010-01-02T17:35:37 leo11
Ich hoffe auf einen Schalter im Compiler/Interpreter. Einmal umgelegt und zack kann man wie bisher programmieren und es werden alle Prozessoren ausgelastet so das ein Programm bei 4 Prozessoren erheblich schneller läuft als bei einem.


Das geht nur so weit gut, wie die statische Analyse des Compilers Abhängigkeiten erkennen kann. Und es ist auch eine Frage des Algorithmus - einige lassen sich sehr leicht parallelisieren, andere fast gar nicht. Vollständig automatisch wird das wohl immer ein Traum bleiben.

Quote
Würd mich intressieren was man bzgl. Perl 6 und Nebenläufigkeit sagen kann.


Darauf gibt es mehrere mögliche Antworten:

1) Larry will ein concurrency-Modell, dass Threads und Events vereint, inspiriert von diesem Paper.

2) Einige Sprachfeatures parallelisieren automatisch. Wer implizite Abhängigkeiten zwischen den parallelen Aufrufen einbaut oder sich auf die Ausführungsreihenfolge verlässt, ist selbst Schuld.

Dazu gehören die "hyper"-Operator und feeds:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
@result = @array».method();
@result = hyper @array.map: { .method };

@result = @array1 »+« @array2; # Elementweise Addition

# ähnlich wie UNIX pipes, nur mit Objekten:
@source
==> function1
==> grep { $_ % 2 == 0 }
==> function2
==> @result


3) Unabhängig vom genauen Nebenläufigkeitsmodell ist Perl 6 so designed, dass möglichst viel Information lexikalisch gehalten wird, was micro-threading deutlich vereinfacht. Es gibt auch kaum wirklich globale Variablen in einem Perl 6-Programm.



Dass Larry sich vor concurrency drücken mag, wie lichtkind angedeutet hat, geht am Kern des Problems vorbei: Alle Teile der Spezifikation, die noch von niemandem implementiert wurden, sind mit Vorsicht zu genießen, und es lohnt sich nicht, viel Arbeit reinzustecken, solange es niemand implementiert. Erst bei der Implementierung merkt man, wo die Probleme liegen, und wo Potential für Erweiterungen liegen.

View full thread Perl 6 und Nebenläufigkeit