An experimental GPU accelerated implementation of ForceAtlas2.
govertb / gpugraphlayout Goto Github PK
View Code? Open in Web Editor NEWAn experimental GPU accelerated implementation of ForceAtlas2
License: Other
An experimental GPU accelerated implementation of ForceAtlas2
License: Other
An experimental GPU accelerated implementation of ForceAtlas2.
Just a curiosity... can you share your experience with FA2 parameters in large networks?
When I use Gephi, my best results are with:
Gravity: 0.01
Scale: [2-5]
linlog
BH: aprox
strong gravity
please add an example input file and document edges/weights input format.
when i run this project use ./graph_viewer gpu 10000 100 wg 5 1 approximate ./result.csv ./graph.csv csv
, then throw me a Error is error: CUDA was requested, but not compiled for.
I don't know how to solve this problem . please help me ~~
Hi there,
I'm trying to use the code, but it won't create a layout file after finished running. I can create a file in the same output folder using tools like nano without sudo access.
[maxzhang@cdr352 linux]$ ./graph_viewer gpu 50 0 wg 2 1 approximate edgelist output csv
Loading edgelist at 'edgelist'...done.
fetched 4 nodes and 4 edges.
Started Layout algorithm...
Starting iteration 3 (6.00%).
Starting iteration 6 (12.00%).
Starting iteration 9 (18.00%).
Starting iteration 12 (24.00%).
Starting iteration 15 (30.00%).
Starting iteration 18 (36.00%).
Starting iteration 21 (42.00%).
Starting iteration 24 (48.00%).
Starting iteration 27 (54.00%).
Starting iteration 30 (60.00%).
Starting iteration 33 (66.00%).
Starting iteration 36 (72.00%).
Starting iteration 39 (78.00%).
Starting iteration 42 (84.00%).
Starting iteration 45 (90.00%).
Starting iteration 48 (96.00%).
[maxzhang@cdr352 linux]$ cd output/
[maxzhang@cdr352 output]$ ls
[maxzhang@cdr352 output]$
Hi @govertb,
Is it possible to output the (x,y) positions of the nodes instead of just a .png
file?
Thanks!
E.g. using ./graph_viewer gpu 500 0 wg 5 1 approximate edgelist .
results in
error: (GPUassert) an illegal memory access was encountered (error 77). ../../src/RPGPUForceAtlas2.cu:232
Possibly because gravitational force doesn't overcome repulsive force that displaces small disconnected components away from the largest component, perhaps beyond the bounds of the layout frame.
In RPGraph.cpp file.
adjacency_list[std::min(s_mapped, t_mapped)].push_back(std::max(s_mapped, t_mapped));
This code is not build directed edge correctly.It's should be as adjacency_list[s_mapped].push_back(t_mapped)
Working on this.
The title pretty much says it all. My dev platform is VS2019. Also under W10.
I have a need to visualize streaming data (financial)
Is this feasible? If not, any suggestions?
Thanks,
Merlin
Running on a GeForce RTX 3090 (Ampere architecture) the code stalls in the SortKernel
. Possibly because certain threads no longer co-reside on the same multiprocessor during shared memory reductions in the SummarizationKernel
and/or SortKernel
.
I have a quesition,your class ForceAltas2 have a protected k_r,but your are not give that value。it's so inconceivability。
For example ./graph_viewer cpu 2 1 wg 5 1 approximate "edges.txt" .
Will crash before printing any pictures, (but after running for a while) which a segfault.
This appears to be because the program searches for the character "/" in edgelist_path
, but fails if there is no slash.
Output on MacOS
Starting iteration 1 (50.00%).
libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: basic_string
Abort trap: 6
On Ubuntu it simply reports segmentation fault.
Hi @govertb,
Great work on this project. Is there any way to alter the calculation such that the layout is not constrained to a circle?
I plan to use this for a research project of mine and would love to get in touch to ask a few more detailed questions. Is there an email address I can reach you at? You can also send me a message to [email protected]
.
Thanks!
One question, Your coding's performance very good but why your paper don't publish the good academic journal? Another question, I read carefully your this paper but I can't find 'pipeline' in the code which usually presents in your paper context. The 'pipeline' as your important contribution I don't find it.
I have this error while compiling
paco@W35:~/GPUGraphLayout/builds/linux$ make graph_viewer
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/graph_viewer.o ../../src/graph_viewer.cpp
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/RPGraph.o ../../src/RPGraph.cpp
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/RPCPUForceAtlas2.o ../../src/RPCPUForceAtlas2.cpp
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/RPForceAtlas2.o ../../src/RPForceAtlas2.cpp
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/RPGraphLayout.o ../../src/RPGraphLayout.cpp
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/RPCommon.o ../../src/RPCommon.cpp
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/RPBarnesHutApproximator.o ../../src/RPBarnesHutApproximator.cpp
mkdir -p obj
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/RPLayoutAlgorithm.o ../../src/RPLayoutAlgorithm.cpp
mkdir -p obj/pngwriter/src
nvcc -c -D NO_FREETYPE -O3 -std=c++11 -o obj/pngwriter/src/pngwriter.o ../../lib/pngwriter/src/pngwriter.cc
mkdir -p obj
nvcc --device-c -O3 -std=c++11 -D NO_FREETYPE -o obj/RPBHKernels.o ../../src/RPBHKernels.cu
/usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’:
/usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope
return (char *) memcpy (__dest, __src, __n) + __n;
^
Makefile:72: recipe for target 'obj/RPBHKernels.o' failed
make: *** [obj/RPBHKernels.o] Error 1
Ubuntu 16.04
cuda 7.5
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.