River Trail (JavaScript engine): Difference between revisions

Content deleted Content added
User5910 (talk | contribs)
External links: Add GitHub link
Thunder491 (talk | contribs)
Shorten short description
 
(14 intermediate revisions by 13 users not shown)
Line 1:
{{Short description|JavaScript engine developed by Intel}}
{{Infobox software
| name title = River Trail
| logo = <!-- File name only. -->
| title =
| logo screenshot = <!-- [[File: ]]name only. -->
| caption =
| screenshot = <!-- [[File: ]] -->
| author =
| caption =
| developer = Intel
| collapsible =
| released = <!-- {{Start date and age|YYYY2011|MM|DD09|df=yes/no}} -->
| author =
| discontinued = yes
| developer = Intel
| latest release version = v0.35.0
| released = <!-- {{Start date|YYYY|MM|DD|df=yes/no}} -->
| latest release date = <!--Intel: {{Start date and age|YYYY2015|MM02|DD09|df=yes/no}} -->
| discontinued =
| programming language = [[JavaScript]]
| latest release version =
| operating system =
| latest release date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| platform =
| latest preview version =
| size =
| latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| language = English
| frequently updated = <!-- DO NOT include this parameter unless you know what it does -->
| genre = [[JavaScript engine]]
| programming language =
| license = [[BSD licenses#2-clause|BSD 2-clause]]
| operating system =
| website = {{URL|github.com/IntelLabs/RiverTrail}}
| platform =
| size =
| language =
| status =
| genre =
| license =
| website = {{URL|github.com/RiverTrail}}
}}
'''River Trail''' (also known as '''Parallel JavascriptJavaScript''') is ana [[opensoftware sourceengine]], specifically a [[softwareJavaScript engine]], designed by [[Intel]] for executing [[JavaScript]] code using [[parallel computing]] on [[multi-core processor]]s. It is [[free and open-source software]] with a [[BSD licenses#2-clause|BSD 2-clause license]].
 
River Trail was announced at the Intel Developer Forum in September 2011, and demonstrated using a [[Firefox]] extension developed by Intel. [[Brendan Eich]], the original author of JavaScript, promised that he would promote River Trail within [[Ecma International]], saying "The demo shows a 15x speedup over serial JavaScript. It lights up the ridiculously parallel hardware in modern CPUs and GPUs, for audio, video, image processing, automated voice response, computer vision, 3D gaming, etc. – all written in memory-safe, clean, functional JavaScript, without threads and their data races and deadlocks."<ref>{{cite webnews | title last1= Intel extends JavaScript for parallel programmingMetz | author first1= Cade Metz | date = 17 September 2011 |title=Intel urlextends =JavaScript httpfor parallel programming |url=https://www.theregister.co.uk/2011/09/17/intel_parallel_javascript/ | publisher work= [[The Register]] | accessdate access-date= 2013-04-10}}</ref> Because River Trail leverages Intel's [[OpenCL]] SDK<ref>{{cite web|last=Hillar|first=Gaston|title=Introducing Intel Labs' River Trail|url=http://www.drdobbs.com/web-development/introducing-intel-labs-river-trail/231602396|work=Dr. Dobb's|date=29 September 2011|access-date=29 January 2014}}</ref> it can exploit multiple [[central processing unit]] (CPU) cores and [[Data parallelism|data parallel]] instructions (ex. [[Advanced Vector Extensions]] (AVX), [[Streaming SIMD Extensions]] (SSE)) and the speedup can be greater than the CPU core count would imply.
 
A native implementation of River Trail in Firefox's [[SpiderMonkey (JavaScript engine) |SpiderMonkey]] [[JavaScript engine]] was announced in September 2012,<ref>{{cite webnews |last1=Halfacree title|first1=Gareth |date=13 September 2012 |title=Intel boosts JavaScript with River Trail release | author = Gareth Halfacree | url = http://www.bit-tech.net/news/bits/2012/09/13/intel-river-trail/1 | date work= 13 September 2012 | publisher = [[bit-tech]] | accessdate access-date= 2013-04-10 }}</ref> and was added to nightly Firefox nightly builds in April 2013.<ref>{{cite web | url = https://bugzilla.mozilla.org/show_bug.cgi?id=829602 | title = Bug 829602 - ParallelDo intrinsic and self-hosted ParallelArray | publisher website= [[Mozilla Foundation]] |access-date=2013-04-10}}</ref> accessdateBy January 2015, the code had been removed from Firefox.<ref>{{Cite web |url=https://bugzilla.mozilla.org/show_bug.cgi?id=801869 2013|title=Bug 801869 - (PJS) PJS: Efficient threaded runtime for data-parallel JavaScript|date=2015-01-19|access-date=2015-04-1023 |website=Bugzilla@Mozilla |publisher=Mozilla Foundation |last1= |first1=}}</ref><ref>{{Cite web |url=https://groups.google.com/forum/m/#!topic/mozilla.dev.tech.js-engine/H-YEsejE6DA |title=PJS has been removed from Spidermonkey |access-date=2017-10-18}}</ref>
 
== Operation ==
To use the engine scripts uses a special [[API]], based on three pillars: a [[Datadata type|type]] callednamed <code>ParallelArray</code>, several methods of [[Prototype-based programming|Prototypeprototype]] of <code>ParallelArray</code>, and elementary functions.<ref name="wk3p">{{CitationCite web |title=Three pillars of the API|url=https://github.com/RiverTrail/RiverTrail/wiki/Three-Pillars-of-the-API |accessdateaccess-date=2011-09-14}}</ref>
 
==References==
{{reflistReflist}}
 
==External links==
* {{GitHub|IntelLabs/RiverTrail}}, source code
* Tour of the SpiderMonkey Parallel JS Implementation: [http://smallcultfollowing.com/babysteps/blog/2013/03/20/a-tour-of-the-parallel-js-implementation/ Part 1]; [http://smallcultfollowing.com/babysteps/blog/2013/04/04/a-tour-of-the-parallel-js-implementation-part-2/ Part 2]
* InfoQ interview: [http://www.infoq.com/interviews/rick-hudson-rivertrail Rick Hudson on Parallel JavaScript (RiverTrail)]
* [http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism Proposed Parallel EcmaScript API]
* [https://groups.google.com/forum/?fromgroups#!forum/mozilla.dev.tech.js-engine.rivertrail mozilla.dev.tech.js-engine.rivertrail discussion group]
 
* [https://github.com/rivertrail RiverTrail source on GitHub]
{{JavaScript}}
 
[[Category:Intel Corporationsoftware]]
[[Category:JavaScript engines]]