Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


EMEWS Queues - R implementation

EQ-R is a Swift/T ( extension that allows Swift/T workflows to communicate with a persistent embedded R interpreter on a worker process via blocking queues. Using the mechanism an R model exploration (ME) algorithm can be used to control and define an ensemble of model runs.

File index

BlockingQueue.h A queue for inter-thread communication.

EQR.h EQR.cpp The main functionality to enable EQ-R- thread and queue control interfaces for access from Tcl and Swift.

EQR.i The SWIG interface file for EQ-R. Contains example compilier settings for compling EQ-R. Filters into at configure time. This can be include by other Makefiles to obtain build settings, for example, to compile task code that will be called from Swift.

Spack Install

  • Install Spack
    • git clone
  • Set up Spack shell support, e.g., for bash
    • . spack/share/spack/
  • Clone the EMEWS Spack repository
    • git clone
  • Change directory into the repository
    • cd spack_emews
  • Add the EMEWS Spack repository to your existing Spack repository or repositories
    • spack repo add .
  • Install EQ/R
    • spack install eqr

This will install EQ/R along with any dependencies. (Look here for tips for using existing dependencies.) You will then need to point to the install location of EQ/R in your EMEWS workflow launch script. The location can be queried via:

  • spack location --install-dir eqr

For information on installing Swift/T for EMEWS, look here.

Manual Build



./configure ...

make install


Run ./bootstrap. This runs autoconf and generates ./configure.

Then, run ./configure. You can use ./configure --help. Key settings are:

  • --prefix: EQ.R install location. This defaults to $PWD/.. for compatibility with EMEWS templates (
  • --with-tcl: Point to Tcl installation root (e.g., /usr)
  • --with-r: Point to R installation root (requires RInside and Rcpp packages)

Then do make install.

You can do make clean or make distclean.


./configure halts with "checking whether the C++ compiler works... no"

To inspect what went went wrong, you will have to look in the generated config.log . Check that your compiler settings in are correct, the library locations in particular.