Wednesday, August 24, 2011

CB 11.1.2.1 features: 64-bit computing with Crystal Ball and Office 2010

The new release of Crystal Ball is now completely compatible with Microsoft Office 2010 64-bit. Although this is old news for many who have been tracking this closely, we still get decent amount of questions on this topic. This blog post is meant to consolidate my notes on this topic.

Why 64-bit computing

Using 64-bit microprocessors along with a 64-bit operating system (OS) expands the physical limit of the amount of RAM these microprocessors can address. While a 32-bit microprocessor can use only about 3.2 GB of RAM and similar amount of virtual memory, a 64-bit microprocessor can theoretically use 16 exabytes of RAM and virtual memory. Although, the practical limits set forth by the microprocessor vendors like Intel and AMD are significantly less, e.g., 192 GB physical RAM (compared to 2-4 GB for 32 bit) and 8 TB of Virtual memory for a process (compared to 2-3 GB for 32 bit), they are still quite sufficient for most needs. For more information on 64-bit computing, check out the Wikipedia page.

Step in Office 2010 64-bit


The latest version of Microsoft Office, the Microsoft Office 2010, is available in both 32-bit and 64-bit editions. Here is a blog post from the Excel team on the release of the 64-bit edition of Excel 2010, which sheds some light on why this is important.

Why is this important for Crystal Ball


The main benefit in terms of using 64-bit edition of Crystal Ball comes from the ability to use additional memory (either physical or virtual), when running very large models. More specifically, it would be possible to realize the following benefits:
  • Loading and using large models: When loading or using very large Crystal Ball models with large number of assumptions and forecasts, 32-bit Excel and Crystal Ball often used to run out of memory. The problem would have occurred from fitting either the spreadsheet or the Crystal Ball model in the memory. The 64-bit Excel 2010 takes care of the first problem (fitting humongous spreadsheets in memory), and our new 64-bit Crystal Ball takes care of the second problem by using the much larger memory space. Caveat here: Sometimes, Windows itself can bog down if you run out of what is called "resource handles". Large Excel models (with lots of formatting, etc) can use up a lot of resource handles. When Windows runs out of these resource handles, it can sometimes appear like an "out of memory" condition. If you think you are having similar issues with one of your models, please get in touch. 

  • Running more trials: One can run large number of trials (think a few million) for a simulation model. Of course, for a small model, running large number of trials is not required since the typical precision limits can be achieved with much smaller number of trials, and the incremental benefit of running more trials after that is small to none. But for large models with many assumptions, forecasts and with correlations defined, it used to be impossible to run more than tens of thousands of trials, and even then, Crystal Ball used to run out of memory while saving those trial values for all the assumptions and forecasts and create charts. The 64-bit edition of Crystal Ball can handle this, although, the generation of trials and charting refresh can still require substantial amount of time. 

  • Performance improvement: The 32-bit edition of Crystal Ball used to avoid a few types of ‘Out-of-memory’ errors by swapping data to disk and read them back as and when required. As you can guess, using hard drive for storage and retrieval of data is costly. In these cases, one would see a performance improvement while using the 64-bit Crystal Ball, as the complete operation would now be done in-memory, if enough memory is available. You might have to add more RAM in order to achieve the performance improvement mentioned here, but it is a possibility now. Specifically, the Decision Optimizer (i.e., OptQuest) using Extreme Speed runs faster for a few of our internal benchmark models when switched to the 64-bit edition.
Compatibility table for 64-bit Crystal Ball

The 64-bit edition of Crystal Ball needs to meet certain prerequisites to be installed and run.
  • First off, there is a dependency with Operating System here: Office 2010 64-bit only runs on 64-bit Vista or later, which includes 64-bit Vista, 64-bit Windows 7, 64-bit Server 2008 etc. A 64-bit edition of Windows XP is also available, but the 64-bit edition of Office 2010 suite (which includes Excel 2010 64-bit) cannot be run on this platform. 
  • Next, Crystal Ball bit-ness must match that of Excel, i.e., 32-bit Excel 2010 would need the 32-bit edition of Crystal Ball, and 64-bit Excel 2010 would need the 64-bit edition of Crystal Ball. 
In summary, you need to match the correct bit-ness of the trio of [OS - Office - Crystal Ball], in order to run the 64-bit edition of Crystal Ball.

How do I install 64-bit Crystal Ball

The 64-bit edition of Crystal Ball is available from the Oracle e-delivery site along with the 32-bit edition. You can choose either one to download and install.

Language Releases

The 64-bit edition of Crystal Ball is currently available in U.S. English, Japanese and Spanish language.

Update (9/1/2011): Availability in other languages.
Update (10/26/2011): Updated title and tags (SEO).

Sunday, August 14, 2011

Welcome Post

Welcome !!

In this blog, I would be accumulating my thoughts and experiences while developing numerical software, mostly in .NET (though, some posts might be language-neutral, i.e., applicable to any language). Developing mathematical software in any language poses quite a few challenges, which are typically mitigated by language specific features or other advanced concepts.

In this blog, I would also like to focus on other Operations Research (O.R. or OR) concepts, that I have come across while working in this area. Applied Operations Research, i.e., modeling a problem as a mathematical program, and then finding solutions using software for optimizations is, in my experience, quite different than developing Operations Research software. Although the practitioners in both sides start off at the same point, but then the skill-sets picked up over time differs considerably. In my case, for example, I have to pick up quite a bit of matrix algebra, more than what would have been required for an O.R. practitioner.

Anyways, hope you find at least some of the posts interesting.

P.S.: As indicated above, in this post, I will be often abbreviating Operations Research with OR, convenient and simple.