Hi Antonio,

Yes, you are right. Revisiting your question, I'm wondering whether it's
possible to partition speeds and nodes in the same way (stably across
iterations)? (I'm assuming a distributed setup)
If not, each iteration would have to wait for *all* subtasks of the
previous iteration to finish, right?
Which will likely neglect the benefits of the iterative approach.

Regards,
Roman


On Tue, Jul 14, 2020 at 9:36 AM Antonio Martínez Carratalá <
amarti...@alto-analytics.com> wrote:

> Hi Roman,
>
> Thank you for your quick reply, but as far as I know broadcast variables
> cannot be written, my problem is that I need to update the value of the
> speed variable to use it in the next iteration.
>
> Iterate only has one input dataset and propagates it to the next iteration
> using closeWith(), but I need another variable (maybe dataset) to be
> propagated too, is this possible in some way?
>
> Thanks
>
> On Mon, Jul 13, 2020 at 8:47 PM Khachatryan Roman <
> khachatryan.ro...@gmail.com> wrote:
>
>> Hi Antonio,
>>
>> Please take a look at broadcast variables:
>> https://ci.apache.org/projects/flink/flink-docs-stable/dev/batch/#broadcast-variables
>>
>> Regards,
>> Roman
>>
>>
>> On Mon, Jul 13, 2020 at 3:49 PM Antonio Martínez Carratalá <
>> amarti...@alto-analytics.com> wrote:
>>
>>> Hello
>>>
>>> I'm trying to implement the ForceAtlas2 (graph layout) algorithm in
>>> Flink using datasets, it is an iterative algorithm and I have most of it
>>> ready, but there is something I don't know how to do. Apart from the
>>> dataset with the coordinates (x,y) of each node I need an additional
>>> variable to regulate the speed, very simplified it would be something like
>>> this:
>>>
>>> DataSet<Node> nodes = env.fromCollection(nodesList);
>>> Double speed = 1.0;
>>> nodes.iterate(100) {
>>>    nodes = nodes with forces to apply calculated;
>>>    speed = speed regulated based on previous value and forces calculated;
>>>    nodes = nodes coordinates updated with forces * speed;
>>> } closesWith(nodes)
>>>
>>> In my case, the nodes are the dataset I'm iterating over and it is
>>> working perfect if I forget about speed, but I don't know how to keep speed
>>> variable updated in every iteration to be able to use it in the next one
>>>
>>> Any suggestions? Thanks
>>>
>>>
>>>
>>>
>

Reply via email to