User Tools

Site Tools


hpc-cluster:r

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hpc-cluster:r [2013/05/02 11:28]
sluedtke Beispiel für "dompi" hinzugefügt
— (current)
Line 1: Line 1:
-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 [[http://math.acadiau.ca/ACMMaC/Rmpi/http://example.com| Rmpi]] 
  
hpc-cluster/r.1367494091.txt.gz · Last modified: 2013/05/02 11:28 by sluedtke