|
From: Toyin A. <toy...@ho...> - 2007-07-25 03:35:30
|
Hi, I've been reading up on some of QuantLibXL docs and came across a potential issue with the way QuantLib is designed when run on Excel 2007 with dual/quad core machines. I found the following snippet on the web... ####################################################### To a large number of customers, Excels calculation speed is extremely important perhaps the most important feature we ship. When planning Excel 12, we started a small investigation to look at different ways we could make Excel calculate faster on computers that had multi-processor or dual-core chips. The investigation turned out to be promising, so we continued the work, and the result is a very exciting feature that we refer to as multi-threaded calculation, or MTC. (Note this is another working name, not a final name. Also note that our developers refer to this as MTR, or multi-threaded recalculation, but since most customers use the word calculation, I have decided to go that route for this post.) In a nutshell, this feature enables Excel to spot formulas that can be calculated concurrently, and then run those formulas on multiple processors simultaneously. The net effect is that a given spreadsheet finishes calculating in less time, improving Excels overall calculation performance. Excel 12 can take advantage of as many processors (or cores, which to Excel appear as processors) as there are on a machine - when Excel loads a workbook, it asks the operating system how many processors are available, and it creates a thread for each processor. In general, the more processors, the better the performance improvement. ####################################################### This tells me that due to the way that evaluationDate() is handled in QuantLib, it *MAY* be possible to mis-price deals because one thread may set the value of the evaluation date while another then uses the changed value. Within Excel 2003, this is not possible. I haven't tested this, but maybe one has to be carefull how evalDate() is used on spreadsheets (one centralised location and not scattered across spreadsheets). This may restrict how some spreadsheets are designed. Can someone look into this? Is this really an issue? More info on this can be gleamed here... http://blogs.msdn.com/officerocker/archive/2006/08/17/704242.aspx or google for "excel 2007 multithreaded dual core" Toy out... _________________________________________________________________ Got a favourite clothes shop, bar or restaurant? Share your local knowledge http://www.backofmyhand.com |