You are here

Using ParallelR for High Performance Monte Carlo Simulation on Multiprocessor Computers


We examined the implementation of ParallelR in a parallel computing problem typically found in the financial industry: portfolio analysis. We used a Monte Carlo simulation run in parallel to statistically determine the risk and reward of thousands of different investment portfolios. Our results show excellent performance and the system scales as the number of CPU cores increases. Such software can be developed and run by a typical R user who may not be an expert in parallel programming, which is an important feature since programming in parallel is both difficult and time-consuming.


Organizations must now process and analyze exorbitant amounts of data and use it in real-time to insure their continued competitiveness. However, most problems that present themselves are too complex to be mathematically analyzed using conventional means. This has led to the use of large scale, statistical Monte Carlo simulations.

Also, to keep pace with users' processing needs, computing technology has moved from using a single CPU to using combinations of multicore CPU chips as well as nodes constructed of these chips. The availability of these commodity multiprocessors has meant that Monte Carlo simulations -- which are "embarrassingly parallel" -- can be easily and affordably implemented using a combination of high-level software tools and scripting languages in lieu of conventional compiled languages such as Fortran or C.

Some users have selected the R statistical computing environment for these types of tasks. Now, a user can select ParallelR, specifically designed for parallelizing applications written in R and for developing these sorts of programs, and can write code easily, without the need for formal training in parallel programming. The tool's Sleigh function allows a developer to work within the familiar R environment without the need to master the low-level tools such as MPI.

To illustrate how simply ParallelR can be implemented, we show a Monte Carlo application created for financial services. Our results show that the system provides excellent performance and scales very well.