Project Proposal:
Pricing American Asian Options with the Binomial Model
Daniel Lu (dylu), Da-Yoon Chung (dayoonc)
Main Project Page
Summary
We will implement an engine to price path-dependent (Asian) stock options in parallel. Here is a link to a more in-depth summary.
Background (from our detailed summary)
Challenge
Resources
In terms of code, we will be writing our implementation from scratch. We will run our code on the GHC machines with NVidia GPUs.

Here are some outside resources we will be using:
Goals/Deliverables
Our first goal is to implement a correct, sequential CPU version of our option pricing algorithm. This version will be used as a benchmark to compare the accuracy and speedup of our parallel version.

Next, we wish to implement a parallel version of our option pricing algorithm in order to achieve the maximum possible speedup on the Nvidia GTX 480 GPUs. Since there are O(N^2) number of nodes in our recombining tree, for sufficiently large N, we would undoubtedly have sufficient amount of work to keep all of the processors in the GPU busy.

Finally, we would like to compare the results (speed and accuracy) of our algorithm on real-world data and present our statistical findings at the parallelism competition.
Platform
We will be implementing our project on the GHC 3000 machines with NVidia GTX 480 GPUs using C++, CUDA, and Thrust. We decided to write our code for GPUs rather than multi-core systems using OpenMP or MPI because of the small granularity of the units of work we will be parallelizing over, the large number of these units of work, and the many opportunities for sharing memory.
Proposed Schedule
[Please do not modify the schedule on this page after the proposal process (it is your proposed schedule, and it will be useful to compare it to your actually project logs at the end of the project). Update the schedule on your project main page if your goals or timeline changes over the course of the project.]

Week What We Plan To Do
Apr 1-7Develop the proposal
Apr 8-14Write and test a serial implementation
Apr 15-21Begin writing and testing a parallel implementation
Apr 22-28Analyze our current results, and implement optimizations
Apr 29-May 5Test using real world data, compare results and performance to existing alternatives
May 6-11Write the final presentation