GithubHelp home page GithubHelp logo

jetbrains-research / cfpq-on-gpgpu Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 5.0 10.48 MB

License: MIT License

C++ 26.60% Python 22.22% Cuda 46.97% C 0.53% CMake 2.27% Dockerfile 1.33% Shell 0.09%

cfpq-on-gpgpu's People

Contributors

dmiitriyjarosh avatar egornemchinov avatar gsvgit avatar immortalturtle avatar nikitamishin avatar rustam-azimov avatar sergeigorbatiuk avatar sokolovyaroslav avatar spirinegor avatar vkutuev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cfpq-on-gpgpu's Issues

Split data set and implementations

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.

Publish repo

  • Add README-s. How to contribute: new data for evaluation, new implementations (on existing platforms, on new platforms)
    • root
    • data sets
    • implementations
  • What about CI, docker, etc?
  • Publish

New RDFs

RDFs in our dataset are not big enough. It is necessary to find new RDFs with a bigger size.

Generators for graphs?

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.

Distributed/multi-gpu CFPQ

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.

Contribute to m4ri

Make M4RI GPU-friendly.

  • Create separated BMM procedures
  • Create procedures for computations over F2
  • Evaluate them, compare with original procedures from M4RI
  • Open pull request

Error on trying to run experiments

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?

Sparse boolean matrices for CFPQ

Current GPU-based implementations utilize dense matrices, but real graphs are sparse.
We should try to utilize sparse boolen matrices for CFPQ.

Implement CFPQ on Python3

Parsing input files, mainloop and result output. I.e. generic wrapping stuff, doing all the work except actual matrix operations.

Nsparse for cfpq

  • Implement cfpq by using nsparse library. Use set-of-nonterminal representation of matrices cells. So, first of all, you should to modify multiplication operation in nsparse library.
  • Evaluate and compare with other implementations.

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.