Orange Forum • View topic - Stop/Run buttons in visual environment

Stop/Run buttons in visual environment

Discussions about new ideas and features you would like to see in Orange.
(Archived/read-only, please use our ticketing system for your wishes and their discussion.)
Forum rules
(Archived/read-only, please use our ticketing system for your wishes and their discussion.)

Stop/Run buttons in visual environment

Postby MikeB » Wed Oct 03, 2007 16:29

Disclaimer: If this sounds too negative, its because I think orange has great potential. I'm just trying to be constructive.

Orange looks like it will be fantastic, but still has a few rough edges (I love the visual programming concept though!). It's very nice to have the signal chain update automatically, but a couple of times I've made a mistake, and set up a signal chain that will take a very long time to update. The program hangs, there is no way to save your work, and you have to close.

If you didn't save, you lose work
If you did save, you lose your file (every time you open it it starts away on the infinite computations again and hangs).

If there is a way to solve this, it isn't obvious - I'm thinking a "go" and "stop" button in the main window or something.

If it can't be done easily due to threading issues, it would be great to have orange running on multiple threads anyway to take advantage of multicore CPUs - 2 cores are now common, 4 are on the market, ...? It'll need to happen some time.

Postby Guest » Thu Oct 04, 2007 10:28

I agree, Orange is really a wonderful work, and i agree even with your whish MikeB. Lots of times i have been forced to close Orange losing the work done. The only way you have to prevent this right now is to take all your links between widgets enabled, and send signal one at time

Postby Guest » Wed Sep 02, 2009 1:22

I agree! This is a MUST! Especially since the whole point of sticking with core C components is to be able to process lots of data which may take time. Its nice to be able to see something like a run/abort button and a progress bar, that would be perfect.

Postby Janez » Wed Sep 02, 2009 17:26

Orange saves the schema and reloads it after crash (or after being killed). You can also load the schema with all connections disabled. This should help if you constructed a complex schema but accidentally told it to do something time consuming.

You won't see an "abort" button -- once the widget is processing, it will process until it's done. It can't stop in the middle and undo what it did. We may be able to add this in some slower and well separated parts of the code, but not in general. One thing which might be doable is stopping the signaling, for instance, allowing the user to disable all connections while the widgets are processing. But you'll still have to wait for all active widgets to finish the work.

Multithreading ... we can split the canvas events handling from the "actual processing" (if we haven't done so already - I'm not familiar with that part of the system). But we probably cannot parallelize the widget processing, so each thread would take care of one widget. We have to discuss this, though.

As a general remark to such wishes: we have no full-time programmers. We are researchers in AI, funded through research projects. We have no grants for Orange. We are programming it because we need it as a platform. Coding and technical hacks, like multithreading, are great fun, but there are limits to which we can go. And to be honest, if I had more time I'd invest it in, say, making the ExampleTable a subclass of numpy.array. I don't mind having three cores idle for now. :)

Postby Ales » Thu Dec 09, 2010 16:22

In the latest snapshot now has a Run/Pause button in the toolbar. When pressed all signal propagation between widgets is stopped. This solves the problem of long update chains. The problem remains however for individual widgets processing time.

Return to Wish List