User Tools

Site Tools


hpc-cluster:r

This is an old revision of the document!


Table of Contents

R ist auf dem Cluster installiert und verwendbar. Ein Vorteil des Clusters ist insbesondere die Möglichkeit, Berechnungen parallel durchzuführen. Dazu sind verschiedene Bibliotheken verfügbar.

Rmpi

Wenn man das Paket Rmpi direkt verwenden will, ist man selbst für die Verteilung der Jobs an die “Slaves” verantwortlich. Außerdem benötigt man ein Skript in beim Start von R dafür sorgt, dass die Slaves verfügbar sind. Das wird meist über eine Datei .Rprofile erreicht, die im Arbeitsverzeichnis oder im Homeverzeichnis liegen muss.

Mögliche Arten, die .Rprofile einzubinden:

  • .Rprofile im Arbeitsverzeichnis wird vom Jobskript für jeden Job extra hinkopiert (z.B. mit cp ~/R/x86_64-unknown-linux-gnu-library/2.15/Rmpi/Rprofile ./.Rprofile)
  • .Rprofile im Homeverzeichnis des Users
  • Die Umgebungsvariable R_PROFILE setzen, sie kann auf eine beliebige Datei verweisen, die als .Rprofile genutzt wird. Die Umgebungsvariable kann im Jobfile, in der .bashrc oder in einem Modulefile gesetzt werden.

dompi

Mit dem Paket dompi kann man z.B. foreach-Schleifen einfach mit dem Zusatz %dopar% parallelisieren. Damit die Slaves hier richtig gestartet werden, darf es aber gerade keine .Rprofile geben.

Ein einfaches Beispiel ist unter ~sluedtke/R_example/ zu finden, bestehend aus der dem jobscript “start_par_R.sh” und dem R-script “dompi_example.R”. Der Job wird ganz normal mit “bsub <start_par_R.sh” gestartet.

In diesem Beispiel werden Indizes für verschiedene Cluster-Gruppen gebildet (Cluster-Gruppen bezieht sich hier auf Zufallszahlen die über über ein euklidische Maß gruppiert wurden). Über die R-Funktion system.time() kann man sehr schön zeigen, das eine Erhöhung der Kerne zu einem deutlichen Zeitgewinn führt.

Achtung

dompi stellt eine einfache Umgebung zur Verfügung die es ermöglicht mit wenig extra Aufwand parallel zu rechnen. Es ist zu beachten, dass dies nicht in jedem Fall sinnvoll ist. Benötigen die einzelnen Iterationen innerhalb der foreach Schleife nur wenig Rechenzeit, ist dieser Ansatz nicht sinnvoll. An dieser Stelle sollte auf die “reine” Rmpi Umgebung gesetzt werden. Deren Anwendung ist jedoch deutlich komplexer. Ein sehr beliebtes Beispiel findet man unter Rmpi

hpc-cluster/r.1383753888.txt.gz · Last modified: 2013/11/06 16:04 by jantha