Posts

Showing posts with the label performance

Improve R's Performance using JuliaCall

Image
Improve R's Performance using JuliaCall Improve R's Performance using JuliaCall with Mandel Set Example What is Mandelbrot Set? Mandelbrot set is the set of complex numbers c for which the sequence {0,  f c (0), f c ( f c (0)), …,  f c ( n ) (0),…} remains bounded in absolute value where function f c ( z )= z 2  +  c . For more detailed introduction, you could go to Wikipedia page for Mandelbrot set . The calculation for Mandelbrot set involves heavy computation, and here we will use JuliaCall to speed up the computation by rewriting R function in Julia, and we will also see some easy and useful tips in writing higher performance Julia code. In this example, we will see that JuliaCall actually brings more than 100 times speedup of the calculation. Pure R Implementation The R implementation for the calculation of Mandelbrot set is quite straightforward. Note that it could be proved that if absolute value of one item in the sequence is greater than 2, ...

Bring the power of Julia into R through XRJulia package

R is the software for statistics. It is easy to use and have great flexibility. The most important of all, it has a lot of packages which greatly expand the power of R. But R sometimes suffer from low performance issues. Julia is a new programming language whose main goal is to let high performance scientific computing becomes easy. In this series of blogs, I will talk about how to use XRJulia package to bring the high performance of Julia into the great ecosystem of R, which combines the best of the two worlds. I will first talk about some general recipes to speed up R code, and then talk about why choose Julia and XRJulia. And the introduction to R and XRJulia will be in the second blog of this series. General Advice on speeding up your R script When you have some performance issue with your R script, there are several things you can do: Profile your code, identify the bottleneck for your script, and then try to alleviate it. For example, if the bottleneck of your code is a dee...