jetbrains-research / cfpq-on-gpgpu Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Implement a method of four Russian on GPU with appropriate wrappers for kernel invocation (with and without pre-allocation of the table and matrices )
Current GPU-based implementations utilize dense matrices, but real graphs are sparse.
We should try to utilize sparse boolen matrices for CFPQ.
Implement matrix based cfpq algorithm by using Cutlass library.
RDFs in our dataset are not big enough. It is necessary to find new RDFs with a bigger size.
Publish results at the GRADES-NDA conference
I think that data set and algorithms implementations should be placed into different repositories.
One for the data set. One for each algorithm: the set of matrix-based algorithms, (G)LL-LR-based algorithms. We should provide the ability to integrate new implementation into the benchmark. I think that it can be done by using git submodules. each implementation can be included as a submodule.
Make M4RI GPU-friendly.
Should we store graphs? I think that for synthetic graphs (worst case, sparse-to-full) we should create generators. Also, I think that for real-world data we should provide converters to our format, instead of converted graphs storing.
Hi
I have tried to run the experiments as described in this README file:
README.md (branch 'documentation')
I have an Ubuntu 18.04.2 machine.
Firstly I downloaded the files with git lfs
, ran build_tests.py
and then ran the following command in the CFPQ-on-GPGPU root folder (my docker image is called cfpq
):
$ sudo docker run -v . cfpq
Then I got the following output:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"apply apparmor profile: apparmor failed to apply profile: open /proc/self/attr/exec: no such file or directory\"": unknown. ERRO[0179] error waiting for container: context canceled.
I do not know how to use docker very well, but I believe it is not the problem, since it created the cfpq
image succesfully (it has more than 5Gb of size).
I do not have an NVIDA graphics card. I have an Intel UHD 620, which supports Open CL, but I am not sure if it is compatible with CUDA.
So my questions are:
1 - Am I doing something wrong in the tests execution process?
2 - Is it possible to run the tests without an NVIDA graphics card, but with one that supports Open CL?
Parsing input files, mainloop and result output. I.e. generic wrapping stuff, doing all the work except actual matrix operations.
In current implementations, we suppose that all data fit in GPU memory. How to handle really huge graphs? Try to implement a multi-GPU solution for graphs which cannot be fully stored in RAM. It should be possible to utilize classical solutions for distributed huge matrices multiplication.
Implement utils functions such as memory transfer, management and timer for GPU
Add data and query form "Demand-driven Alias Analysis for C" (Xin Zheng and Radu Rugina).
We use data from this article in our work. Ilya Kirillov can help to extract graphs from C code.
A number of serialized graphs: https://github.com/YaccConstructor/Meerkat/tree/master/core/src/test/resources/static_analysis
Implement tensor product based cfpq algorithm by using Cutlass library.
There is a GPraphBLAS implementation which supports MPI. We can use it to implement distributed CFPQ.
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.