@book{ofod,
    title={Options, Futures, And Other Derivatives},
    author={<NAME>},
    volume={8},
    year={2011},
    publisher={Pearson College Div}
},
@article{npfits,
    title={Numerical Procedures for Implementing Term Structure Models {I}: Single-Factor Models},
    author={<NAME>, <NAME>},
    journal={The Journal of Derivatives},
    year={1994}
},
@article{uhwirt,
    title={Using {H}ull-{W}hite Interest-Rate Trees},
    author={<NAME>, <NAME>},
    journal={The Journal of Derivatives},
    year={1996}
}
@article{cmcoic,
    title={Cramming More Components onto Integrated Circuits},
    author={<NAME>},
    year={1965},
    publisher={IEEE}
}
@article{blackscholes,
    title={The Pricing of Options and Corporate Liabilities},
    author={<NAME>, <NAME>},
    year={1973},
    publisher={The University of Chicago Press},
    urlOPT={https://www.jstor.org/stable/1831029?origin=JSTOR-pdf&seq=1#page_scan_tab_contents}
}

@article{rtfftcugpgpufobs,
    author = {<NAME> and <NAME> and <NAME>},
    year = {2015},
    month = {06},
    pages = {},
    title = {Real-Time FFT Computation Using GPGPU for OFDM-Based Systems},
    volume = {35},
    booktitle = {Circuits Systems and Signal Processing}
}

% From Cosmin
% I. FINANCE:  (include this two papers, and try to follow the references from here related to other HPC work on finance domain)

@article{FinPar:TACO,
 author = {<NAME> B{\'e}got, <NAME> <NAME> <NAME> <NAME> Oancea, <NAME>.},
 title = {FinPar: A Parallel Financial Benchmark},
 journal = {ACM Trans. Archit. Code Optim.},
 issue_date = {June 2016},
 volume = {13},
 number = {2},
 month = jun,
 year = {2016},
 issn = {1544-3566},
 pages = {18:1--18:27},
 articleno = {18},
 numpages = {27},
 urlOPT = {http://doi.acm.org/10.1145/2898354},
 doiOPT = {10.1145/2898354},
 acmid = {2898354},
 publisher = {ACM},
 addressOPT = {New York, NY, USA},
 keywords = {Data-parallel functional language, fission, fusion, strength reduction},
}

@inproceedings{LexiFiPricing,
 author = {<NAME>. and <NAME> <NAME> <NAME> <NAME>},
 title = {Financial {S}oftware on {GPU}s: Between {H}askell and {F}ortran},
 booktitle = {Proceedings of the 1st ACM SIGPLAN Workshop on Functional High-performance Computing},
 series = {FHPC '12},
 year = {2012},
 isbn = {978-1-4503-1577-7},
 location = {Copenhagen, Denmark},
 pages = {61--72},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/2364474.2364484},
 doi = {10.1145/2364474.2364484},
 acmid = {2364484},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {autoparallelization, functional language, memory coalescing, strength reduction, tiling},
}

% II. LANGUAGE CONSTRUCTS: 

% This is the seminal paper on "scan" as a basic block of parallel programming:

@inproceedings{Accelerate-ICFP,
 author = {McDonell, <NAME>. and Chakravarty, <NAME>. and <NAME> and Lippmeier, Ben},
 title = {Optimising Purely Functional GPU Programs},
 booktitle = {Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming},
 series = {ICFP '13},
 year = {2013},
 isbn = {978-1-4503-2326-0},
 location = {Boston, Massachusetts, USA},
 pages = {49--60},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/2500365.2500595},
 doi = {10.1145/2500365.2500595},
 acmid = {2500595},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {array fusion, arrays, data parallelism, dynamic compilation, embedded language, gpgpu, haskell, sharing recovery},
} 

@inproceedings{AccelerateStreaming,
 author = {Clifton-Everest, <NAME> McDonell, <NAME>. and Chakravarty, <NAME>. and <NAME>},
 title = {Streaming Irregular Arrays},
 booktitle = {Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell},
 series = {Haskell 2017},
 year = {2017},
 isbn = {978-1-4503-5182-9},
 location = {Oxford, UK},
 pages = {174--185},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/3122955.3122971},
 doi = {10.1145/3122955.3122971},
 acmid = {3122971},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Data parallelism, Embedded languages, Functional languages, Parallel programming languages, Streaming languages},
}

@phdthesis{svensson2011obsidian,
  title={Obsidian: {GPU} Kernel Programming in {H}askell},
  author={<NAME>},
  year={2011},
  school={Chalmers University of Technology}
}

@ARTICLE{ GrelSchoIJPP06,
  AUTHOR    = {<NAME> and <NAME>},
  TITLE     = {{SAC}: A Functional Array Language for Efficient Multithreaded Execution},
  JOURNAL   = {Int. Journal of Parallel Programming},
  YEAR         = 2006,
  VOLUME    = {34},
  NUMBER    = {4},
  PAGES     = {383--427},
  NOTEOPT      = {},
  CONTENTS  = {[ISSN: 0885-7458 (Paper) 1573-7640 (Online)]},
  sourceURL = {http://dx.doi.org/10.1007/s10766-006-0018-x},
  TOPICSOPT    = {SAC},
  AFFILOPT     = {ctca}
}

@INPROCEEDINGS{ HybType,
  AUTHOR    = {<NAME> and <NAME>},
  TITLE     = {Towards {H}ybrid {A}rray {T}ypes in {SAC}},
  EDITOR    = {<NAME> and <NAME> and <NAME>},
  BOOKTITLE = {7th Workshop on Prg. Lang., (Soft. Eng. Conf.)},
  YEAR      = 2014,
  PAGES     = {129-145},
  location = {Kiel, Germany},
  TOPICSOPT    = {SAC}
}

@article{SaCShared2005,
  author = {<NAME>},
  title = {Shared Memory Multiprocessor Support for Functional Array Processing in {SAC}},
  journal = {Journal of Functional Programming (JFP)},
  volume = {15},
  number = {3},
  pages = {353--401},
  year = {2005}
}

@article{segScan,
  title={{S}cans as {P}rimitive {P}arallel {O}perations},
  author={<NAME>},
  journal={Computers, IEEE Transactions},
  volume={38},
  number={11},
  pages={1526--1538},
  year={1989}
}

@inproceedings{Halide,
 author = {Ragan-Kelley, <NAME> <NAME> <NAME> <NAME> <NAME>},
 title = {Halide: A Language and Compiler for Optimizing Parallelism, Locality, and Recomputation in Image Processing Pipelines},
 booktitle = {Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation},
 series = {PLDI '13},
 year = {2013},
 isbn = {978-1-4503-2014-6},
 location = {Seattle, Washington, USA},
 pages = {519--530},
 numpages = {12},
 urlOPT = {http://doi.acm.org/10.1145/2491956.2462176},
 doi = {10.1145/2491956.2462176},
 acmid = {2462176},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {autotuning, compiler, domain specific language, gpu, image processing, locality, optimization, parallelism, redundant computation, vectorization},
}

@inproceedings{tang2011pochoir,
	Author = {<NAME> <NAME> and Kuszmaul, <NAME> and <NAME> and Leiserson, <NAME>},
	Booktitle = {Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures},
	Organization = {ACM},
	Pages = {117--128},
	Title = {The pochoir stencil compiler},
	Year = {2011}
}

@inproceedings{HPAT,
	Acmid = {3079099},
	Address = {New York, NY, USA},
	Articleno = {9},
	Author = {<NAME> <NAME>. and <NAME>},
	Booktitle = {Proceedings of the International Conference on Supercomputing},
	Doi = {10.1145/3079079.3079099},
	Isbn = {978-1-4503-5020-4},
	Keywords = {automatic parallelization, big data analytics, high performance computing},
	Location = {Chicago, Illinois},
	Numpages = {10},
	Pages = {9:1--9:10},
	Publisher = {ACM},
	Series = {ICS '17},
	Title = {{HPAT}: {H}igh {P}erformance {A}nalytics with {S}cripting {E}ase-of-use},
	Url = {http://doi.acm.org/10.1145/3079079.3079099},
	Year = {2017},
	Bdsk-Url-1 = {http://doi.acm.org/10.1145/3079079.3079099},
	Bdsk-Url-2 = {http://dx.doi.org/10.1145/3079079.3079099}
}

@article{OP2-Mesh,
	Acmid = {2562939},
	Address = {Amsterdam, The Netherlands, The Netherlands},
	Author = {<NAME>. and <NAME> <NAME> <NAME> <NAME>.},
	Doi = {10.1016/j.parco.2013.09.004},
	Issn = {0167-8191},
	Issue_Date = {November, 2013},
	Journal = {Parallel Comput.},
	Keywords = {Active library, Domain specific language, GPU, Heterogeneous systems, OP2, Unstructured mesh},
	Month = nov,
	Number = {11},
	Numpages = {24},
	Pages = {669--692},
	Publisher = {Elsevier Science Publishers B. V.},
	Title = {Design and Initial Performance of a High-level Unstructured Mesh Framework on Heterogeneous Parallel Systems},
	Url = {http://dx.doi.org/10.1016/j.parco.2013.09.004},
	Volume = {39},
	Year = {2013},
	Bdsk-Url-1 = {http://dx.doi.org/10.1016/j.parco.2013.09.004}
}

@article{DeliteDSLs,
 author = {<NAME>. and <NAME>. and <NAME> and <NAME> and <NAME> <NAME> and <NAME>},
 title = {Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific Languages},
 journal = {ACM Trans. Embed. Comput. Syst.},
 issue_date = {July 2014},
 volume = {13},
 number = {4s},
 month = apr,
 year = {2014},
 issn = {1539-9087},
 pages = {134:1--134:25},
 articleno = {134},
 numpages = {25},
 urlOPT = {http://doi.acm.org/10.1145/2584665},
 doi = {10.1145/2584665},
 acmid = {2584665},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Domain-specific languages, code generation, language virtualization, multistage programming},
}

@inproceedings{StreamJava8,
 author = {<NAME> <NAME> <NAME> <NAME>},
 title = {Compiling and Optimizing Java 8 Programs for GPU Execution},
 booktitle = {Proceedings of the 2015 International Conference on Parallel Architecture and Compilation (PACT)},
 series = {PACT '15},
 year = {2015},
 isbn = {978-1-4673-9524-3},
 pages = {419--431},
 numpages = {13},
 url = {http://dx.doi.org/10.1109/PACT.2015.46},
 doi = {10.1109/PACT.2015.46},
 acmid = {2923809},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA}
}



% Include some Futhark references (since you'll be using it):
% - main Futhark paper:

@inproceedings{henriksen2017futhark,
 author = {<NAME> Serup, <NAME> <NAME> Henglein, <NAME> <NAME>.},
 title = {Futhark: Purely Functional GPU-programming with Nested Parallelism and In-place Array Updates},
 booktitle = {Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation},
 series = {PLDI 2017},
 year = {2017},
 isbn = {978-1-4503-4988-8},
 location = {Barcelona, Spain},
 pages = {556--571},
 numpages = {16},
 url = {http://doi.acm.org/10.1145/3062341.3062354},
 doi = {10.1145/3062341.3062354},
 acmid = {3062354},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {GPGPU, compilers, functional language, parallel},
}

% - efficient implementation of map-reduce composition:

@inproceedings{Futhark:redomap,
 author = {<NAME> <NAME> <NAME>.},
 title = {Design and {GPGPU} Performance of Futhark's Redomap Construct},
 booktitle = {Proceedings of the 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming},
 series = {ARRAY 2016},
 year = {2016},
 location = {Santa Barbara, CA, USA},
 pages = {17--24},
 numpages = {8},
 acmid = {2935326},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {GPGPU, autoparallelization, functional language, map-reduce},
}

% - futhark interoperability with python, APL

@inproceedings{Henriksen:2016:AGT:2975991.2975997,
    Acmid = 2975997,
    Address = {New York, NY, USA},
    Author = {<NAME> <NAME>, Henrik and Kiehn, <NAME> and <NAME> and Abelskov, Hjalte and <NAME> and Oancea, Cosmin},
    Booktitle = {Procs. of the 5th Int. Workshop on Functional High-Performance Computing},
    Keywords = {APL, GPGPU, auto-parallelization, functional language},
    Location = {Nara, Japan},
    Numpages = 6,
    Pages = {38--43},
    Publisher = {ACM},
    Series = {FHPC'16},
    Title = {{APL} on {GPU}s: {A} {TAIL} from the {P}ast, {S}cribbled in {F}uthark},
    Year = 2016
}

@inproceedings{henriksen2014bounds,
 author = {<NAME> <NAME>.},
 title = {Bounds Checking: An Instance of Hybrid Analysis},
 booktitle = {Proceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming},
 series = {ARRAY'14},
 year = {2014},
 isbn = {978-1-4503-2937-8},
 location = {Edinburgh, United Kingdom},
 pages = {88:88--88:94},
 articleno = {88},
 numpages = {7},
 url = {http://doi.acm.org/10.1145/2627373.2627388},
 doi = {10.1145/2627373.2627388},
 acmid = {2627388},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {autoparallelization, functional language, subscripts bounds checking},
}

% III. STATIC ANALYSIS (no runtime overhead but inaccurate)

% -- Flattening transformation -- respects the work-depth asymptotic of the nested-parallel program, but does not take into account communication/locality.
% In fact it makes further locality optimizations impossible => slow

@article{blelloch1994implementation,
  title={Implementation of a {P}ortable {N}ested {D}ata-{P}arallel {L}anguage},
  author={Blelloch, <NAME> and <NAME> and <NAME> and <NAME>},
  journal={Journal of parallel and distributed computing},
  volume={21},
  number={1},
  pages={4--14},
  year={1994},
  publisher={Elsevier}
}

@article{Bergstrom:2012:NDG:2398856.2364563,
 author = {Bergstrom, <NAME>},
 title = {Nested Data-parallelism on the {GPU}},
 journal = {SIGPLAN Not.},
 issue_date = {September 2012},
 volume = {47},
 number = {9},
 month = sep,
 year = {2012},
 issn = {0362-1340},
 pages = {247--258},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/2398856.2364563},
 doi = {10.1145/2398856.2364563},
 acmid = {2364563},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {gpgpu, gpu, nesl, nested data parallelism},
}

% -- polyhedral analysis: exact for affine programs. for example it cannot analyze subscripted subscripts (accesses through indirect arrays).
% Used for example in the context of automatic parallelization of loops or optimization of locality of reference.

@inproceedings{PolyhedralOpt,
 author = {<NAME> <NAME> <NAME>},
 title = {Loop Transformations: Convexity, Pruning and Optimization},
 booktitle = {Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
 series = {POPL '11},
 year = {2011},
 isbn = {978-1-4503-0490-0},
 location = {Austin, Texas, USA},
 pages = {549--562},
 numpages = {14},
 url = {http://doi.acm.org/10.1145/1926385.1926449},
 doi = {10.1145/1926385.1926449},
 acmid = {1926449},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {affine scheduling, compilation, compiler optimization, loop transformations, parallelism},
}

@inproceedings{PolyPluto1,
	Acmid = {1375595},
	Address = {New York, NY, USA},
	Author = {<NAME> <NAME> <NAME>. and <NAME>.},
	Booktitle = {Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation},
	Doi = {10.1145/1375581.1375595},
	Isbn = {978-1-59593-860-2},
	Keywords = {affine transformations, automatic parallelization, locality optimization, loop transformations, polyhedral model, tiling},
	Location = {Tucson, AZ, USA},
	Numpages = {13},
	Pages = {101--113},
	Publisher = {ACM},
	Series = {PLDI '08},
	Title = {A Practical Automatic Polyhedral Parallelizer and Locality Optimizer},
	Url = {http://doi.acm.org/10.1145/1375581.1375595},
	Year = {2008},
	Bdsk-Url-1 = {http://doi.acm.org/10.1145/1375581.1375595},
	Bdsk-Url-2 = {http://dx.doi.org/10.1145/1375581.1375595}}

@article{PolyPluto2,
 author = {<NAME> <NAME>, <NAME> <NAME>\'{o}mez, <NAME>, <NAME>},
 title = {Polyhedral Parallel Code Generation for CUDA},
 journal = {ACM Trans. Archit. Code Optim.},
 issue_date = {January 2013},
 volume = {9},
 number = {4},
 month = jan,
 year = {2013},
 issn = {1544-3566},
 pages = {54:1--54:23},
 articleno = {54},
 numpages = {23},
 url = {http://doi.acm.org/10.1145/2400682.2400713},
 doi = {10.1145/2400682.2400713},
 acmid = {2400713},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {C-to-CUDA, CUDA, GPU, PPCG., Par4All, Polyhedral model, code generation, compilers, loop transformations},
}

@article{SadayAnalModCache,
 author = {<NAME> <NAME> <NAME>.},
 title = {Analytical Modeling of Cache Behavior for Affine Programs},
 journal = {Proc. ACM Program. Lang.},
 issue_date = {January 2018},
 volume = {2},
 number = {POPL},
 month = dec,
 year = {2017},
 issn = {2475-1421},
 pages = {32:1--32:26},
 articleno = {32},
 numpages = {26},
 url = {http://doi.acm.org/10.1145/3158120},
 doi = {10.1145/3158120},
 acmid = {3158120},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Compiler optimization, performance analysis, static analysis},
}

@inproceedings{HexaTiling,
 author = {<NAME> Cohen, <NAME> Holewinski, <NAME> <NAME>. and <NAME>},
 title = {Hybrid Hexagonal/Classical Tiling for GPUs},
 booktitle = {Procs. Int. Symposium on Code Generation and Optimization},
 series = {CGO '14},
 year = {2014},
 isbnOPT = {978-1-4503-2670-4},
 locationOPT = {Orlando, FL, USA},
 pages = {66:66--66:75},
 articlenoOPT = {66},
 numpagesOPT = {10},
 urlOPT = {http://doi.acm.org/10.1145/2544137.2544160},
 doi = {10.1145/2544137.2544160},
 acmidOPT = {2544160},
 publisher = {ACM},
 addressOPT = {New York, NY, USA},
 keywords = {CUDA, GPGPU, Polyhedral compilation, code generation, loop transformations, stencil, time tiling},
}

% IV. Mostly DYNAMIC ANALYSIS (i.e., accurate but at a significant time or/and space overhead) 
% a) Inspector executor models:

% -- for parallelizing irregular applications (extracting partial parallelism)

@ARTICLE{InspExecWave,
    author = {<NAME> and <NAME> and <NAME>},
    title = {A {S}calable {M}ethod for {R}un {T}ime {L}oop {P}arallelization},
    journal = {Int. Journal of Par. Prog},
    journalOPT = {International Journal of Parallel Programming},
    year = {1995},
    volume = {26},
    pages = {26--6}
}

% -- for optimizing locality

@inproceedings{Strout:DataItReord,
 author = {Strout, <NAME> and <NAME> and <NAME>},
 title = {Compile-time Composition of Run-time Data and Iteration Reorderings},
 booktitle = {Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation},
 series = {PLDI '03},
 year = {2003},
 isbn = {1-58113-662-5},
 location = {San Diego, California, USA},
 pages = {91--102},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/781131.781142},
 doi = {10.1145/781131.781142},
 acmid = {781142},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {data remapping, inspector/executor, iteration reordering, optimization, run-time transformations, sparse tiling},
}

@inproceedings{Kennedy:DataReord,
 author = {<NAME> <NAME>},
 title = {Improving Cache Performance in Dynamic Applications Through Data and Computation Reorganization at Run Time},
 booktitle = {Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation},
 series = {PLDI '99},
 year = {1999},
 isbn = {1-58113-094-5},
 location = {Atlanta, Georgia, USA},
 pages = {229--241},
 numpages = {13},
 url = {http://doi.acm.org/10.1145/301618.301670},
 doi = {10.1145/301618.301670},
 acmid = {301670},
 publisher = {ACM},
 address = {New York, NY, USA},
}

% - for minimizing communication in distributed-parallel computation

@article{Saday:InspExec,
 author = {<NAME> <NAME> Pouchet, Louis-No\"{e}<NAME> <NAME> Rountev, <NAME> <NAME>.},
 title = {Automatic Parallelization of a Class of Irregular Loops for Distributed Memory Systems},
 journal = {ACM Trans. Parallel Comput.},
 issue_date = {September 2014},
 volume = {1},
 number = {1},
 month = oct,
 year = {2014},
 issn = {2329-4949},
 pages = {7:1--7:37},
 articleno = {7},
 numpages = {37},
 url = {http://doi.acm.org/10.1145/2660251},
 doi = {10.1145/2660251},
 acmid = {2660251},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Distributed-memory systems, inspector-executor, irregular applications, parallelization},
}

% b) Thread-Level Speculation:

% seminal paper:

@Article{LRPD,
  author =      {<NAME> and <NAME>},
  title =      {The {LRPD} {T}est: {S}peculative {R}un-{T}ime {P}arallelization
of {L}oops with {P}rivatization and {R}eduction {P}arallelization},
  journal =      "IEEE Trans. Parallel Distrib. System",
  year =      {1999},
  volume =      {10(2)},
  monthOPT =      "Feb",
  PAGES = "160-199"
}
% and follow up:

@INPROCEEDINGS{R-LRPD,
  author =      { <NAME> and <NAME> and <NAME>},
  title  =   {The {R-LRPD} {T}est: {S}peculative {P}arallelization of {P}artially {P}arallel {L}oops},
  BOOKTITLE =   "Int. Par. and Distr. Processing Symp. (PDPS)",
  pages =    {20--29},
  year =      {2002}
}

% - TLS analysis for optimized memory layout:
@INPROCEEDINGS{Oancea:2008:SDA:1485701.1485712,
 author = {Oancea, <NAME>. and <NAME>},
 title = {Set-Congruence Dynamic Analysis for Thread-Level Speculation ({TLS})},
 booktitle = {Languages and Compilers for Parallel Computing},
 editor = {<NAME>{\'<NAME>},
 year = {2008},
 isbn = {978-3-540-89739-2},
 pages = {156--171},
 numpages = {16},
 url = {http://dx.doi.org/10.1007/978-3-540-89740-8_11},
 doi = {10.1007/978-3-540-89740-8_11},
 acmid = {1485712},
 publisher = {Springer-Verlag},
 address = {Berlin, Heidelberg},
} 


% - for optimizing communication overhead in distributed applications

@INPROCEEDINGS{jaycos:DTLS,
    AUTHOR = {<NAME> and <NAME> and <NAME> and <NAME>},
    TITLE = "Distributed {M}odels of {T}hread-{L}evel {S}peculation",
    BOOKTITLE = "Proceedings of the PDPTA'05",
    pages = {920--927},
    URL = {http://www.csd.uwo.ca/~coancea/Publications},
    YEAR = 2005
}

% V. HYBRID ANALYSIS (combines the advantages of static + dynamic, i.e., accurate at the cost of negligible runtime overhead)

% -- for example used in the context of automatic parallelization, i.e., aggressively generates a cascade of "sufficient conditions" for the loop to be parallel; these are statically generated, but are tested at runtime; if none succeeds the loop is executed sequentially otherwise in parallel. 
% It is shown that a large class of statically-unknown parallel loop can be identified, and moreover that the overhead is negligible in most cases (<1% of loop's runtime and in few cases the overhead is still significant, but it scales with parallelism -- i.e., the predicate is executed in parallel ...)

@inproceedings{Oancea:2012:LIT:2254064.2254124,
 author = {Oancea, <NAME>. and <NAME>},
 title = {Logical Inference Techniques for Loop Parallelization},
 booktitle = {Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation},
 series = {PLDI '12},
 year = {2012},
 isbn = {978-1-4503-1205-9},
 location = {Beijing, China},
 pages = {509--520},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/2254064.2254124},
 doi = {10.1145/2254064.2254124},
 acmid = {2254124},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {auto-parallelization, independence predicates, usr},
} 

@INPROCEEDINGS{SummaryMonot,
    author = {<NAME> and <NAME>},
    title = {A {H}ybrid {A}pproach to {P}roving {M}emory {R}eference {M}onotonicity},
    booktitle = {Int. Languages and Compilers for Parallel Computing (LCPC'11)},
    series = {LNCS},
    volume = 7146,
    year = {2013},
    pages = {61-75}
}

@ARTICLE{HybAn,
    author = {<NAME> and <NAME> and <NAME>},
    title = {Hybrid {A}nalysis: {S}tatic \& {D}ynamic {M}emory {R}eference {A}nalysis},
    journalopt = {International Journal of Parallel Programming},
    journal = {Int. Journal of Par. Prog},
    pages = {251--283},
    volume = {31(3)},
    DOIopt = {doi>10.1145/1075382.1075385},
    year = {2003}
}

@ARTICLE{SUIF,
    author = {<NAME> and <NAME>he and <NAME> and <NAME> and <NAME>},
    title = {Interprocedural {P}arallelization {A}nalysis in {SUIF}},
    journal = {Trans. on Prog. Lang. and Sys. (TOPLAS)},
    journalOPT = {ACM Transactions on Programming Languages and Systems (TOPLAS)},
    pages = {662--731},
    volume = {27(4)},
    DOIopt = {doi>10.1145/1075382.1075385},
    year = {2005}
}

@INPROCEEDINGS{Moon99PredArrDataFlow,
    author = {<NAME> and <NAME>},
    title = {Evaluation of {P}redicated {A}rray {D}ata-{F}low {A}nalysis for {A}utomatic {P}arallelization},
    booktitle = {Int. Symp. Princ. and Practice of Par. Prog. (PPoPP)},
    year = {1999},
    pages = {84--95}
}

@techreport{cudnn,
 author = {NVIDIA},
 title = {{CUDNN} Library User Guide DU-06702-001 v07},
 institution = "{NVIDIA} {C}orporation",
 year = 2017
}

@TECHREPORT {whitehead2018,
    author      = "<NAME>. and <NAME>.",
    title       = "Precision and {P}erformance: {F}loating {P}oint and {IEEE} 754 {C}ompliance for {NVIDIA} {GPU}s",
    institution = "{NVIDIA} {C}orporation",
    year        = "2018"
}
