Hallo Leute,
nach dem "Bug-Fixes"-Update vom letzten mal möchte ich euch nun wieder mit einem "Feature"-Update versorgen. An dem folgenden Feature habe ich schon etwas länger geplant, bin aber erst in den letzten Monaten dazu gekommen es programmiertechnisch umzusetzen und konnte jetzt auch die ersten Tests erfolgreich absolvieren.
________________________________________
Lizard - Symbolic computation script language (Version 0.4.4-0002)
Beinhaltet die Lizard.dll (Windows x64 und x86), die Lizard.so (Linux x64), die Lizard.pbi, einige Beispiele zur Einbindung in Pure Basic und eine ausführliche Dokumentation zu
Lizard mit vielen Beispielen.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Das neue Feature gibt euch die Möglichkeit Berechnungen auf mehreren Kernen gleichzeitig auszuführen, also der erste Schritt Richtung "
Parallel Computing".
Treu meinem Prinzip, in
Lizard alles sehr einfach zu handhaben, wird es dann für ein paar Befehle einfach eine "Parallel"-Version geben, welche automatisch einen Thread-Pool erstellt, die Berechnungen dorthin verteilt, das "normale" Ergebnis wieder zusammenträgt und zurückgibt, ohne das der Nutzer sich über irgendwas Gedanken machen muss.
Ein Beispiel:
Während also "Iterate(
f(x), {x, 1, 1000})" eine zeitintensive Funktion
f nur auf einem Kern sequenziell ausführt, verteilt "IterateParallel(
f(x), {x, 1, 1000})" diese Berechnung automatisch auf viele Kerne (Threads). Je nach Verhältnis der tatsächlichen Berechnungsdauer zum Zeitverbrauch für den "Thread-Verwaltungskram" ist die Gesamtausführungszeit dadurch meist deutlich schneller. Das trifft aber natürlich nicht auf einfache Funktionen zu, wo das parallelisieren ehr nachteilig ist.
Eine Übersicht der neuen Parallel-Computing-Befehle mit Beispielen ist hier zu finden:
Lizard » Core Language » Parallel Computing
(Diese 6 Befehle mögen vielleicht recht wenig vorkommen, aber jede andere Funktion/Ausdruck kann natürlich innerhalb von IterateParallel() oder MapParallel() verwendet und so beschleunigt werden.
Nebenbei gibt noch ein paar andere neue Funktionen wie reziproke trigonometrische und hyperbolische Funktionen, ein bisschen Kleinkram, wieder ein paar Bug-Fixes und es gibt nun Funktions-Plots bei mathematischen Funktionen in der Dokumentation.
Lizard » History
In diesem Sinn, viel spaß beim Testen und wie immer würde ich mich über Feedback freuen.
Edit: Hot-Fix 0.4.4-002