Giter Club home page Giter Club logo

grazelle-ppopp18's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

grazelle-ppopp18's Issues

How to assign root vertex for BFS?

Hi,
After the BFS is compiled --
$ make grazelle ALGORITHM=BREADTH_FIRST_SEARCH

I would like to assign specific root vertex for the execution of BFS. But I am unable to find a command option (e.g., -v vextex_id ) to do so:
$ ./output/linux/grazelle -i /data/livejournal.bin -n 40 -u 0,1 -v 1000 , such that the BFS will start with the vertex with ID 1000.

Can you please let me know how to customize the root vertex for graph traversal.

Compile Error

Hi, I am interested in this project and would like to run some test. However, it seems get a compile error and could not find a way to fix it, could you please give me some help?
We test the project with Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz (2 sockets x 14 core) with gcc 4.9.3.

The compiler error information lists as follow:
AS output/linux/phase_edge_push_bfs.s.o
output/linux/asm/source/phase_edge_push_bfs.s: Assembler messages:
output/linux/asm/source/phase_edge_push_bfs.s:283: Error: ambiguous operand size for dec' output/linux/asm/source/phase_edge_push_bfs.s:283: Error: ambiguous operand size for inc'
output/linux/asm/source/phase_edge_push_bfs.s:283: Error: ambiguous operand size for inc' output/linux/asm/source/phase_edge_push_bfs.s:283: Error: ambiguous operand size for inc'
output/linux/asm/source/phase_edge_push_bfs.s:283: Error: ambiguous operand size for inc' output/linux/asm/source/phase_edge_push_bfs.s:283: Error: invalid operands (*ABS* and *UND* sections) for '
output/linux/asm/source/phase_edge_push_bfs.s:283: Error: invalid operands (ABS and UND sections) for *' output/linux/asm/source/phase_edge_push_bfs.s:283: Error: invalid operands (*ABS* and *UND* sections) for
'
output/linux/asm/source/phase_edge_push_bfs.s:283: Error: invalid operands (ABS and UND sections) for `*'
Makefile:377: recipe for target 'output/linux/phase_edge_push_bfs.s.o' failed
make: *** [output/linux/phase_edge_push_bfs.s.o] Error 1

How to get the register_set that needs to be stored when switching context

Hi, this project looks great. I'm curious how do you get the register_set that is used by threads_save_context_to. Do you rely on some tool to get that info, or just reasoning it manually? Thanks!

threads_save_context_to                     PROC PUBLIC
    mov                     QWORD PTR [rcx+0],      r12
    mov                     QWORD PTR [rcx+8],      r13
    mov                     QWORD PTR [rcx+16],     r14
    mov                     QWORD PTR [rcx+24],     r15
    mov                     QWORD PTR [rcx+32],     rdi
    mov                     QWORD PTR [rcx+40],     rsi
    mov                     QWORD PTR [rcx+48],     rbx
    mov                     QWORD PTR [rcx+56],     rbp
    ret
threads_save_context_to                     ENDP

Compile error - relocation R_X86_64_32S against symbol `graph_scheduler_dynamic_counter_numa' can not be used when making a PIE object; recompile with -fPIC

There is a compile error. In this example, I ran "make fig13" using AS = nasm on a machine with Intel(R) Xeon(R) Gold 5117 CPU @ 2.00GHz.

RM output/linux
Clean completed: grazelle.
make -j 8 EXPERIMENTS="THRESHOLD_WITHOUT_COUNT" ALGORITHM="BREADTH_FIRST_SEARCH"
make[1]: Entering directory '/soe/pebraun/Grazelle-PPoPP18'
CC output/linux/graphdata.c.o
CC output/linux/cmdline.c.o
CC output/linux/benchmark.c.o
CC output/linux/execution_bfs.c.o
CC output/linux/scheduler.c.o
CC output/linux/execution_pr.c.o
CC output/linux/execution_cc.c.o
CC output/linux/phases.c.o
CC output/linux/main.c.o
CC output/linux/execution.c.o
CC output/linux/threads.c.o
CC output/linux/numanodes.c.o
X-AS output/linux/asm/source/threads.s
X-AS output/linux/asm/include/graphdata.S
X-AS output/linux/asm/include/constants.S
X-AS output/linux/asm/include/scheduler_push.S
X-AS output/linux/asm/include/scheduler_pull.S
X-AS output/linux/asm/include/registers.S
X-AS output/linux/asm/include/threadhelpers.S
X-AS output/linux/asm/include/phasehelpers.S
X-AS output/linux/asm/source/phase_vertex_bfs.s
X-AS output/linux/asm/source/benchmark.s
X-AS output/linux/asm/source/phase_vertex_pr.s
X-AS output/linux/asm/source/constants.s
X-AS output/linux/asm/source/phase_vertex_cc.s
X-AS output/linux/asm/source/phase_edge_push_bfs.s
X-AS output/linux/asm/source/phase_edge_push_pr.s
X-AS output/linux/asm/source/phases.s
X-AS output/linux/asm/source/phase_edge_push_cc.s
X-AS output/linux/asm/source/phase_edge_pull_bfs.s
X-AS output/linux/asm/source/phase_edge_pull_pr.s
X-AS output/linux/asm/source/phase_edge_pull_cc.s
AS output/linux/threads.s.o
AS output/linux/phase_vertex_bfs.s.o
AS output/linux/benchmark.s.o
AS output/linux/phase_vertex_pr.s.o
AS output/linux/constants.s.o
AS output/linux/phase_vertex_cc.s.o
AS output/linux/phase_edge_push_bfs.s.o
AS output/linux/phase_edge_push_pr.s.o
AS output/linux/phases.s.o
AS output/linux/phase_edge_push_cc.s.o
AS output/linux/phase_edge_pull_bfs.s.o
AS output/linux/phase_edge_pull_pr.s.o
AS output/linux/phase_edge_pull_cc.s.o
LD output/linux/grazelle
/usr/bin/ld: output/linux/phase_edge_pull_pr.s.o: relocation R_X86_64_32S against symbol graph_scheduler_dynamic_counter_numa' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: output/linux/phase_edge_pull_cc.s.o: relocation R_X86_64_32S against symbol graph_scheduler_dynamic_counter_numa' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: output/linux/phase_edge_push_bfs.s.o: relocation R_X86_64_32S against symbol graph_scheduler_dynamic_counter_numa' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: output/linux/phase_vertex_pr.s.o: relocation R_X86_64_32S against symbol graph_vertex_props' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: output/linux/threads.s.o: relocation R_X86_64_32S against .data' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: output/linux/phase_edge_pull_bfs.s.o: relocation R_X86_64_32S against symbol graph_scheduler_dynamic_counter_numa' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: output/linux/phase_edge_push_pr.s.o: relocation R_X86_64_32S against symbol graph_scheduler_dynamic_counter_numa' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: output/linux/phase_edge_push_cc.s.o: relocation R_X86_64_32S against symbol graph_scheduler_dynamic_counter_numa' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: output/linux/phase_vertex_cc.s.o: relocation R_X86_64_32S against symbol graph_vertex_props' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: output/linux/phase_vertex_bfs.s.o: relocation R_X86_64_32S against symbol graph_vertex_props' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
Makefile:360: recipe for target 'output/linux/grazelle' failed
make[1]: *** [output/linux/grazelle] Error 1
make[1]: Leaving directory '/soe/pebraun/Grazelle-PPoPP18'
Makefile:354: recipe for target 'fig13' failed
make: *** [fig13] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.