Some factory functions for CL-Forja calculations.
At the moment I use SBCL
Common Lisp implementation’s specific features in
application build scripts. So I assume that you’ll be using SBCL
too.
When build definitions are made portable it however won’t guarantee the portability of
all the workflow packages defined here. And although the implementation of core
:cl-forja
package is made portable among the implementations, SBCL
will be
the preferred CL to work with :forja-factories
.
The versions of SBCL
tested are 1.5+
Keep in mind that complex workflows assume thread support.
An obvious pacage manager for dependencies.
Make sure to clone the following repos in your ~/quicklisp/local-projects/
after installation:
Other dependencies should be automatically discovered in the Quicklisp’s default dist.
There is a demonstration of Forja-powered workflow application creation cycle in /demo/
.
Read /demo/README.org
.
For workflows ready to be used, like thermal
transport workflow, the executables are built
in a way similar to what is demonstrated, by running
sbcl --load build.lisp
in a corresponding /app/
subdirectory.
For the thermal
workflow, results from SIESTA and QE satellites are collected in memory and
merged prior to exit. They should be stream-outputted instead, but for this to work either
results queue or Vega plotter spec should be rewritten (or both).
That also refers to a bug with last-calculation-finished
that actually says that all
QE satellites are finished.
Apparently, in this form the WF is not completely thread-safe.
- Vladimir Dikan (vdikan@vivaldi.net)
Copyright (c) 2020 Vladimir Dikan (vdikan@vivaldi.net)
Licensed under the GPL License.