Skip to content
plcplc edited this page Feb 25, 2013 · 41 revisions

This page is meant as a kind of top-down report specification/disposition. It should list each of the parts/chapters/sections to be present in the report, and how they should support or illuminate the argument of the report. From this document you should be able to get an overview of the report structure.

Preface

  • [Done] What does the report contain
  • [Almost done] Who have contributed

Introduction

  • [Done] Argue that this is a relevant field of study
  • Explain our project on a high level
  • Argue that this is a relevant project
  • Explain our approach
  • Summarise our contributions
  • Outline report structure

Cases

  • [Done] Introduce option pricing
  • Argue that optimizing the way option pricing is performed is a relevant problem
  • [Done] Introduce binomial option pricing
  • [Done] Simple parallel algorithm
  • [Martin] CUDA algorithm for binomial pricing of portfolios
  • Argue that binomial option pricing is a practically relevant case
  • [Done] Introduce Longstaff & Schwartz option pricing
  • Argue that Sobol sequence generation is a practically relevant case
  • [Martin, almost done] Sobol sequence generation
  • [Done] Note on Uniform -> Normal distribution
  • [Martin] Least Squares
  • Portfolio pricing (Binomial)
  • Portfolio pricing Longstaff & Schwartz

Survey

Survey setup

  • Argue for the selection of Nikola, Accelerate, Repa
  • Argue for the deselection of Obsidian, Feldspar, etc.
  • Argue for our chosen parameters of comparison

Evaluation of project health

  • [Almost done] Tabulation of collected metrics
  • Discussion of collected metrics
  • (Conclusion of project health section)

Evaluation of performance

  • Hardware description
  • Presentation of implemented experiments
  • Presentation of performance data. Graphs.
  • Discussion of performance data. Give plausible explanations.
  • (Conclusion)

Evaluation of expressivity

  • Discussion

    • [Martin] Argue that existing Nikola & Accelerate are hampered by lack of nesting. Display it using our cases that how the programmer must work around the restriction (eg. by rewriting nested maps to use replicate and multidimensional maps in accelerate).

    • [Martin] Argue for our choice of Nikola as our subject for further extensions. (eg. by deeming the Acc/Exp structure of accelerate too limiting.)

  • Display other problems we have found:

    • Nikola: Runtime compilation errors
    • Nikola, Accelerate: Very complex types in embeddings.
  • (Maybe conclusion)

Survey conclusion

  • Summarise our findings in the survey
  • List noteworthy bugs encountered in survey
  • Argue that Nikola is interesting to contribute to

Nikola Extensions

Nikola Introduction

  • [Philip, almost done] Frontend architecture.

    • Still needs: Description of RebindableSyntax. Needs to mention ability to program in Monad P, and that this is explained in the backend section.
  • Backend architecture (Or shift/reset/CPS)

    • Still needs: Monad (R r), shift/reset/continuation based code generation explanation. How the components of the backend interact during compilation.
  • [Philip, almost done] Module reference

    • Still needs: Section on shift/reset/Monad (R r) (shouldn't be much more than type signatures).

Extensions : fold, unfold, mapNest

  • Motivate the presence of fold, unfold and nested maps.
  • Describe implementation. Remark that it is still yet to be tested.
  • Evaluate by examples.

Extensions : Sequential

  • [Philip] Present sequential Here we should describe the sequential operator, and how it changes the execution model, and how it alleviates the problem of nested operations.
  • Discussion of implementation approaches (typed/untyped?)
  • Evaluation
    • Evaluate expressivity (and versatility) by giving examples, eg. portfolio pricer? multi-dimensional sobol.
    • Remark that it still needs to be tested in practice in order to see if it actually works.

Conclusion

  • Summarise contributions
  • Remark what we think should have been included/investigated/demonstrated for arriving at a more complete contribution
  • Identify future work

Survey "VectorMARK" in progress

Clone this wiki locally