Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Final PR changes #13

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion apps/pagerank/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ all: generate
# graph: Filename of a graph (without .el extension)
# pod-id: Which pod to simulate
# npods: How many pods is work distributed over
test-name = direction_$(1)__fn_$(2)__graph_$(3)__pod-id_$(4)__npods_$(5)
test-name = direction_$(1)__fn_$(2)__graph_$(3)__dist_$(4)__pod-id_$(5)__npods_$(6)

get-element = $(lastword $(subst _, ,$(filter $(1)_%,$(subst __, ,$(2)))))
# call these to get parameters from test name
Expand All @@ -19,6 +19,7 @@ get-pod-id = $(call get-element,pod-id,$(1))
# get-graph and get-function are special because some have underscores in their names
get-graph = $(lastword $(subst graph_, ,$(filter graph_%,$(subst __, ,$(1)))))
get-function = $(lastword $(subst fn_, ,$(filter fn_%,$(subst __, ,$(1)))))
get-distribution = $(lastword $(subst dist_, ,$(filter dist_%,$(subst __, ,$(1)))))

# defines tests
TESTS =
Expand All @@ -42,6 +43,7 @@ $(addsuffix /parameters.mk,$(PULL_TEST_DIRS)): %/parameters.mk:
@echo pod-id=$(call get-pod-id,$*) >> $@
@echo direction=$(call get-direction,$*) >> $@
@echo function=\"$(call get-function,$*)\" >> $@
@echo distribution=\"$(call get-distribution,$*)\" >> $@

$(addsuffix /parameters.mk,$(PUSH_TEST_DIRS)): %/parameters.mk:
@touch $@
Expand Down
3 changes: 2 additions & 1 deletion apps/pagerank/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
2. Edit [tests.mk](tests.mk) to specify which tests to run.
3. `make generate`: Generates all test directories.
4. `make <goal> -j <parallel jobs>`: To run all tests. Common goals are `exec` `stats` and `pc-histogram`.
5. Profit.
5. Wait
6. Run parse.sh to summarize the results. Each dataset will be summarized into its own CSV file.

I've set this up with more small graphs than big graphs. The goal is
to run a lot of little graphs to verify correctness and get some
Expand Down
5 changes: 4 additions & 1 deletion apps/pagerank/common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,14 @@ hi2010.tar.gz:
delaunay_n15.tar.gz:
wget "https://suitesparse-collection-website.herokuapp.com/MM/DIMACS10/delaunay_n15.tar.gz"

offshore.tar.gz:
wget "https://suitesparse-collection-website.herokuapp.com/MM/Um/offshore.tar.gz"

%.mtx: %.tar.gz
tar -xf $< --strip-components 1 $(basename $@)/$@


all-graphs: wiki-Vote.el p2p-Gnutella09.el email-Enron.el hollywood-2009.el \
road_usa.el road_central.el roadNet-CA.el ljournal-2008.el cit-HepTh.el \
rgg_n_2_16_s0.el rgg_n_2_15_s0.el kron_g500-logn16.el hi2010.el delaunay_n15.el \
rgg_n_2_20_s0.el
rgg_n_2_20_s0.el offshore.el
5 changes: 5 additions & 0 deletions apps/pagerank/parse.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import sys
import pandas as pd
df = pd.read_csv(sys.argv[1])
df = df.groupby(["npods", "pod"]).sum().groupby(['npods'])['Abs Total Cycles'].max()
df.to_csv(sys.argv[1])
17 changes: 17 additions & 0 deletions apps/pagerank/parse.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash

for n in wiki-Vote offshore ljournal-2008 hollywood-2009 road_usa roadNet-CA road_central;
do
echo $n
find direction_pull__fn_pagerank_pull_u8__graph_"$n"__dist_* -name manycore_stats.log | xargs grep ^kernel > /tmp/$n.csv
sed -i 's/^direction_//' /tmp/$n.csv
sed -i 's/__[a-z\-]*_/,/g' /tmp/$n.csv
sed -i 's/\/.*:/,/g' /tmp/$n.csv
cat /tmp/$n.csv | tr -s ' ' ',' > /tmp/$n.csv.tmp
mv /tmp/$n.csv.tmp /tmp/$n.csv
echo "direction,function,graph,distribution,pod,npods,Tag ID,Aggr Instructions,Aggr I$ Misses,Aggr Stall Cycles,Aggr Bubble Cycles, Aggr Total Cycles,Abs Total Cycles,IPC,FLOPS/Cycle,% of Kernel Cycles" > $n.csv
cat /tmp/$n.csv >> $n.csv
head $n.csv
python3 parse.py $n.csv
done

