Coder Social home page Coder Social logo

ctongfei / ducttape Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jhclark/ducttape

1.0 1.0 0.0 35.36 MB

A workflow management system for researchers who heart Unix.

Home Page: http://jhclark.github.com/ducttape

License: Other

Makefile 0.20% Shell 1.84% Awk 0.03% Scala 77.95% TeX 0.69% Emacs Lisp 0.34% Vim Script 1.92% CSS 3.30% JavaScript 11.47% HTML 2.25%

ducttape's People

Contributors

armatthews avatar ctongfei avatar dowobeha avatar jhclark avatar neubig avatar nschneid avatar

Stargazers

 avatar

Watchers

 avatar

ducttape's Issues

branch grafting directly on a variable

Hi,

Currently, this will not work:

task print
  < in=$words[initial:A]
  > out {

  cat $input > $out
}

plan test {
  reach print
}

global {
  words=(initial:
    A=(end:
        L="/path/to/file/animal"
        E="/path/to/file/ample"
    )
    B=(end:
        L="/path/to/file/bell"
        E="/path/to/file/bumble"
    )
  )
}

with error message ERROR: Plan includes zero tasks.

The following, on the other hand will work:

task link
  < input=$words
  > out {

  ln -s $input $out
}

task print
  < input=$out@link[initial:A]
  > out {

  cat $input > $out
}

plan test {
  reach print
}

global {
  words=(initial:
    A=(end:
        L="/path/to/file/animal"
        E="/path/to/file/ample"
    )
    B=(end:
        L="/path/to/file/bell"
        E="/path/to/file/bumble"
    )
  )
}

Looks like something fishy is going on with branching grafting over variables, while grafting over task outputs seems to be working properly.

-sd

cannot comment after branches

Hi,

Currently, commenting after branches:

global {
  words=(initial:
    A=(end:
        L="/export/c11/shuoyangd/projects/ducttape-test/animal"  # a quick brown fox
        E="/export/c11/shuoyangd/projects/ducttape-test/ample"
    )
    B=(end:
        L="/export/c11/shuoyangd/projects/ducttape-test/bell"
        E="/export/c11/shuoyangd/projects/ducttape-test/bumble"
    )
  )
}

will make the parser fail, which is quite annoying as it would be nice to offer explanation of what case each branch is intended to account for.

-sd

plan does not interact correctly with branch globbing

Hi,

In the following workflow:

global {
  data=(DataSet:
    a="/path/to/file/1"
    b="/path/to/file/2"
    c="/path/to/file/3"
  )
}

task merge
  < in=$data[DataSet:*]
  > out {

  for datum in $in ; do
    cat $datum >> out
  done
}

plan test {
  reach merge via (DataSet: a b)
}

the output of merge will have the contents of all three files despite that fact that test only selects two branches to execute.

-sd

Storage Mapping Assumption

Currently, ducttape works largely depending on an assumption: the storage of the machine that submits the jobs could be directly mapped to the remote machine, which is not the case for a lot of commercial grids (e.g. amazon aws).

This is most obvious for the way currently versioner and submitter is run: the versioner installs the package first (locally), and then the submitter submits jobs to the grid. If there is no storage mapping between the local and grid machine, the environment where the packages are installed will have nothing to do with what the job will depend on.

For this specific example, flipping the order the versioner/submitter is run would do. However, there are more storage mapping that's happening than just mapping the packages -- one would possibly want to map the data as well. Fixing everything is tricky, but it's at least useful to realize that the problem is there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.