Skip to content

emews/EQ-R

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EQ-R

EMEWS Queues - R implementation

EQ-R is a Swift/T (http://swift-lang.org/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.

settings.template.sh Contains example compilier settings for compling EQ-R.

settings.mk.in Filters into settings.mk 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 https://github.com/spack/spack.git
  • Set up Spack shell support, e.g., for bash
    • . spack/share/spack/setup-env.sh
  • Clone the EMEWS Spack repository
    • git clone https://github.com/emews/spack_emews
  • 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

Outline

./bootstrap

./configure ...

make install

Details

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 (https://github.com/emews/emews-lazybones-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.

Troubleshooting

./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 settings.sh are correct, the library locations in particular.