Does Google's PNaCL toolchain beat other approaches to speeding up JavaScript? - COMP 396 Undergraduate Research Project Application Form

Supervisor's Name: Professor Laurie Hendren

Supervisor's Email: hendren [at]

Supervisor's Phone:

Supervisor's Website:

Supervisor's department: Computer Science

Course number: COMP 396 (Computer Science)

Term: Fall 2014-2015

Project start date: September 2, 2014

Project end date: December 4, 2014

Project title: Does Google's PNaCL toolchain beat other approaches to speeding up JavaScript?

Project description (50-100 words suggested): JavaScript and web technologies are becoming increasingly important, and different browser developers have made excellent progress in implementing efficient JavaScript Virtual machines and Just-in-Time compilers.
The McLab research group has recently formed a subgroup which is interested in evaluating the performance of JavaScript in order to determine if it is a reasonable technology to use for scientific computing. To date we have developed the Ostrich benchmark suite to compare C versions of benchmarks against a variety of JavaScript technologies. We have found that most benchmarks can run within a factor of 2 of the C versions, especially when using ASM.JS developed by Mozilla.
An interesting open question, and the focus of this research project, is whether the same or better performance be achieved with the PNaCL toolchain developed by Google.
The aim of the project is to use the PNaCL toolchain to compile Ostrich benchmarks and analyse the performance on different configuration of machines and browsers. The PNaCL toolchain is developed by Google and it compiles C code to LLVM style bytecode. Google Chrome has a pepper plugin which can compile this bytecode to architecture specific machine code. We can also use pepper.js for other browsers to compile bytecode to JavaScript.
The student doing this project would work with the McJS research group (currently composed of four graduate students and Professor Hendren), as well as having access to a mentor from Google.

Prerequisite: 1 term completed at McGill + CGPA of 3.0 or higher; or permission of instructor.

Grading scheme (The final report must be worth at least 50% of final grade): Final Report: 70%; Milestones and Meetings: 30%

Project status: This project is open to applicant.

How students can apply / Next steps: Please contact me via e-mail, hendren [at]

Ethics, safety, and training: Supervisors are responsible for the ethics and safety compliance of undergraduate students. This project involves NEITHER animal subjects, nor human subjects, nor biohazardous substances, nor radioactive materials, nor handling chemicals, nor using lasers.