Team Speculative Execution: Post-copy live migration in the Xen hypervisor
A virtual machine is an emulation of a computer system upon which software can be executed exactly as though it were being executed on physical computer hardware. A hypervisor is software that runs on physical hardware and multiplexes its resources to run multiple virtual machines concurrently.
Xen is a popular open-source hypervisor. Xen supports a ‘live migration’ feature for virtual machines, through which a running virtual machine can be moved between different physical machines. One step of the migration process is to copy the contents of the virtual machine‘s memory from one physical host to another. To do this, Xen uses an ‘iterative pre-copy’ algorithm: the virtual machine remains running on the original host while its memory is copied, and any memory modified during the copy is re-copied in another iteration.
We’re preparing a patch series for Xen that adds a new ‘post-copy’ algorithm for this memory migration. In this algorithm, the virtual machine starts executing on the new host before any memory has been transferred. Every time a memory access occurs, a request is made to transfer the required memory from the original host. This algorithm is implemented by other hypervisors and has better performance characteristics than the pre-copy algorithm for guests with favourable memory access patterns.
Group members: Harley Armstrong, Joshua Otto, Chester Lin
Team Patronus: LeagueSpot - Multi-League Fantasy Sports
Male professional sports leagues have long dominated the idea of what competitive sports are. As a result, a social stigma has developed that junior and/or female sports aren’t as entertaining to watch, leading to large discrepancies in viewership and revenue. The 2016 NHL Winter Classic game had 2.8 million viewers, while the inaugural Women’s Winter Classic wasn’t even televised. Fantasy sports software further strengthens this stigma as it forces fantasy pools to contain only a single, often male, professional league.
We have modified a basic concept of how fantasy software should work. Our software forces fantasy pools to pick a specific sport rather than league, and allows the selection of players from numerous professional and junior leagues within that sport, both male and female, professional and junior. To account for various league differences, scoring statistics for players have been scaled so that they are comparable to their male professional counterparts when it comes to calculating points.
Providing the ability to select various leagues within a sport promotes and provides exposure to them. By encouraging users to pay attention to these alternative leagues, we hope to change the perception that they aren’t as entertaining and bring more attention to them.
Group members: Jason Dippel, Jenna Tauro, Farwa Naqi, Kenny Truong
Team Frustra: Stray Photons - Using light in video games
Lighting in video games is often used as a purely cosmetic effect to enhance the visual fidelity of the game. Existing games typically do not model reflection and dispersion of light, like how a flashlight can illuminate an entire room. This phenomenon is called global illumination.
Our idea is to create a game engine where 3D lighting and global illumination can be used as game mechanics instead of just visual effects. The key insight is to use a lighting algorithm that allows for real-time global illumination. Using this algorithm, the game can sample the light intensity at arbitrary positions, enabling the creation of light-dependent game mechanics. For example, a switch that is activated when light falls upon it.
To show off the capabilities of our game engine we will create a 3D first-person puzzle-solving game. The player will be put in situations where they must manipulate in-game lighting to solve puzzles in the game world. Our game engine allows us the flexibility to create puzzles that have not been possible in games until now.
Group members: Jacob Wirth, Kevin Jeong, Justin Li, Michael Noukhovitch, Cory Stegelmeier
Team Evan’s Rules: Medical data transfer protocol for Sana.MIT.edu
The Sana project is an open source initiative to provide a mobile healthcare solution to overcome resource limitations. One of the significant challenges when developing and deploying mobile applications is that connectivity over unreliable mobile data networks, especially those in developing countries, is often poor and/or intermittent.
In an attempt to address this problem, the Sana mobile client and middleware should be modified to allow for the uploading of binary files from the mobile client as smaller chunks for reassembly in the middleware. Typical data transmissions from the mobile clients to the middleware will be on the order of several megabytes in size; however, there may be some use cases where the size of the data may be larger.
In this project, we research, propose, and ultimately implement a solution to solve the above problem. A double checksum-based algorithm is used to detect file differences between the client and middleware, and to identify any data still required to complete the upload.
Group members: Zitian Wang, Ziyi Zhao, Tianyu Yu, Yunkee Lee
Team Delta: Medical Protocol Hub for Sana.MIT.edu
For our project, we are working with Sana to improve the functionality of their Protocol Builder, and better integrate it into their full suite of software. The Protocol Builder allows doctors to easily create reusable protocols for various common medical scenarios. However, it is currently a standalone product with no way to send the protocols to other parts of Sana’s infrastructure or share them with other users. To solve this problem, we are developing a complementary piece of software called the Protocol Hub. Our new website achieves three main goals. First, it will allow Sana users to upload their protocols from the Builder and share them with other users. Second, it will enable protocols to be synced with other Sana systems. Finally, it will keep a record of older versions of protocols. The completed project will enable Sana users search and upload to a repository of medical protocols created by other medical professionals and automatically send them to medical deployments around the globe.
Group members: Trevor Ophelders, Jesse Rogers, Matthew Stobo
Team MediReadi: Patient-side Medical Records App
Many patients are treated by multiple physicians in common medical care. Information sharing is a common issue for physicians since patients often do not bring all of their records or have lost their records. This forces physicians to attempt to contact the patients’ previous doctors manually, which can often be difficult.
Many doctors print off customized forms to be filled out by patients with previous information to the best of their knowledge. These documents may also be brought with them to visits with other physicians for accurate information recording. The burden of storing and transferring these documents rests solely on the patient. It is often a significant hindrance, especially among patients with many physicians treating many ailments.
The goal of the MediReadi team is to provide a mobile application that is sufficiently easy and efficient to use so as to replace the paper documents currently used by patients.
In order to provide functionality on par with the paper documents we have provided some unique interfaces. Among these features we have provided image support and an intuitive interface. We have also kept our application free to compete with similar applications already available from mobile application stores.
We have support from a number of doctors and nurses who agree with our assessment of the need for such an application and have been assisting with the design and marketing of the application.
Group members: Amanda Wiskar, Louis Burke, Qiuchen Dong, Ye Ting Wang, Ron Meng, Mike Wang
Team Calligre: Calligre – Conference App Platform
Conference apps as they exist today are mostly hobbled products with few features and enormous price tags. In our initial research, we found no conference app providers that had developed a solution that contained the multitude of features we were looking for with a generalized platform that could be applied to any conference rather than built custom for each one – especially not one with a reasonable cost to the conference organizer.
With Calligre, we aim to fix these problems. Calligre provides an all-in-one solution that works out-of-the-box for any conference, while allowing the organizers to customize as they see fit. Calligre supports news feeds, social integration, calendar plugins, user interactions, event scheduling, and much more – all of which can be enabled or disabled on a per-conference basis at the organizer’s discretion.
In allowing the organizer to customize the app – rather than requiring this customization be done at build time by the developers – Calligre can provide a single product with support and hosting tiers as the payment model. For smaller conferences or those who do not wish to pay for either support or hosting, this also allows for a self-hosting model wherein the entire conference can be managed without our interaction and effectively for free. This allows us to focus on building out and fixing features across all conferences rather than working one at a time, thus increasing the overall quality of the app as we have more time to devote to custom concerns.
Additionally, this provides a benefit for conference attendees; in using our conference platform rather than the custom-built solutions from other providers, attendees have no need to download a new app for every conference: every conference can simply be accessed from the same Calligre app.
Group members: Steven Locke, Kyle Lexmond, Clarisse Schneider, Eric Pemberton, Lara Janecka, Kevin James
Team Dynalist: Collaborative, hierarchical lists
People and organizations currently use various tools to organize their work and manage their schedules, but they often use a number of apps in combination to stay organized. Documents, reports, plans, and schedules are often hosted on different services. The lack of compatibility between these services means that people often have to hunt for the information they need among the tools they use.
Dynalist aims to be the central place to organize everything. It uses hierarchical lists to represent information, which is very popular for meeting notes and presentation slides because of the human brain’s efficiency in reading and understanding structured information.
These lists can store text, schedules in the form of due dates, and even links to other parts of the list. This combination provides a flexible and powerful tool that can be customized to organize anything our users throw at it. On top of that, teams can share lists among members to collaborate. Our users have used Dynalist for anything from making simple TODO lists to running magic shops to managing entire companies.
As of January 2017, we have made over $13,000 US dollars in the past few months. We are generating a nice profit and growing fast.
Group members: Daiwei Fan, Shida Li, Da Wei, Zhaochen Zhang, Erica Xu
Team ReadYourStory: Read Your Story Book Builder
Read Your Story, LLC is our company which sells personalized children’s storybooks targeting 3-7 year-olds. Originally, customers would order a book by sending their child’s name and picture to us via email. These pictures were then manually inserted in each personalized page, taking around 3 hours per book.
To increase efficiency, we created an online book builder where customers can upload their child’s photo and information. The builder uses facial detection algorithms to automatically mask and crop the child’s face into a book template. To reduce masking errors, we provide a preview of the book prior to purchase, and the customer may modify and review their book manually. Further, we created an administrative tool to allow us to review and touch-up the books before they are automatically batched and sent to the printer. This new workflow greatly decreases the time spent on each book to approximately 10 minutes. Since our beta launch in October 2017, as a result of the increased book creation efficiency, we were able to sell over 360 books in less than half a year.
Group members: Karim Piyar Ali, Pauline Kwok, Jonathan Mak
Team homely.rent: An app to find intern housing
Interns who are working abroad have a difficult time finding housing. Specifically, most students do not have credit histories, a stable income and are looking for short-term housing. Most landlords and property owners do not service these needs. Thus, our project homely connects interns with landlords who have housed people in similar situations. Namely, landlords who have housed interns before for the same time periods and schools.
Our objective is to provide a service that students can use to quickly and easily find housing by viewing pre-vetted landlords and vise-versa; landlords can view pre-vetted students applying to their properties. This expedites the process of finding housing for interns, and the process of landlords finding suitable tenants.
Our project is a web application providing an initial point of contact between landlords and interns. Students search for properties and indicate their interest in ones they like. Landlords are then notified of interested tenants, allowing them to view the tenant’s profile and email for further contact. This minimal design is intentional because it allows both parties to contact each other via a more familiar and preferable medium like email. Homely starts the conversation between landlords that are aware of the needs of interns and interns finding housing abroad.
A primary problem is that our service requires scale to work and gain adoption. We need a large collection of landlords, their properties and students who will use the service. While the focus is on the quality rather than quantity of listings, we still need a significant amount of listings to gain momentum.
Group members: Daniel Cardoza, Sarrangan Yoganathan, Steven McConomy, Habeeb Ahmed
Propelme: Mobile App for High School Students
Propelme aims to enhance each student’s high school experience by introducing a mobile application that centralizes and organizes information in an efficient manner. Club management, internal communication, and resource consolidation were chosen as Propelme’s main features according to the results of our survey (with almost 300 responses). By using the aforementioned features, students will be able to contribute to and access valuable data at the palm of their hand. The app encourages students to take action and become leaders in their community by providing them with the option to subscribe to school events and announcements as well as the ability to manage information.
Propelme is supported by Parthi Kandavel, the trustee of the Toronto District School Board (TDSB) Ward 18, and Peter Chang, one of the TDSB school superintendents. Propelme had a very successful first launch that took place on September 30, 2016 at SATEC @ W.A. Porter C. I., Propelme’s pilot school. Since then, the app has gained over 200 users and 40 club registrations. The Propelme concept had been pitched at York University’s competitions, including the Social Venture Pitch, where a grant of $1,000 was awarded, and the Business Venture Pitch, where Propelme obtained second place. Propelme has also won a number of grants, including the Engineering of the Future Trust Fund Award and a voucher from Ontario Centres of Excellence, valued at $1,500 and $3,000, respectively.
Group members: Vishal Bollu, Salik Kabir, Tong Tong (Tonia), Mallika Trivedi, Honghao Shao (David), Weiting Xu, Jaydeep Mistry
InternCompass: Internship review website
According to the National Association of Colleges and Employers, in 2015, sixty-five percent of all bachelor’s degree graduates in the US participated in an internship . When deciding on which internships to apply to, students use a variety of objective and subjective criteria. Objective criteria may include salary and location, while subjective information may include criteria such as work-life balance and mentorship quality.
Currently, websites that offer this information are often lacking in either the quality or the relevancy of the information presented. For example, RateMyCoopJob.com suffers from poor quality reviews due to a lack of moderation, and Glassdoor.com requires users to filter through non-internship related positions to view relevant information. In both cases, common subjective criteria pertaining to internships are not prompted for, which further reduces their usefulness to students.
InternCompass is a website created to solve the shortcomings of these existing solutions. Students can browse through companies in various industries (such as Education, Productivity, or Social Media) and learn more about companies they’d be interested in working for. The website allows users to discover and read internship reviews shared by their peers. Students can submit reviews detailing their internship including information such as salary, benefits, company culture, and their overall experience. This allows students to obtain both objective and subjective information about potential jobs from a perspective more like their own. The quality of reviews created are greatly improved by requiring user sign up, and through moderation by the student community and administrators.
InternCompass development and product planning is driven by feedback solicited from our users, much of which has been positive. As of March 2017, InternCompass has 2000 monthly active users, and the site has 400 internship reviews spanning 300 jobs at over 200 different companies.
Group members: Kevin Pan, Michelle Wong, Anojh Gnanachandran, Daniel Jin
Team Closed for Refactoring: WatHub - A website for course software
As a leading institution for computer science and information technology, the University of Waterloo boasts a sizeable population of technologically-inclined staff and students. Year by year, these technical individuals generate large swaths of intellectual property in the form of source code: class assignments, research tools, design projects, reference implementations, recreational ventures, and more. However, much of this work is forgotten and abandoned shortly after its development.
Imagine the benefit that could be drawn from better preserving these works. Struggling undergraduate students could refer (after the deadline) to assignment submissions from classes past to better understand where they went wrong. Graduate students could leverage and improve upon research tools left by their colleagues. Senior students could draw inspiration from past design projects. T.A.s and professors could reuse template code for class assignments. Amateur developers could gain exposure for their personal projects. Anti-plagiarism, peer tutoring, and other applications are all possible.
WatHub aims to make these benefits a reality by providing a platform with which members of the UW community can preserve, distribute, and access content produced by themselves and their peers. Where other solutions have seen lukewarm adoption in specific areas of the university, WatHub operates as a single, central hub for source code and executables of all kinds.
Despite the challenges associated with developing and maintaining such a reliable, secure, and accessible platform of this kind while still ensuring that relevant policies regarding privacy, intellectual property, and academic integrity are observed, WatHub is expected to attract the involvement of a sizeable portion of the technical community within UW.
Group members: Brendan van Ryn, Yichuan Wang, Kang Hong Eric Liao, Mayank Sindwani, Oluwademilade Olagoke
Team JASON: ProManager - Capstone Project Coordination
In order to allow students to focus solely on having a successful project in time for Symposium Day, we have worked on Doubee, a web application which serves as a portal for all essential Capstone Design Project related information and tasks.
Each Software Engineering student graduating from the University of Waterloo is required to present a Capstone Design Project as the culminating point of their degree. Students are encouraged to start exploring project ideas and form teams as early as their third year. The final presentation of Capstone Project takes place on Symposium Day, where the projects are made open to the public and are evaluated by referees.
To help students explore project ideas as early as possible, Doubee uses a matchmaking algorithm that maps students to groups based on their rating of project ideas. Furthermore, In preparation for Symposium day, it also allows students to submit their referee requests and provides automatic scheduling of each referee for all projects they have been picked for. Doubee also acts as a database for previous year projects and proposals, to serve as a reference point for current fourth-years.
Group members: Eliav Yehuda, Ling Meng, Furqan Qureshi, Isha Pathak, Jeff Green
Team Minerva: Course Planning
Currently, students planning out their courses at the University of Waterloo have to manually go through their degree and create a plan to satisfy their degree requirements. The problem is that there is no validation when students plan their courses, leaving it to them to ensure they take the appropriate courses to graduate. We aspire to create a system to assist students in planning out their courses each term in order to satisfy all their degree requirements.
A design challenge we face is solving the NP-complete problem of deciding whether a student qualifies for graduation or not. To solve this issue we apply advanced technical knowledge to create a grammatical language and to solve a NP-complete problem (specifically the satisfiability problem).
There are no alternative solutions that are available to University of Waterloo students. There are few course planners created by other universities but they are not public or accessible. Our benefits over alternative implementations include having a more user friendly interface and a more robust backend capable of handling sophisticated degree requirement rules.
The objective is accomplished when we create a tool that can be used by students to plan out the courses for their degree.
Group members: Kevin Dai, Yi Fei Chen, Victor Jeung, Zhe Yu Lin
Team CLAC: MarkBox - Automated multiple-choice exam grading
MarkBox is a web-based application used by University of Waterloo instructors to administer multiple choice exams. Detailed feedback for students and powerful analytics for instructors were among the many features that set it apart from previous marking systems. However, it did not scale well to classes with hundreds of students or tests with close to 100 questions: multi-hour processing times, difficult-to-correct errors, and an unreliable user interface all stood in the way of expanded adoption.
The goal of our project is to resolve these scalability problems so that the entire university community can take advantage of MarkBox and its many benefits. We designed new answer sheets to improve marking accuracy in the face of common problems during printing and scanning. When a scanning error is detected, the instructor can use our new point-and-click correction tools, rather than editing data files by hand. We also modified the grading system to allow for instant answer key changes, eliminating the need to reprocess answer sheets when correcting an error in the key. This work has already proven successful: our improved system was used in the Fall 2016 academic term for a course with over 400 students. The instructor noted that our system was much faster (marking the exam in minutes, not hours), with far fewer grading errors to manually correct.
Group members: Andrew Yiu, Laura Stericker, Chirag Gada, Collin Fair
Team Songhaus: Collaborative, distributed, music creation
Our team aims to create a platform for musicians & composers of all levels to collaborate. We want more original music at high-school concerts, we want to have connected the next band you hear on the radio, and we want to provide tools for everyone in between. To that end, we are creating Songhaus, a real-time collaborative editor for sheet music, note sequences, and audio.
Our approach will use a range of technologies to address the different aspects of music creation. For the real-time collaborative editing of MIDI and sheet music, we will use Operational Transformation. Operational Transformation is a technology for applying atomic modifications to a document that is employed by current collaborative editing tools such as Google Docs. For the editing of audio, we will integrate with third-party audio editing software, such as Audacity. All of this will be tied together with cloud storage to allow song data to be accessed and edited from anywhere at any time.
We hope that more people will try composing, that better songs will be written, and that great songs will be discovered by others. Songhaus’ success will be measured by satisfaction and time spent amongst composers and musicians that use it.
Group members: Sameer Ahmad, Shun-Chang Chiang, Kelly McBride, Joel Mizzoni, Joshua Netterfield, Kevin Okal
Team Qube Videos: Generate and discover trending playlists for Youtube
As an avid user of both Spotify and Youtube, I have realized that both lack distinct components and this is a problem. Spotify provides a very intuitive and simplistic interface for creating, managing and updating playlists with music. It also displays currently trending playlists across multiple genres of music in order to help users easily decide on tunes for a workout, party or evening at home. However, Spotify does not allow me to stream my favourite music videos along with the music.
Youtube, mainly a platform for videos, maintains a majority of the music that is available on Spotify in video format. At the same time, it is difficult to effortlessly create, share and discover new music playlists on Youtube. We are always looking for a way to discover new music artists based on current music favourites and share it with a community of users that feel the same way.
The purpose of this project is to solve the problem by providing users with a play list management platform, mainly targeted towards individuals who enjoy music with every activity, much like our group, who want to enjoy watching the video of song while listening to it. Qube videos is a platform integrated with Youtube videos and Youtube play list features, along with bonus features such as repeat, auto-generate play list, discover related videos and trending music for a genre.
Group members: Bumjung Kim, Insoo Choo, Sumit Balani
Team Xylo: Crowd-sourced music play list
In social situations, often there is ambient music being played. However, there is no easy way to play music that appeals to everyone present. Xylo solves that problem by giving users the power to influence the music around them.
Xylo is a crowd-sourced, location based music playlist for groups of all sizes. People can host their own parties, join others, and contribute a constantly evolving playlist. Xylo takes music discovery to a new level.
Sonos speakers tackle the same problem by allowing users to add songs from multiple people into a common playlist. While major competitors require expensive proprietary hardware, Xylo is a free software offering and gives power to the user to influence the song order in the playlist. In a mobile dominated world, Xylo can be used on iOS and Android platforms.
Group members: Angad Kashyap, Raian Huq, Ryan Churaman, Saravanan Vaithianathan
Team ROCKIT: Bringing you the Internet via SMS
Given the recent shift from desktop to mobile devices, there is an expectation for people to be perpetually connected to the Internet. In 2015, 64% of adults in the US reported owning a smart phone, and that number rose to 72% in 2016. A fraction of this population consists of “smartphone dependent” users — those with minimal to no Internet access at home and/or on their mobile devices. This demand to stay connected has given rise to increasingly overpriced data plans offered by telecommunication companies. 48% of smart phone-dependents reported having to cancel their cell phone data plan due to financial constraints, and 51% cancelled due to frequently exceeding maximum data limits. However, increases in data plan costs has led to a decrease in text-and-talk plan costs. Rockit is a mobile application that provides basic Internet access via texting. A server receives user queries as text messages, interprets the queries, searches the Internet, and send back results as texts. For Android users, the experience occurs through an app while other mobile users can use their default texting interface. By providing a bot-like experience similar to Google Assistant or Siri, we aim to provide cheap Internet access without using data.
As Rockit’s objective is to provide cheap access to information, our success metric will be a simple yes/no question sent to users on whether they are satisfied with our service. For opted-in participants, we will monitor their usage of Rockit by logging the frequency of app usage while making note of users with/without data plans. Along with usage, we will collect aggregate data on most popular queries and user feedback.
Group members: Adrian Gaw, Esther Jung, Rachel Mak, Ginelle Gaisano
Team Web in a Box: Prizm - A Web Life-Logging Device
Life-logging, the tracking of activities we do in our lives, is becoming an increasingly popular trend. Currently, there exist wearable devices for recording people’s physical activity, and apps for keeping track of diet habits. However, many people spend a significant amount of time using the Internet every day, and while Internet giants like Google and ISPs track massive amounts of data about users’ browsing habits, users themselves have historically had few methods for recording and understanding their own web usage.
Prizm is a life-logging device that comprehensively records a user’s web activity. By connecting to a Raspberry Pi acting as a wireless access point, a user is able to use the Internet normally from all of their devices while Prizm records their activity by transparently proxying HTTP(S) requests. Similar products exist as browser plugins, but a user’s Internet usage comes from a variety of sources, only one of which being the web browser on their computer. Hence, running analyses only on data collected by browser plugins yields an incomplete picture of a user’s web habits.
By using Prizm, users will be able to get a comprehensive view of how they use the web from all their devices and keep this data to themselves all on a personal artifact: an inexpensive, portable Raspberry Pi.
Group members: Michael Rose, Zhucheng Tu, Patrick White
Team Manifold: Microfluidics Design Automation
Manifold is an open source high-level language for systems engineering developed at the University of Waterloo. We are extending a prototype language initially developed by an FYDP team in the SE 2015 cohort. This prototype had simple language features and focused on describing digital circuits.
In microfluidics, engineers currently need to develop systems of equations that represent their circuits by hand. They must then manually solve these equations to determine the system’s viability. With Manifold, engineers can describe their microfluidic systems in a functional programming style. Manifold converts this system code into inputs for the dReal satisfiability solver and the MapleSim simulator, allowing engineers to test designs without needing to physically construct the circuits.
The Manifold compiler is split into a front-end and a back-end. The front-end compiles the Manifold code into a system schematic. The microfluidics back-end converts the schematic into inputs for multiple third-party solver tools.
We have extended Manifold from a system design language to an end-to-end tool chain for microfluidic circuit design. The Manifold front-end now supports a feature-rich language as well as domain-specific support for microfluidic circuits. The microfluidics back-end generates inputs to MapleSim and dReal, allowing engineers to quickly detect flawed designs.
Group members: Michael Lyons, Paul Roth, Peter Socha, Nik Klassen, Michael Prysiazny
Team SAT: SAT Solver on GPUs
The Satisfiability (SAT) problem is the problem of determining if there exists an interpretation (true/false assignments to the variables) that satisfies a given Boolean formula. SAT is an NP-complete problem. There are very few systematic approaches that can solve arbitrary SAT formulas predictably in a reasonable amount of time. It is difficult to leverage parallelism effectively to increase the performance of a SAT solver.
Our team is partnering with Steven Stewart, a PhD student, and Professor Derek Rayside in their research work of optimizing a SAT-solver using GPUs. GPU performance has been increasing rapidly over the last decade. The GPU can inspect the status of large numbers of clauses in parallel under a given assignment, and the GPU can reliably perform this step in “constant” time. The crux of our approach is to prototype a “heterogeneous system” that is able to exploit massive parallelism to “saturate the hardware” of the GPU. A heterogeneous system means that we are leveraging both the CPU and the GPU in their own unique, advantageous ways. We hope this will lead to significant improvements in SAT-solving time, as well as lay a foundation for future research work and experiments to build upon.
Group members: Da Tang, Steven Stewart, Emmanuel Lee, Yuxin Tang, Fikayo Odunayo, Ameen Patel
Team Capital Software: GPU Kernel Optimization
One of the tasks in GPU kernel optimization is determining the best way to access memory. The correct access strategy varies from chip to chip. It is therefore desirable to abstract away the physical organization of underlying memory from logical programs. Programmers can then write code without worrying about the hardware the code will run on. A separate general framework can later determine the optimal memory arrangement required.
Currently, existing GPU have limited support for data abstraction. In order to change physical memory arrangements, significant portions of the kernel may have to be rewritten. When programs have to be optimized for the machine it is running on, each machine-oriented decision may require rewrites to parts of the kernel, making testing different decisions a daunting task. Data abstraction would allow programmers to completely ignore how underlying data arrangement is handled, and allow an embedded DSL library to encapsulate different memory management choices. An optimization tool can then be used to find the best memory arrangement scheme.
Our expectation is to help create a DSL library that can encapsulate different memory schemes. This library should integrate with the CLTune optimization library. We should observe the DSL library, along with CLTune, is able to find the best management schemes on different chips for a test set of programs.
Group members: Eddy Gao, Minghao Lu, Joanne Deng, Lihao Luo, Jason Shao
Team STORM: Home Augmented Reality Decorator
Ikea, the world’s largest furniture retailer maintains multiple commerce channels for consumers in print, online, and in stores with ≈200 million printed catalogues, >700 million store visits, and >2 billion visits to ikea.com, the largest of the three. Hence e-commerce, yields a rate of returns of ≈10 percent, three times higher than that of transactions made at brick-and-mortar stores. This difference is attributed to the consumer being less informed about the product at the time of purchase when shopping for furniture online, leading to dissatisfaction with the size, aesthetics or decorum compatibility with the furniture post-transaction.
This project utilizes augmented reality software on the Microsoft HoloLens platform to provide better spatial and aesthetic information about the retail products in the Ikea catalogue, making remote e-commerce on parity with in-store visits and decrease information asymmetry. This provides users a more immersive experience and convenient relays spatial information before transactions without the need for premature shipment, assembly or furniture movement/placement, ultimately reducing the rate of returns/exchanges.
The user’s interactions in selecting, moving and pinning the holographic 3D models while wearing the HoloLens headset will be observed to determine the efficacy of the software in assisting the consumer in selecting the most suitable product. This is measured by the percent of users in the study able to identify the appropriate furniture to purchase using the software versus looking at static images and text. The ease of use and perusal time for user’s interacting with the software is also measured to evaluate likelihood of adoption.
Group members: Monis Khan, Ruoyu Wang, Tianhao Zhu, Oscar Leung
Team Kaiba Corp: Virtual Reality 3D Video Streaming
Three dimensional (3D) video is an expensive endeavour that requires a lot of specialized equipment to film correctly. Other alternatives, such as live-streamed 360 video also require expensive professional cameras and do not preserve depth in the video as they remain a 2D medium.
We have created a system that allow users to film and watch 3D videos using simpler equipment through the use of software-based adjustments to allow for calibration of that video. The goal of this system is to make 3D video creation and then consumption a more affordable and accessible experience.
Our system allows 3D videos to be recorded using simpler recording devices such as web cams or phone cameras and displayed on devices such as the Oculus. This approach does suffer from calibration issues (to make two videos blend into a single 3D video) that will need to be solved through a software approach to allow the use of lower quality cameras.
We will evaluate our 3D video system through user evaluation and feedback. This feedback is used to improve the viewer’s comfort when using the system and the streamer’s ability to record video in their desired environment.
Group members: Nanyi Jiang, Sean Wen, Hanbo Yang, Scott McDonald