<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:contributor>Pautasso, Cesare</dc:contributor>
  <dc:creator>Bonetta, Daniele</dc:creator>
  <dc:date>2014-09-10</dc:date>
  <dc:description xmlns:ns0="xml" ns0:lang="en">Recent trends in programming models for server-side development have shown an increasing popularity of event-based single- threaded programming models based on the combination of dynamic languages such as JavaScript and event-based runtime  systems for asynchronous I/O management such as Node.JS. Reasons for the success of such models are the simplicity of  the single-threaded event-based programming model as well as the growing popularity of the Cloud as a deployment platform  for Web applications. Unfortunately, the popularity of single-threaded models comes at the price of performance and scalability,  as single-threaded event-based models present limitations when parallel processing is needed, and traditional approaches to  concurrency such as threads and locks don't play well with event-based systems. This dissertation proposes a programming  model and a runtime system to overcome such limitations by enabling single-threaded event-based applications with support for  speculative parallel execution. The model, called Parallel Event Loop, has the goal of bringing parallel execution to the domain of  single-threaded event-based programming without relaxing the main characteristics of the single-threaded model, and therefore  providing developers with the impression of a safe, single-threaded, runtime. Rather than supporting only pure single-threaded  programming, however, the parallel event loop can also be used to derive safe, high-level, parallel programming models  characterized by a strong compatibility with single-threaded runtimes. We describe three distinct implementations of speculative  runtimes enabling the parallel execution of event-based applications. The first implementation we describe is a pessimistic  runtime system based on locks to implement speculative parallelization. The second and the third implementations are based  on two distinct optimistic runtimes using software transactional memory. Each of the implementations supports the  parallelization of applications written using an asynchronous single-threaded programming style, and each of them enables  applications to benefit from parallel execution.</dc:description>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>https://susi.usi.ch/global/documents/318634</dc:identifier>
  <dc:identifier>https://localhost:5000/ark:/12658/srd1318634</dc:identifier>
  <dc:identifier>https://susi.usi.ch/documents/318634/files/2014INFO017.pdf</dc:identifier>
  <dc:language>eng</dc:language>
  <dc:relation>info:eu-repo/semantics/altIdentifier/urn/urn:nbn:ch:rero-006-114283</dc:relation>
  <dc:relation>info:eu-repo/semantics/altIdentifier/ark/12658/srd1318634</dc:relation>
  <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
  <dc:rights>License undefined</dc:rights>
  <dc:subject xmlns:ns1="xml" ns1:lang="en">Parallel event loop</dc:subject>
  <dc:subject xmlns:ns2="xml" ns2:lang="en">Parallel programming</dc:subject>
  <dc:subject xmlns:ns3="xml" ns3:lang="en">JavaScript</dc:subject>
  <dc:subject xmlns:ns4="xml" ns4:lang="en">Event-based programming</dc:subject>
  <dc:subject>info:eu-repo/classification/udc/004</dc:subject>
  <dc:title xmlns:ns5="xml" ns5:lang="en">The parallel event loop model and runtime : a parallel programming model and runtime system for safe event-based parallel programming</dc:title>
  <dc:type>http://purl.org/coar/resource_type/c_db06</dc:type>
</oai_dc:dc>
