Webbrowser können in den meisten Fällen nicht die volle Leistung Ihres Computers oder mobilen Geräts nutzen. Den Code, den sie ausführen, läuft tendenziell in einer Sandbox, die von Ihrer Hardware abstrahiert ist und dem Browser keinen vollständigen Zugriff darauf gewährt. Während Ihre Desktop-Software also beispielsweise alle Kerne Ihrer Computers nutzen kann und einen modernen Grafikprozessor für die Parallelverarbeitung zur Beschleunigung eines Bildfilters verwendet, kann dies der JavaScript-Code in Ihrem Browser nicht. Aber das wird sich bald ändern.
Die Khronos Group, das Industriekonsortium, das für Standards wie WebGL, OpenGL und COLLADA verantwortlich ist, gab heute die Ratifizierung und öffentliche Freigabe der WebCL 1.0 Spezifikationen bekannt. WebCL ist die Browserversion von OpenCL und bietet Webentwicklern die Möglichkeit, GPU– und Multi-Core-Verarbeitung aus dem Webbrowser heraus zu nutzen.
Der WebCL-Standard basiert auf OpenCL, das eine ähnliche Anzahl von Funktionen auf dem Desktop bietet.
Wie Neil Trevett, der Vorsitzende der WebCL-Arbeitsgruppe, teilte vor Kurzem mit, dass er erwartet, dass die Entwickler, sobald die Browser-Anbieter diese Spezifikation übernommen haben, diese Fähigkeiten nutzen werden, um Dinge wie Physik-Engines für WebGL-Spiele, Echtzeit-Video-, Bild- und Fotobearbeitungswerkzeuge mit erweiterten Filtern im Browser zu entwickeln.
Grundsätzlich kann jede Anwendung, die Code parallel ausführen muss, auch im Browser ausgeführt werden. Der Standard selbst ist sowieso agnostisch, obwohl man davon ausgehen kann, dass Spiele und Fotoverarbeitung zu den ersten Anwendungen gehören werden, die diese Funktionen nutzen.
Da der Engpass für solche Anwendungen nicht der Browser ist, entstehen auch für Entwickler kaum Leistungseinbußen, wenn sie diesen Code vom Browser aus ausführen.
Im Moment ist JavaScript mit asm.js auf Firefox etwa die schnellste, die Sie nativ im Browser ausführen können, ohne auf Dinge wie Chrome`s Native Client oder ein Plug-In zurückgreifen müssen. Auch wenn asm.js nahe an die nativen Geschwindigkeiten heranreichen mag, ist es nicht für die Parallelverarbeitung gedacht, so dass es für Entwickler wirklich keine Möglichkeit gibt, diese Art von Leistung für ihre Apps zu erhalten. Wie Trevett bemerkte, sind asm.js und WebCL jedoch kostenlos und da WebCL JavaScript-Bindungen anbietet, konnten Entwickler WebCL jederzeit aus ihren asm.js-basierten Anwendungen aufrufen.
Da WebCL so ähnlich wie OpenCL ist, sollten Entwickler in der Lage sein, ihren Code ziemlich einfach zu portieren.
Je näher der Code jedoch auf Bare Metal läuft, desto mehr Sicherheitsprobleme gibt es auch in Form von WebCL. Aus diesem Grund, so Trevett, hat das Team einige Funktionen, die in OpenCL verfügbar sind, weggelassen, da die Sicherheit nicht garantiert werden konnte. Als Teil dieses Prozesses entwickelte das Team einen Open-Source-Kernel-Validator, und Trevett betonte, dass die Arbeit an WebCL auch die OpenCL-Community motivierte, sicherer zu werden.
Für Webentwickler eröffnet dies eine ganze Reihe neuer Möglichkeiten und könnte neue Kategorien von Anwendungen ins Internet bringen. Gleichzeitig ist dies aber auch für viele von Ihnen ein sehr unbekanntes Terrain. Trevett erwartet, dass genau wie das WebGL-Ökosystem jetzt nur relativ einfach zu bedienenden Frameworks dominiert wird, die den Großteil der lästigen Arbeit abstrahieren, wird WebCL eine ähnliche Entwicklung erleben. So wie Entwickler, die sich mit Grafik-Engines auskennen, mit der Arbeit an der WebGL-Middleware begonnen haben, erwartet er, dass Ingenieure, die jetzt in der Parallelverarbeitung arbeiten, etwas Ähnliches für WebCL tun werden.
Es ist noch unklar, wann Browser diese Funktion anbieten werden. Der Standard ist seit 2011 in Arbeit und zu den am Prozess beteiligten Unternehmen gehören Branchengrößen wie Adobe, AMD, Nvidia, ARM, Intel, Opera Software, Mozilla, Google, Samsung und Qualcomm. Nokia bietet jedoch eine WebCL-Erweiterung für Firefox an, wenn Sie es also wirklich versuchen möchten, ist das wahrscheinlich der beste Weg im Moment.
Vielen Dank für Ihren Besuch.