I am a M.A.Sc. student in the Edward S. Rogers Sr. Department of Electrical and Computer Engineering at the University of Toronto. It is a two-year research degree requiring five graduate-level courses and a research thesis, with graduation expected in August 2013.
During my last undergraduate summer term, I worked at L-3 Wescam where I used Matlab and a evaluation kit to demonstrate the signal processing pipeline required for a custom high-definition (1080p) digital video camera, including identifying and devising necessary calibration processes. I also created the algorithm, specified, and oversaw implementation of a video enhancement system called ELAP, which is currently sold as a commercial product. In two and a half years of subsequent full-time employment, I implemented and debugged a considerable portion of the video pipeline in FPGA using VHDL.
In 2008, I turned my attention to risk management in the financial services industry, working in two different areas of Scotiabank and then at Manulife. While working at Scotiabank, I completed all three exams required for the Chartered Financial Analyst (CFA) designation.
Through over a decade of work teaching sailing and a very active workload as a teaching assistant, I have developed very strong teaching, mentoring, and communication skills.
The most current copy of my CV is available here (not up yet, sorry)
I am a crew member at the National Yacht Club, where I race weekly and occasionally volunteer with the race committee.
I race sailing dinghies and serve as Race Chair of the Toronto Island Sailing Club, a community dinghy club located on Toronto Island.
I am a Canadian Yachting Association certified Intermediate Cruising instructor. In that capacity, I occasionally conduct week-long live-aboard courses for Canadian Yacht Charters of Manitoulin Island as well as private individuals in the Caribbean.
Professor Vaughn Betz
Edward S. Rogers Sr. Department of Electrical and Computer Engineering
University of Toronto
Professor Lothar Lilge
Senior Scientist, Ontario Cancer Institute
Professor, Department of Medical Biophysics
I plan to develop an open-source, fully 3D Monte Carlo simulation of light propagation in turbid media. The target application is treatment planning for photodynamic therapy of head and neck cancers (details below).
Based on initial analysis of the problem, it appears to be very amenable to FPGA acceleration due to the high degree of data and pipeline parallelism.
Further performance gains should be possible through an innovative caching strategy that takes advantage of the unique features of the problem. Specifically, since absorption events are simply accumulations (which are commutative) it will be possible to combine and arbitrarily reorder multiple absorption events to the same voxel to economize on memory bandwidth and controller complexity.
Photodynamic Therapy (PDT) is a developing treatment that uses a non-toxic photosensitizer and tissue oxygen to destroy unwanted cells. It finds application in treatment of skin conditions, various cancers, and bacterial infections. The focus of my work with Professor Lilge is creation of a treatment planning system for head and neck cancers (HNC) using optical-fiber probes to deliver the light dose.
One significant challenge with PDT, especially for internal use, is treatment planning: simulation of how light propagates from the probes and is absorbed in tissue. Especially in the head and neck, there are many complex anatomical structures with widely-varying optical properties. The resulting light distribution is impossible to predict analytically, hence a variety of numerical methods are used to simulate it.
Packages such as NIRFAST assume the scattering is isotropic (equally probable in all directions), and that it is significantly more prevalent than absorption. Together, these are called the diffusion approximation and allow formulation as a sparse matrix using the Finite Element Method.
Lihong Wang and Steven Jacques of the Oregon Medical Laser Center produce an open-source package called MCML (Monte Carlo for Multi-Layered media). It takes a different approach, performing Monte Carlo modelling without the approximations above. However, its geometry model is restricted to infinte planar layers. While useful for skin, this cannot accommodate more complex tissue structures.
FPGA devices offer incredible flexibility, internal memory bandwidth, capacity for fine-grained parallelism and IO capabilities. This unique combination presents both great potential, and great challenges due to the difficulty of expressing applications appropriately. I am interested in architecting systems that make use of these advantages to achieve high performance at low size, weight, power, and cost.
CPUs are becoming increasingly parallel, at both the SIMD level (through instructions such as SSE), and the thread level with larger numbers of cores. FPGAs are also continuing their progression from purely "glue logic" to complex processing engines by incorporating increasingly sophisticated arithmetic units and hard IP. Lastly, with the advent of OpenCL and CUDA, GPUs have become an extremely popular platform by using massive thread-level parallelism and very high-bandwidth memory systems, albeit with signficant restrictions in programming style.
With such diverse options and varying abstractions, it is difficult to know which is the optimal platform for implementing a given computation. The problem is further complicated by the probability that different algorithms to solve a given problem perform differently across computing devices. I am interested in understanding the strengths and weaknesses of the abstractions made by each platform for implementing high-performance applications.
I am looking forward to trying out the Bluespec HDL which inherits some ideas from functional programming. I am thoroughly enjoying learning Haskell, an open-source functional computer programming language. See Learn You A Haskell for a fun, informal introduction. Seven Languages in Seven Weeks also provides a good overview.
ECE1387 CAD for Digital Integrated Circuits
ECE1769 Behavioral Synthesis of Digital Integrated Circuits
ECE1754 Compilation Techniques for Parallel Processors
ECE1756 Reconfigurable Computing and FPGA Architecture
DL Pratt Building, rm 372 (Map)
Dept of Electrical and Computer Engineering
University of Toronto
10 King's College Road