7 changes: 4 additions & 3 deletions apps/pagerank/pull/kernel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,9 @@ int __attribute__ ((noinline)) pagerank_pull_u8(int bsg_attr_remote * bsg_attr_n
register int od = out_degree[d];
int s = first;
for(;s + 8 < last; s += 8) {
// bsg_unroll(8) for(int si = 0; si < 8; ++si){
// Unrolled by hand so that loads end up consecutive For
// some reason they do not. Register allocation only
// works in GCC and is not necessary.
register int idx0 asm ("s8");
register int idx1 asm ("s9");
register int idx2 asm ("s10");
Expand All @@ -126,8 +128,6 @@ int __attribute__ ((noinline)) pagerank_pull_u8(int bsg_attr_remote * bsg_attr_n
temp_new += contrib[idx5];
temp_new += contrib[idx6];
temp_new += contrib[idx7];
//temp_new += contrib[idx];
// }
}

for(; s < last; ++s){
Expand All @@ -148,3 +148,4 @@ int __attribute__ ((noinline)) pagerank_pull_u8(int bsg_attr_remote * bsg_attr_n
bsg_barrier_hw_tile_group_sync();
return 0;
}

4 changes: 2 additions & 2 deletions apps/pagerank/pull/pagerank.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -311,9 +311,9 @@ int launch(int argc, char * argv[]){

device->enqueueJob(kernel_function.c_str(), hb_mc_dimension(X,Y),{edges.getInIndicesAddr(), edges.getInNeighborsAddr(), out_degree_dev.getAddr(), old_rank_dev.getAddr(), new_rank_dev.getAddr(), contrib_dev.getAddr(), contrib_new_dev.getAddr(), rows_in_pod});
uint64_t start_cycle = device->getCycle();
hb_mc_manycore_trace_enable(device->getDevice()->mc);
// hb_mc_manycore_trace_enable(device->getDevice()->mc);
device->runJobs();
hb_mc_manycore_trace_disable(device->getDevice()->mc);
// hb_mc_manycore_trace_disable(device->getDevice()->mc);
uint64_t end_cycle = device->getCycle();
std::cerr << "Finished. Execution Cycles: " << (end_cycle - start_cycle) << std::endl;
}
Expand Down
3 changes: 3 additions & 0 deletions apps/pagerank/template.mk
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ DEFINES += -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_DEFAULT_SOURCE
DEFINES += -DSIM_CURRENT_POD=$(pod-id)
DEFINES += -DNUM_PODS=$(num-pods)
DEFINES += -DKERNEL_FUNCTION=\"$(function)\"
ifeq ($(strip $(distribution)),"cyclic")
DEFINES += -DHB_CYCLIC
endif
DEFINES += -DCOSIM
CDEFINES +=
CXXDEFINES +=
Expand Down
124 changes: 101 additions & 23 deletions apps/pagerank/tests.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,122 @@
# These tests run relatively quickly:
# Social network-like

TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,$(i),1))
TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),49))
TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),36))
TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),25))
TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),16))
TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),9))
TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),4))
TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,cyclic,$(i),1))

# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,wiki-Vote,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,p2p-Gnutella09,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,email-Enron,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,cit-HepTh,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,kron_g500-logn16,$(i),64))
# Scientific
TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),49))
TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),36))
TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),25))
TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),16))
TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),9))
TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),4))
TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,offshore,cyclic,$(i),1))

# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,wiki-Vote,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,p2p-Gnutella09,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,email-Enron,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,cit-HepTh,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,kron_g500-logn16,$(i),64))

# Planar:
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,hi2010,$(i),64))
# Planar
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,delaunay_n15,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),49))
# TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),36))
# TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),25))
# TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),16))
# TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),9))
# TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),4))
# TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,hi2010,$(i),1))

# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),49))
# TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),36))
# TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),25))
# TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),16))
# TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),9))
# TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),4))
# TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,delaunay_n15,$(i),1))

#Random:
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,rgg_n_2_15_s0,$(i),64))

# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,rgg_n_2_16_s0,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),49))
# TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),36))
# TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),25))
# TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),16))
# TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),9))
# TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),4))
# TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_15_s0,$(i),1))

# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),49))
# TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),36))
# TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),25))
# TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),16))
# TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),9))
# TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),4))
# TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_16_s0,$(i),1))


# Slower Running:
# Social network-like
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,soc-Pokec,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,ljournal-2008,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,hollywood-2009,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),49))
TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),36))
TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),25))
TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),16))
TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),9))
TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),4))
TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,ljournal-2008,cyclic,$(i),1))

TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),49))
TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),36))
TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),25))
TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),16))
TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),9))
TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),4))
TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,hollywood-2009,cyclic,$(i),1))

# Planar:
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,roadNet-CA,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,road_central,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,road_usa,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),49))
TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),36))
TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),25))
TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),16))
TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),9))
TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),4))
TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,roadNet-CA,blocked,$(i),1))

TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),49))
TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),36))
TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),25))
TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),16))
TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),9))
TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),4))
TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,road_central,blocked,$(i),1))

TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),64))
TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),49))
TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),36))
TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),25))
TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),16))
TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),9))
TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),4))
TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,road_usa,blocked,$(i),1))

# Random:
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull,rgg_n_2_20_s0,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 63),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),64))
# TESTS +=$(foreach i,$(shell seq -s" " 0 48),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),49))
# TESTS +=$(foreach i,$(shell seq -s" " 0 35),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),36))
# TESTS +=$(foreach i,$(shell seq -s" " 0 24),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),25))
# TESTS +=$(foreach i,$(shell seq -s" " 0 15),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),16))
# TESTS +=$(foreach i,$(shell seq -s" " 0 8),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),9))
# TESTS +=$(foreach i,$(shell seq -s" " 0 3),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),4))
# TESTS +=$(foreach i,$(shell seq -s" " 0 0),$(call test-name,pull,pagerank_pull_u8,rgg_n_2_20_s0,$(i),1))