SciFlow: Scientific workflow management system
SciFlow is to help programmers design complex workflows with ease.
Feature includes:
Use "labeled" arrows to connect individual steps and cache computational results.
Use monad and template haskell to automate the process of building DAGs.
Here is a trivial example. Since we use template haskell, we need to divide this small program into two files.
-- File 1: MyModule.hs module MyModule where import Control.Arrow import Scientific.Workflow input :: Actor () Int input = arr $ const 10 plus1 :: Actor Int Int plus1 = arr (+1) mul2 :: Actor Int Int mul2 = arr (*2) combine :: Actor (Int, Int) Int combine = arr $ \(a,b) -> a + b -- builder monad builder :: Builder () builder = do node "id000" "input" "this is input" node "id001" "plus1" "add 1 to the input" node "id002" "mul2" "double the input" node "id003" "combine" "combine two input" "id000" ~> "id001" "id000" ~> "id002" link2 ("id001", "id002") "id003" -------------------------------------------- -- File 2: main.hs import Scientific.Workflow import MyModule import Data.Default -- assemble workflow using template haskell $(mkWorkflow "myWorkflow" builder) main = do result <- runWorkflow myWorkflow def print result
Modules
[Index]
Downloads
- SciFlow-0.2.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.5.3.1, 0.6.0, 0.6.1, 0.6.2, 0.7.0 |
---|---|
Dependencies | base (>=4.0 && <5.0), bytestring, data-default-class, mtl, shelly, template-haskell, text, unordered-containers (>=0.2), yaml [details] |
License | MIT |
Copyright | (c) 2015 Kai Zhang |
Author | Kai Zhang |
Maintainer | kai@kzhang.org |
Category | Control |
Source repo | head: git clone https://github.com/kaizhang/SciFlow.git |
Uploaded | by kaizhang at 2015-07-02T00:13:12Z |
Distributions | |
Reverse Dependencies | 2 direct, 0 indirect [details] |
Downloads | 8635 total (14 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2015-07-02 [all 1 reports] |