Hi Alexandre,

When you use the powerlaw option, GraphLab generates a synthetic graph with 
powerlaw edge distribution.
There are parameters that control the exact degree probability for each vertex, 
and whether the power-law will
apply to the in- or out-degree. In our case, the generated power-law graph 
follows an out-degree powerlaw distribution,
where each vertex has an outdegree d with probability  
[http://latex.codecogs.com/gif.latex?%5Cf%5B%20P%28d%29%20%5Cpropto%20d%5E%7B-%5Calpha%7D%20%5Cf%5D]
 , α = 2.

We initialize each vertex's value to 1. These parameters can be changed within 
the tunkrank code,
which you can find here: graph-release/toolkits/graph_analytics/tunkrank.cpp

When you use the asynchronous engine, the execution continues until convergence.
Convergence is again user-defined. In our case, we stop the execution when for 
all vertices (|latest value - previous value| < 0.01).
In the source code, this convergence criterion is defined via the TOLERANCE 
value (currently set tp 0.01).

Finally, when you use --saveprefix, the graph's final state will be dumped into 
a bunch of output files.
These files contain each vertex along with its final value, in the following 
format: <vertex_id vertex_value>

I hope this helps!

Regards,
Alexandros

________________________________
From: Alexandre Ternis Ferreira [[email protected]]
Sent: Monday, June 09, 2014 5:03 PM
To: [email protected]
Subject: Graph Analytics output

Hi,

I could run the benchmark Graph Analytics, but I could not understand the 
output. I had this output:

piabanha{127} ./tunkrank --powerlaw=10000000 --ncpus=2 --engine=asynchronous
GRAPHLAB_SUBNET_ID/GRAPHLAB_SUBNET_MASK environment variables not defined.
Using default values
Subnet ID: 0.0.0.0
Subnet Mask: 0.0.0.0
Will find first IPv4 non-loopback address matching the subnet
INFO:     dc.cpp(init:573): Cluster of 1 instances created.
INFO:     distributed_graph.hpp(set_ingress_method:3201): Automatically 
determine ingress method: grid
Loading synthetic Powerlaw graph.
INFO:     distributed_graph.hpp(load_synthetic_powerlaw:2375): constructing pdf
INFO:     distributed_graph.hpp(load_synthetic_powerlaw:2378): constructing cdf
INFO:     distributed_graph.hpp(load_synthetic_powerlaw:2380): Building graph
INFO:     distributed_graph.hpp(load_synthetic_powerlaw:2399): 10000000 inserted
INFO:     distributed_graph.hpp(finalize:702): Distributed graph: enter finalize
INFO:     distributed_ingress_base.hpp(finalize:199): Finalizing Graph...
INFO:     memory_info.cpp(log_usage:90): Memory Info: Post Flush
Heap: 2565.3 MB
Allocated: 2467.2 MB
INFO:     distributed_ingress_base.hpp(finalize:259): Graph Finalize: 
constructing local graph
INFO:     memory_info.cpp(log_usage:90): Memory Info: Finished populating local 
graph.
Heap: 4880.27 MB
Allocated: 2048.56 MB
INFO:     distributed_ingress_base.hpp(finalize:304): Graph Finalize: 
finalizing local graph.
tcmalloc: large alloc 1672404992 bytes == 0x197c94000 @  0x643e16 0x4cd728
tcmalloc: large alloc 1672404992 bytes == 0x1fb912000 @  0x643e16 0x4cd728
INFO:     dynamic_local_graph.hpp(finalize:339): Graph finalized in 244.451 secs
INFO:     distributed_ingress_base.hpp(finalize:307): Local graph info:
nverts: 10000000
nedges: 104525299
INFO:     memory_info.cpp(log_usage:90): Memory Info: Finished finalizing local 
graph.
Heap: 9665.06 MB
Allocated: 3999.31 MB
INFO:     memory_info.cpp(log_usage:90): Memory Info: Finished adding vertex 
data
Heap: 9665.06 MB
Allocated: 3999.24 MB
INFO:     memory_info.cpp(log_usage:90): Memory Info: Finihsed allocating 
lvid2record
Heap: 9665.06 MB
Allocated: 4457 MB
INFO:     memory_info.cpp(log_usage:90): Memory Info: Finished synchronizing 
vertex (meta)data
Heap: 9665.06 MB
Allocated: 4849.6 MB
INFO:     distributed_ingress_base.hpp(exchange_global_info:521): Graph 
Finalize: exchange global statistics
INFO:     distributed_ingress_base.hpp(exchange_global_info:546): Graph info:
nverts: 10000000
nedges: 104525299
nreplicas: 10000000
replication factor: 1
#vertices: 10000000 #edges:104525299
INFO:     omni_engine.hpp(omni_engine:194): Using the Synchronous engine.
INFO:     distributed_graph.hpp(finalize:702): Distributed graph: enter finalize
INFO:     distributed_ingress_base.hpp(finalize:199): Finalizing Graph...
INFO:     distributed_ingress_base.hpp(finalize:244): Skipping Graph 
Finalization because no changes happened...
INFO:     distributed_graph.hpp(finalize:702): Distributed graph: enter finalize
INFO:     distributed_ingress_base.hpp(finalize:199): Finalizing Graph...
INFO:     distributed_ingress_base.hpp(finalize:244): Skipping Graph 
Finalization because no changes happened...
INFO:     async_consistent_engine.hpp(start:1212): Spawning 10000 threads
INFO:     async_consistent_engine.hpp(start:1238): Total Allocated Bytes: 
4834485504
INFO:     async_consistent_engine.hpp(try_to_quit:834): Endgame mode
INFO:     fiber_async_consensus.cpp(end_done_critical_section:105): 0: 
Termination Possible
INFO:     fiber_async_consensus.cpp(pass_the_token:211): Completed Token: 0 0
Completed Tasks: 26103386
Schedule Joins: 127449425
Schedule Adds: 153552811
Finished Running engine in 105.8 seconds.
INFO:     dc.cpp(~distributed_control:166): Shutting down distributed control
INFO:     dc_tcp_comm.cpp(close:247): Closing listening socket
INFO:     dc_tcp_comm.cpp(send_loop:653): Send loop Stopped
INFO:     dc_tcp_comm.cpp(close:267): Closing outgoing sockets
INFO:     dc_tcp_comm.cpp(receive_loop:594): Receive loop Stopped
INFO:     dc_tcp_comm.cpp(close:285): Closing incoming sockets
INFO:     dc.cpp(~distributed_control:198): Bytes Sent: 1043983109
INFO:     dc.cpp(~distributed_control:199): Calls Sent: 26565
INFO:     dc.cpp(~distributed_control:200): Network Sent: 1044063109
INFO:     dc.cpp(~distributed_control:201): Bytes Received: 1043850589
INFO:     dc.cpp(~distributed_control:202): Calls Received: 26565

Could you explain me this output? What does the --saveprefix arg files has when 
I use this option?

Best,
Alexandre

Reply via email to