Pencil is an open source, multi-platform QT-based drawing and animation solution.
Software bugs in the program can cause the application to exhibit anomalous behaviour or degrade in performance. This can cause the program to hang or crash which can ultimately lead to the loss of user data.
We introduce undo and recovery functionality into Pencil that will help the user recover their work by replaying logged operations onto periodically recorded snapshots of the canvas.
Take a look at our results in our report and presentation slides. Contact me for the source.
We evaluate the scatter-gather and inter-neighbour communication traffic for torus and tree topologies under FPGA constraints.
To do this, we created a cycle accurate Simulator, Traffic Generator and implemented the Blocked LU Decomposition and Sudoku Constraint Propagation traffic algorithms. We components are implemented in C++ using Visual Studio 2012.
We have found the torus to be a better candidate for inter-neighbour traffic. Provided we connect the memCntrl intelligently to minimize the distance to it, scatter-gather traffic between compute nodes and memCntrl does not favour either topologies.
Take a look at our report, and source code.
We attempt to generate a highly parallelized Sudoku solver using the pthreads library on the Linux kernel.
Based on our runtime evaluation, we achieved an average speedup of 4.6 times over the serial implementation by using locking and yielding methods with four threads.
LU-Decomposition (LUD) is the most expensive part of solving a system of linear equations with O(n3) time complexity.
We developed a high-performance LUD solution for the Intel/AMD CPU/GPU using OpenCL that can execute across heterogeneous devices without recompilation.
We achieved up to 7.5 times speedup on the AMD GPU compared to our serial Non-Blocked LUD implementation in C++.
Received the 'Certificate of Recognition for Excellence in Design Project' award for our efforts.
The Fraction Library allows you to work with fractions (both improper and mixed) the same way integers are handled in C++. Perform arithmetic, comparison operations, I/O and others. The library is written in C++ using Microsoft Visual C++ 2008 Express Edition.
Fraction Library v1.2 download, documentaion.
Implemented a database storage server using C that users on different computers can access over a network TCP connection.
Documented the design process for the entire duration of the term-long project, working within a 3 people development team.
Used Subversion (SVN) for version control of code and documentation. Learned and applied network programming with sockets and used file I/O.
Used Doxygen to effectively document code.
Built an elevator and a 3 floor elevator shaft using LEGO and utilized NIOS II and assembly language to make the elevator move from one floor to another.
Used LEGO sensors that detects colour to prevent the elevator from hitting the top and bottom of the shaft.
Used a timer built into the DE2 board, Lego Controller and bidirectional motors to control the movement of the elevator.
Used the VGA to display the movement of the elevator on the computer monitor.
Used the LCD screen to display the current floor and other relevant status information.
Implement a maze (which a player can traverse through) on the Video Graphics Array (VGA) using purely hardware, utilizing Quartus II software, working within a team of team of 2 people.
Utilized the LEDs and HEX displays to output the time elapsed since the start of the maze. This timer stops when the user has completed the maze or when the time has run out, at which point "You Lose" is displayed on the VGA.
Led a team of 4 to redesign the current loading dock located behind the Adath Israel Congregation so that it can be utilized both as a garbage disposal and delivery site, as specified by the client, Bernie Rabinovitch, the Executive Director of the Congregation.
Prepared design oriented reports at different stages of the project.
Presented final proposed design and other recommendations to the client and the project manager in a formal group presentation.