Serving the Quantitative Finance Community

 
User avatar
Alan
Posts: 2958
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

Parallel RNG and distributed MC

February 11th, 2012, 2:18 pm

QuoteOriginally posted by: outrunquick note: I got CUDA SDK working! It was a crappy install process I must say....My 100 Euro card can do (I ran provided benchmark examples)* a binomial tree option pricing with 2.000 time step: 3.000x per sec* 1.2 billion MC sampels / sec. * 1 billion B&S formula evaluations / sec* pricing an option with 250.000 MC paths: 25.000x per secHow is the tree pricing distributed over the cores?
 
User avatar
Cuchulainn
Posts: 20254
Joined: July 16th, 2004, 7:38 am
Location: 20, 000

Parallel RNG and distributed MC

February 12th, 2012, 8:06 am

Quotehttp://developer.download.nvidia.com/compute/cuda/1_1/Website/projects/binomialOptions/doc/binomialOptions.pdf[/L]General questions..What I miss in this (very) short note is the rationale/compelling reasons for using parallel computing techniques to price a *single* option using BM. The problem is too small to warrant this. The author does not mention speedup. It is a sledgehammer to crack a nut imo. Or maybe I missed the point What is more practical is loop-level parallelism of an option portfolio. Then you have 1:1 between core and BM algo? Even for 2d PDE it is not clear if multithreading is optimal. Anecdotal evidence suggests CUDA for PDE is even slower than the sequential code.
Last edited by Cuchulainn on February 11th, 2012, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 20254
Joined: July 16th, 2004, 7:38 am
Location: 20, 000

Parallel RNG and distributed MC

February 12th, 2012, 9:43 am

QuoteOriginally posted by: outrunYou'll have a cognitive dissonance untill you code a GPU I expect The option is simply priced much quicker because the GPU has more computing power. They demonstrate a method on how to utilize that power for solving this problem. Having a quicker option pricing engine has many benefits, current CPU power isnt at a maginal sweet-spot that validated sticking to just that. This example code is made purely for the purpose of demonstrating it is faster on cheaper hardware.Fair enough. Problem statement still to be answered edit: it is now a question to GPU community.
Last edited by Cuchulainn on February 11th, 2012, 11:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 20254
Joined: July 16th, 2004, 7:38 am
Location: 20, 000

Parallel RNG and distributed MC

February 12th, 2012, 10:54 am

QuoteOriginally posted by: outrunQuoteOriginally posted by: CuchulainnQuoteOriginally posted by: outrunYou'll have a cognitive dissonance untill you code a GPU I expect The option is simply priced much quicker because the GPU has more computing power. They demonstrate a method on how to utilize that power for solving this problem. Having a quicker option pricing engine has many benefits, current CPU power isnt at a maginal sweet-spot that validated sticking to just that. This example code is made purely for the purpose of demonstrating it is faster on cheaper hardware.Fair enough. Problem statement still to be answered Indeed! It's a demo of capabilities, not a solution based on a problem. Of course the NVIDIA marketing department hopes that there is some alignment between the two.For myself I have a MCMC that takes endless (30 minutes). I've now coded it in a vanilla single thread: can bring it down with a factor 12 on my dual CPU server, and maybe down by a factor 100 on the GPU, and by 1000 if I buy a better GPU for E 1.400 or so... So I'm definately going rewrite it to be able to run on both multi-core and GPU because that will alow me to do much better interactive experiment. ... So that's why I'm enthusiastic.It is exciting for sure. What are the benzine costs for a typical 50000 core GPU? Don't try it at home or just use at the office (costs are m^2 not what we use...)
 
User avatar
MiloRambaldi
Posts: 1
Joined: July 26th, 2010, 12:27 am

Parallel RNG and distributed MC

February 12th, 2012, 9:01 pm

QuoteOriginally posted by: outrunHee Milo, of-course we accept your work, can you send me an email so that I can give you write access to the "random" project? What would be really great!The random project uses CMake which I'm not familiar with. Is the plan to use CMake, rather than including specific MSVS solution/project files? I tried CMake but it can't find/recognize boost. Do I need to use boost-cmake?
 
User avatar
caxwl
Posts: 0
Joined: February 8th, 2012, 2:27 pm

Parallel RNG and distributed MC

February 14th, 2012, 9:22 am

Hi allJust discovered this forum thread discussing more up to date PRNG; being a long time PRNG sufferer myself, and tried various methods including WELL, KISS, Mersenne twister, SPRNG using variations of parallel blocking, leaping, stream individual seeds. (Random123 will be the next analysis project. ) Is there a single method which is becoming more prevalent in generating MC parallel RNG's?Or should I sit back and wait for Intel's Bull Mountain to turn up with their RdRand
Last edited by caxwl on February 13th, 2012, 11:00 pm, edited 1 time in total.
 
User avatar
MiloRambaldi
Posts: 1
Joined: July 26th, 2010, 12:27 am

Parallel RNG and distributed MC

February 15th, 2012, 9:50 am

QuoteOriginally posted by: outrunMiloRambaldi,You can check-in MSVC solution files for the unit tests (but don't check in any *generated* files to keep it clean). Cmake can also generate the solution files for various version of MSVC (edit: looks liek you need to have the specific VC version installed) so maybe it's better to generate them?The line find_package( Boost )should tell cMake to find boost on your disks. other people having this issueFor some reason I had to tell Cmake where to find my boost installation before the "find_package( Boost )". Yes, I agree that its better to let Cmake generate as much as possible. The only thing it seems to be missing for now is support for MSVS property sheets (I found the documentation for Cmake rather poor, btw). If you know how to set MSVS User Macros from Cmake, please let me know. Then we could have a property sheets folder containing sheets that could be added to MSVS projects by hand after they are generated by Cmake.