Google Summer of Code Wrap up: SciRuby

Friday, January 23, 2015

Today’s Google Summer of Code (GSoC) wrap-up comes from John Woods at the SciRuby Project, an open source collection of scientific libraries for Ruby coders.

The SciRuby Project aims to provide Ruby with scientific capabilities similar to what the wonderful NumPy and SciPy libraries bring to Python. Our goal is to provide a complete suite of statistical, numerical, and visualization software tools for scientific computing. This was our second year participating in Google Summer of Code and four students worked with us over the summer.

Rajat Kapoor worked to flesh out Claudio Bustos' numerical Integration and Minimization gems. Integration now includes thirteen different quadrature algorithms (among them Gauss–Kronrod, Simpson's three-eighths method, Milne's method, Boole's quadrature, and open trapezoid). He also implemented a series of unidimensional optimization methods in Minimization (including Newton–Raphson, golden section, Brent, and quad golden), most of which can also make use of Ruby/GSL for faster execution.

Lahiru Lasandun also contributed to the Integration and Minimization gems. He focused on multidimensional optimization/minimization algorithms, implementing Powell's method, Nelder–Mead, and conjugate gradient. Lahiru also experimented with OpenCL framework support for parallel execution of integration tasks. This strategy works particularly well for large computations.

Magdalen Berns created a Ruby wrapper for FFTW3 (a fast Fourier transform library) with a focus on implementing support for transforms on NMatrix objects. This gem was written almost from scratch in the C and Ruby languages.

Naoki Nishida created Nyaplot, a clever interactive plotting client–server library that is compatible with IRuby. He continues to work on Nyaplot, which has already spawned additional open source software components: extensions for map visualization (Mapnya), circular plots (Bionya), 3D visualizations (Nyaplot3D), and a dataframe library (Daru).

SciRuby is immensely grateful for the opportunity to participate in Google Summer of Code for a second year. We thank our students, mentors, and other contributors for working to develop scientific computing infrastructure in the Ruby language, and we thank Google's Open Source Programs Office for its support.

By John Woods, Director of the Ruby Science Foundation (SciRuby)