Comments (2)
I've done a Python script(it takes in a bunch of args but doesn't have much interactivity beyond that and outputting information/progress). It would call a third party process for a VFX pipeline process, it'd be helpful catching any output from it like if it spits out an error, when the process exits(but I guess that's sync based logic?), running multiple instances was something I didn't get around to(I just called the script multiple times), that scales up to a certain number of cores(could be all by default, or 3/4th of cores, with user arg, depends on resource usage like RAM required, one of my subprocesses can use up to 60GB due to dataset).
There is a crate called parallel I think that specifically handles the use case of single threaded subprocess being run multiple times, maybe that could be integrated? Ideally I'd want to have them emit some progress information that can be consumed and displayed as total progress information for the actuall process running, alternatively displaying progress bars for each subprocess could be neat too :)
from quicli.
I think we can think of "subprocesses" and "running stuff parallel" as two separate things. The following is more about "running stuff parallel".
That seems like a good use-case, @polarathene, and I think using rayon (cf. #4) and std::command::Command
/duct
can satisfy a lot of your requirements. Let me summarize your use case a bit (correct me if I got it wrong):
- You start a script with a bunch of parameters
- Its job is to
n
processes that do work independent of each other - You want to run these processes in parallel
- You want to capture their output.
I recently wrote this, where files
is a bunch of inputs basically, and run
starts a process and parses its output:
let res = files.par_iter()
.map(|path| run(path))
.reduce(TestResults::default, |a, b| a + b);
You can set RAYON_NUM_THREADS
to control this a bit, I wouldn't go for making this configurable by default.
from quicli.
Related Issues (20)
- issue in 'getting started' HOT 2
- Issue with glob in thumbnail tutorial HOT 2
- Include `read_input`?
- bail!() no longer works with quicli 0.4 HOT 1
- Quicli in the wild HOT 2
- Testing, examples, docs, CI
- Move Result type out of the prelude HOT 2
- Update failure to 1.0.0 on March 15
- docs and crates to support re-parsing the command line (readline style)
- export clap macros HOT 2
- Unix pipes support out of the box HOT 1
- Switch to globwalk
- human-panic
- Readme example doesn't compile HOT 2
- StructOpt not found in scope HOT 3
- "methods are not allowed for flattened entry" HOT 1
- Expose remove_dir_all crate HOT 1
- main! macro emits warning
- Turn on logging in all subcrates? HOT 2
- use of deprecated item 'failure::Error::causes' HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quicli.