Changes between Version 9 and Version 10 of GSoC/Ideas


Ignore:
Timestamp:
03/09/11 20:43:39 (4 years ago)
Author:
mitar
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • GSoC/Ideas

    v9 v10  
    1313== Widgets in separate processes == 
    1414 
    15 Widgets in Orange Canvas currently run in a single process. As they are independent given their inputs, they could frequently work in parallel. The objective of this task would be to modify Orange Canvas so that each widget would run in its own process. 
     15Widgets in Orange Canvas currently run in a single process. As they are independent given their inputs, they could frequently work in parallel (in a [wikipedia:Dataflow data-flow manner]). The objective of this task would be to modify Orange Canvas so that each widget would run in its own process. 
    1616 
    17 Useful skills: Python programming with multiple processes. Program design. 
     17It would be also useful to separate GUI thread from main payload computation of widgets. Currently we are using also just one thread for everything (GUI thread) and we have, while widget is working, to repeatedly callback into the GUI to make it responsive. It would be great to have this separated so that code would be cleaner. 
     18 
     19Useful skills: Python programming with multiple processes and threads. Qt and PyQt experience. Program design. 
    1820 
    1921Level from 1 (beginner) to 5 (professional): 5 
     
    2628 
    2729Level from 1 (beginner) to 5 (professional): 3 
     30 
     31== Support for parallel computation for scripting/backend == 
     32 
     33One other idea discusses the idea of making GUI process in parallel/separate processes. But this idea talks about having scripting part (backend part) of the Orange support (semi)automatic parallelisation/separation into processes and possible also processes over different computers. For example, [wikipedia:Cross-validation_(statistics) cross-validation] with multiple folds is one simple example of easy parallelized technique, as each fold can be independently computed and then easily combined into the final result. 
     34 
     35It would be good to analyze such opportunities for parallelization, find what they have in common and maybe devise a small helper library (possibly a wrapper for some existing grid computing system) to use in code to easily make it run in parallel, if such environment is available, and run normally if not. And the of course move as much of already existing implementations to this new support for parallelization. 
     36 
     37Useful skills: Python. Grid computing experience. 
     38 
     39Level from 1 (beginner) to 5 (professional): 4