LGI/Rlgi

From BiGGrid Wiki
Jump to navigation Jump to search
Rlogo.jpg

Rlgi is a package for the programming language R to seamlessly run on an LGI grid. Instead of using the family of apply functions on a heavy computation, you use one of the lgi.par?apply functions. This splits the data in chunks, and runs them on several nodes on the LGI grid. In usage it is similar to the R package Rsge.

Getting started

  1. Obtain your LGI credentials.
    • These are supplied by your service provider (like BiG Grid). They either give you
      • A login for the LGI portal. You'll be able to download a credentials file from the Settings menu, or
      • the LGI.cfg credentials file directly.
    • Store this file as LGI.cfg in your home directory (Unix/Mac) or your profile directory (Windows).
    • Please make sure that this file is secure. It contains your private key and should not be readable by others.
  2. Install the Rlgi package.
    • (Windows only) install the following packages: bitops, snow, XML and RCurl
    • Download the Rlgi package
    • Install this package: R CMD INSTALL Rlgi_0.0.7.tar.gz

Example session

 > library(Rlgi)
 Loading required package: snow
 Loading required package: XML
 Welcome to Rlgi
     Version: 0.0.7
 
 > # non-cluster-aware call, runs locally
 > sapply(c(10:20), function(x){x^3})
  [1] 1000 1331 1728 2197 2744 3375 4096 4913 5832 6859 8000
 
 > # use Rlgi's function to do sapply, but run locally for testing
 > lgi.parSapply(c(10:20), function(x){x^3}, cluster=FALSE)
 [Rlgi] Running locally
  [1] 1000 1331 1728 2197 2744 3375 4096 4913 5832 6859 8000
 
 > # now run remotely, block until all computations are finished
 > lgi.parSapply(c(10:20), function(x){x^3})
 [Rlgi] Submitting 1 jobs...
 [Rlgi] All jobs submitted, waiting for completion.
 [Rlgi] Waiting for jobs:   0 queued;    0 running;   1 other      
  [1] 1000 1331 1728 2197 2744 3375 4096 4913 5832 6859 8000


Moving your credentials file

If you find the location of LGI.cfg in your home directory disturbing, you can move it to another place. In that case, you'll have to load the configuration after loading Rlgi, like this:

 library(Rlgi);
 lgi.readConfig(path.expand("~/.config/LGI.cfg"));

Alternatively, you can use the ~/.LGI configuration directory, as explained here. All the information required is present in your LGI.cfg file.

Further information

This package is being developed at github.