Yüksek Performanslı R Programlama: Rcpp ile C++ Entegrasyonu

R programlama dili tasarımı ve yapısı itibariyle performans vadetmeyen, yavaş bir programlama dili. Bunda herhangi bir şüphemiz yok. Kodunuzu hızlı olması için ne kadar optimize etseniz dahi beklediğiniz performansı elde edemeyebilirsiniz. İşte bu hız faktörünün önemli olduğu orta-üst ölçekli projeler için büyük bir sorun… Peki bu sorunu nasıl aşabiliriz?

Bu noktada karşımıza R ile birlikte gelen Rcpp kütüphanesi çıkıyor. Rcpp kütüphanesi, R programlama dilinin C API’sından yalıtılmış yüksek performanslı kod yazmamıza olanak tanıyan temiz ve ulaşılabilir bir API sunar. Bu sayede Rcpp kütüphanesi ile ileri C++ bilgisine gerek duymadan, R programlama dilinin stiline yakın bir biçimde kodunuz içerisindeki temel işlevleri C++ ile yazarak kodunuzun performansını ciddi biçimde arttırabilirsiniz. Rcpp, kullanım kolaylığı için yürütme hızından ödün vermez, bundan dolayı yüksek performans elde edilir.

O halde, gelin, hep birlikte Rcpp’nin hangi kullanım durumlarına yönelik çözüm sunduğunu, kurulumunu ve kullanım örneklerini inceleyelim. 🙂

İÇİNDEKİLER

1. Rcpp Hangi Kullanım Durumları İçin Çözüm Sunar?

2. Rcpp Kütüphanesi Kurulumu

3. Rcpp Kütüphanesi Örnek Kullanımı

1. Rcpp Hangi Kullanım Durumları İçin Çözüm Sunar?

R programlama dilinin zayıf olduğu aşağıdaki durumlara çözüm sunar:

  • Bir sonraki yinelemelerin önceki yinelemelere bağlı olduğu döngü işlemleri,
  • Bir vektörün / matrisin her bir elemanına erişim,
  • Döngüler içinde tekrarlayan fonksiyon çağrıları,
  • Vektörlerin boyutunu dinamik olarak değiştirme,
  • Gelişmiş veri yapıları ve algoritmalar gerektiren işlemler,
  • Makine öğrenimi ve istatistiksel hesaplamaları güçlendirme,

gibi daha bir çok konuda C++’ın gücünden faydalanıp çok harika sonuçlar elde edebilirsiniz. Bu sebepten yüzlerce CRAN paketi Rcpp’yi kullanmaktadır.

2. Rcpp Kütüphanesi Kurulumu

Rcpp, temel R kurulumuna ilave olanak C++ derleyicimizi yükledikten daha sonrasında ise buradan veya install.packages("Rcpp") komutuyla kurulabilir.

C++ Derleyici Kurulumu (Windows)

MinGW derleyicisini de içinde barındıran RTools Build’i buradan sisteminize kurarak gerekliliklerinizi tamamlayabilirsiniz.

C++ Derleyici Kurulumu (Linux)

sudo apt install gcc build-essential

C++ Derleyici Kurulumu (OSX)

xcode-select --install

3. Rcpp Kütüphanesi Örnek Kullanımı

Temel Kullanım Formatı

  • #include <Rcpp.h>  Rcpp paketi tarafından tanımlanan sınıfları ve işlevleri kodumuzda kullanmamızı sağlar.
  • // [[Rcpp :: export]] tanımlayıcısının kullanıldığı fonksiyona R tarafından erişilebilir. Bu tanımlayıcıyı R’den kullanmak istediğiniz her fonksiyona eklemeniz gerekir.
  • Bu tanımlama Rcpp kütüphanesindeki sınıfları ve fonksiyonları kullanımımız için tanımlar. Ancak bu tanımlamayı kullanmayıp, Rcpp tarafından tanımlanan sınıfları ve işlevleri belirtmek için Rcpp:: önekini ekleyerek de işlevleri kullanabilirsiniz. (Örneğin: Rcpp::NumericVector)
  • DONUS_DEGERI FONKSIYONADI(ARGUMANT_TIPI ARGUMANT) için veri türü işlev ve bağımsız değişkenlerini belirtmeniz gereklidir.

Örnek Kullanım – 1

Derleme
Rcpp::sourceCpp() işlevi kaynak kodunuzu derler ve tanımlanan işlevi R’ye yükler.

Fonksiyonu Çalıştırma
Daha sonrasında Rcpp işlevinizi her zamanki R işleviniz gibi kullanabilirsiniz.

Örnek Kullanım – 2 (MLPack -KMeans)

R ile Kullanım

Final

Rcpp kütüphanesi ile ilgili daha fazla detaylı bilgiyi buradan alabilirsiniz.

Rcpp ile ilgili deneyimlerinizi ve yorumlarınızı aşağıdaki yorum kısmından belirtebilirsiniz. 🙂

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.