SupR: Multithreaded and Distributed R for Big Data Analysis

Mission

Recent_Talks

At a high level, SupR is a R-style implementation of a computing system for
Distributed Interactive Statistical Computing (DISC).
As an initial effort, SupR is currently built from
R, Version 3.1.1.
The current focus has been on the implementation of

Recent Talks

Fundamental Work (deprecated/under construction)

SupR Threading: Basic Functions

new.thread(expr, env=parent.frame(), stacksize=NULL, start=TRUE)
# creates a java-like thread (lightweight process) object, which runs
# as a best-possible task runner in parallel and distributed computing
start.thread(thread)
# must be called to run when the thread was created by new.thread with
# start = FALSE
current.thread()
# returns a character object as the current thread's name or id
interrupt(thread, expr=NULL)
# provides a simple way to interact with running threads
cancel.thread(thread)
# cancels the thread named 'thread'
thread.info(...)
# reports infomation on threads.

SupR Concurrency: Some Basic Functions

sync.eval(x, expr, env=parent.frame())
# with the object x synchronized, evaluates the expression expr
# in the environment env
wait(m, timeout=0L)
# causes the current thread to wait until another thread invokes
# the notify() function for the R object m
notify(m, all=FALSE)
# wakes up a single thread or all threads (specified with all=TRUE)
# waiting on the m's monitor
set.synchronized(fun, value=TRUE)
# makes the function fun to be synchronized (value=TRUE)
is.synchronized(obj)
# tests for object synchronization state

SupR Cluster: Four Basic Functions

start.master(port, url=NULL)
start.worker(master, url=NULL)
# runs on each node machine. It also starts and monitors an executor that
# runs on the same node machine to launch threads to run assigned tasks.
start.driver(master)
# starts a driver session.
start.cluster(master, workers, ...)
# launches a cluster with a specified master machine and worker
# node machines etc.