You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Yang Xia (Jira)" <ji...@apache.org> on 2024/09/25 18:22:00 UTC
[jira] [Closed] (TINKERPOP-1167) ParallelVertexProgram as a MetaVertexProgram
[ https://issues.apache.org/jira/browse/TINKERPOP-1167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yang Xia closed TINKERPOP-1167.
-------------------------------
Resolution: Won't Do
Closing given [discussion|https://lists.apache.org/thread/om2m0phg25s83529p9w0gldmcxz7578h] - it can be reopened if there is expectation that there will be active work on this item.
> ParallelVertexProgram as a MetaVertexProgram
> --------------------------------------------
>
> Key: TINKERPOP-1167
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1167
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.1.0-incubating
> Reporter: Marko A. Rodriguez
> Priority: Major
>
> When I wrote down this query, I realized something.
> {code}
> gremlin> g.V().
> peerPressure().by('cluster').by(outE('knows')).
> pageRank(1.0).by('friendRank').by(outE('knows')).times(1).
> group().by('cluster').by(values('friendRank').sum());
> ==>[1:1.0, 3:0.0, 5:0.0, 6:0.0]
> {code}
> I realized that {{PeerPressureVertexProgram}} and {{PageRankVertexProgram}} can be run in parallel as their messages don't interfere with one another. Lets say both do 30 iterations. Instead of executing for 60 iterations, a parallel-execution would run for 30 iterations. Now, lets say one terminates before the other. Who cares, it just holds after terminate.
> I don't know how to implement this, but something like:
> {code}
> public class ParallelVertexProgram implements VertexProgram<List<Object>>
> {code}
> What is the {{List<Object>>}} message? Well, if there are 3 vertex programs inside it, then {{list.get(0)}} are the messages for the first vertex program at that iteration, {{list.get(1)}} are the messages for the second... etc.
> CraZy. This gets back to an old ticket about "Traverser Swarms" ... We can tag the messages and just have a "permanately running GraphComputer" that just gets programs put into it, they are churned out, and returned when they respectively terminate.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)