Jug is organised as a series of subcommands. They are called by
subcommand jugfile.py [OPTIONS]. This is similar to applications such as
version control systems.
The main subcommand of jug is execute. Execute executes all your tasks. If multiple jug processes are running at the same time, they will synchronise so that each will run different tasks and combine the results.
It works in the following loop:
while not all_done(): t = next_task() if t.lock(): t.run() t.unlock()
The actual code is much more complex, of course.
You can check the status of your computation at any time with status.
Check is simple: it exits with status 0 if all tasks have run, 1 otherwise. Useful for shell scripting.
This subcommand will simply wait until all tasks are finished before exiting. It is useful for monitoring a computation (especially if your terminal has an option to display a pop-up or bell when it detects activity). It does not monitor whether errors occur!
You can invalidate a group of tasks (by name). It deletes all results from
those tasks and from any tasks that (directly or indirectly) depend on them.
You need to give the subcommand the name with the
Removes all elements in the store that are not used by your jugfile.