Yann Lanthony
1f223ccc54
[graph] limit scope of graph update to outdated nodes
...
Don't update every nodes in the graph on each modification. Instead, use dfs visit to find nodes impacted by a change (of value or of topology) and limit the update to those nodes.
2018-01-26 13:02:31 +01:00
Yann Lanthony
b67fae013b
[graph] check if node belongs to a graph in Attribute.isLink property
2018-01-26 12:47:09 +01:00
Yann Lanthony
273cfd9f0e
[ui] handle multiple CameraInit nodes in a Reconstruction
...
* [ui] ImageGallery: add control to navigate image groups
* [graph] expose Node.attribute as a Slot
2018-01-15 14:33:27 +01:00
Yann Lanthony
1f0ed1f2c9
[graph] add minDepth property on nodes
2018-01-12 13:59:09 +01:00
Yann Lanthony
530af4d905
[graph] sort nodes by index when loading graph file
2018-01-12 13:59:09 +01:00
Yann Lanthony
1bc6168814
[graph] add helper methods to get nodes by type and sort them by name
2018-01-12 13:59:08 +01:00
Fabien Castan
7561b1e8c7
Merge pull request #82 from alicevision/dev_perf_graph
...
Improve graph performance
2018-01-08 21:51:48 +01:00
Yann Lanthony
516f909db4
[graph] add nodesFromNode method based on reverse dfs visit
...
Get the whole node chain from a start node to the graph leaves following graph edges
2018-01-08 13:08:55 +01:00
Yann Lanthony
924dbc8d32
[graph] improve formatting + remove redundant parentheses
2018-01-05 19:20:57 +01:00
Yann Lanthony
2d30a65252
[graph] improve Visitor class docstring
2018-01-05 19:19:38 +01:00
Yann Lanthony
614ef3a5d1
[graph] improve Node constructor arguments naming
2018-01-05 19:18:40 +01:00
Yann Lanthony
c3eda1e629
[graph] allow reverse dfs visit
...
# Default direction: from start node to root
# Reverse direction: from start node to leaves
2018-01-05 19:01:28 +01:00
Yann Lanthony
b3ab554bc9
[graph] compute and store nodes depths on graph topology change
2018-01-05 19:01:27 +01:00
Fabien Castan
8e1452d5bc
[core] add quotes on strings
...
to deal with space characters on command line
2018-01-05 16:59:31 +01:00
Fabien Castan
76ec5a1913
Merge pull request #78 from alicevision/dev_ui_nodelogs
...
Add NodeLog Component that displays logs/statistics/status files of a Node
2018-01-03 21:19:41 +01:00
Yann Lanthony
81cb2cca7a
[graph] NodeChunks: notify changes in log files paths
...
* make log, statistics and status file properties notifiyable and trigger notify signal when node's internal folder changes
* only emit Node.internalFolderChanged when it actually changed
2018-01-03 12:10:53 +01:00
Fabien Castan
ad84d20eb5
[core] ListAttribute and GroupAttribute can now be exported on command line
...
* ListAttribute, GroupAttribute: can now be exported on command line
with customizable join character.
* ChoiceParam with non exclusive values are exported on command line as
before but using the new getValueStr()
2018-01-02 14:43:29 +01:00
Yann Lanthony
49c3491534
[graph] expose NodeChunks log files as properties
2017-12-28 21:26:26 +01:00
Yann Lanthony
d2417e4ac6
[core] add optional 'name' argument to addNewNode method
...
allow to create a new node with a target name, that will get prefixed if not unique
2017-12-19 14:59:12 +01:00
Yann Lanthony
737f292787
[core] update internals of nodes created by addNewNode method
...
this ensures internal cache folder is correctly initialized
2017-12-18 19:39:58 +01:00
Yann Lanthony
5c179cce6e
[ui] GraphEditor: add action to clear node internal data
2017-12-11 15:13:56 +01:00
Fabien Castan
1399f42723
[core] fix elapsedTime default value
2017-12-04 21:54:48 +01:00
Yann Lanthony
776a9a00af
[graph] update Nodes status when cache directory changes
2017-12-04 11:06:25 +01:00
Yann Lanthony
16db901d86
[core] NodeChunks as a ListModel + [ui] DFS sorted nodes proxy model
...
* core: NodeChunks are now stored in a ListModel inside Node
* ui: introduce SortedModelByReference
* ui: UIGraph exposes a proxy model of its graph's nodes sorted as visited by DFS (instead of another model of chunks)
* ui: added NodeChunks Component
2017-11-28 21:43:15 +01:00
Yann Lanthony
eb3432eb58
[graph] removeNode: call removeEdge and trigger graph update
...
* call removeEdge instead of removing the edge in the model. This allows to trigger signals at the Attribute level (like isLinkChanged)
* trigger graph update after node removal
2017-11-28 21:29:37 +01:00
Yann Lanthony
e8c8a9f64a
[graph] add Node.clearSubmitterChunks method
2017-11-28 15:07:49 +01:00
Yann Lanthony
5b1b5a1b32
[graph] add 'updated' signal
2017-11-24 16:31:12 +01:00
Yann Lanthony
d493d0e7e2
[graph] add utility methods to retrieve chunks
2017-11-24 16:30:13 +01:00
Yann Lanthony
a60fe3c601
[graph] emit statusChanged after saving the status file
2017-11-24 16:24:23 +01:00
Yann Lanthony
09390ca52c
[graph] add notion of filepath in core.Graph
...
* Graph stores its filepath when saved/loaded
* trigger updateInternals when cache directory change to update Nodes outputs
2017-11-24 16:21:43 +01:00
Yann Lanthony
d4be998099
[graph] retrieve execMode as Enum from status file
2017-11-24 11:41:29 +01:00
Fabien Castan
c488d73551
[core] split status and execMode (LOCAL/EXTERN)
2017-11-23 20:58:52 +01:00
Fabien Castan
1cd4034784
[core] status: add packageName, packageVersion, hostname, sessionUid
2017-11-23 20:07:06 +01:00
Fabien Castan
c677243f90
[core] fix status check: should be done on chunk level (and not on node level)
2017-11-23 16:45:02 +01:00
Fabien Castan
50a4330b10
[core] fix upgrade status of chunks
2017-11-23 16:43:12 +01:00
Fabien Castan
c57d7ed37e
[core] add start/end datetime and elapsed time in status file
2017-11-22 15:17:39 +01:00
Fabien Castan
07351c911a
[core] do not change status on chunks with SUCCESS status
...
If the node is only partially computed, do not change the status of
chunks with SUCCESS status.
2017-11-22 15:16:57 +01:00
Fabien Castan
e3815f74c7
[core] check RUNNING status in chunk compute function and add option to force computation
2017-11-21 12:24:16 +01:00
Yann Lanthony
851ebf60ee
[core] add support for external graph computation via 'Submitter' API
...
* defines a base class for Submitters
* add method in graph module to submit a graph computation to a Submitter
* add SimpleFarmSubmitter and generalize meshroom_submit binary
2017-11-17 19:17:36 +01:00
Yann Lanthony
e8c579c942
[core] parallelization: introduce the notion of node 'size'
...
* node size is an estimation of the number of element to process on a given node, that may be used for parallelization.
* replace the explicit reference to an attribute on a node (Parallelization.inputListParamName)
* size can be:
* dynamic: depends on the size of the node connected to a specific Attribute
* static
2017-11-17 18:46:21 +01:00
Yann Lanthony
877025090e
[graph] fix flowEdges method
...
only consider edges returned by dfsMaxEdgeLength
2017-11-17 18:38:44 +01:00
Yann Lanthony
900516a854
[graph] GroupAttribute: iterate over items() for uid generation
...
__iter__ of core/qt backends differs for DictModel, which lead to inchorent uids.
TODO: fix that by defining a real DictModel in qt backend
2017-11-17 18:11:57 +01:00
Yann Lanthony
7d4c006e68
[graph] List: multiple children attribute deletion + remove edges if any
2017-11-14 16:35:24 +01:00
Yann Lanthony
0fa23edc82
[graph] trigger update when ListAttribute changes
2017-11-14 16:34:32 +01:00
Yann Lanthony
5fc1d92cc2
[graph] remove call to node description's updateInternals
...
causes possible undefined behaviors if the graph is modified during this update
2017-11-10 18:21:59 +01:00
Yann Lanthony
bf747f69d6
Merge remote-tracking branch 'origin/develop' into dev_memoryManagement
2017-11-10 11:43:20 +01:00
Fabien Castan
224cd935f9
[graph] only save input params
2017-11-10 11:32:59 +01:00
Yann Lanthony
80cad9386a
[core] handle unsatisfied node parallelization requirements
...
* catch error in case the required attribute is not found in preceding nodes
* set an empty list of chunks when this happens
* avoid uncatched exceptions in the middle of an update
2017-11-08 18:41:34 +01:00
Yann Lanthony
e9e15d7a8b
[graph] fix StatusData.statusName method
2017-11-08 18:13:55 +01:00
Yann Lanthony
9860828c67
[core] fix Graph.stopExecution
...
iterate over and terminate running chunks
2017-11-08 18:12:03 +01:00