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 | [email protected] |
| 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 | 8747 total (35 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] |