55[ ![ JB Research] ( https://jb.gg/badges/research-flat-square.svg )] ( https://research.jetbrains.org/ )
66[ ![ Ubuntu] ( https://github.com/JetBrains-Research/cuBool/workflows/Ubuntu/badge.svg?branch=master )] ( https://github.com/JetBrains-Research/cuBool/actions )
77[ ![ License] ( https://img.shields.io/badge/license-MIT-orange )] ( https://github.com/JetBrains-Research/cuBool/blob/master/LICENSE )
8- [ ![ Package] ( https://img.shields.io/badge/pypi%20package-alpha -%233776ab )] ( https://test. pypi.org/project/pycubool/ )
8+ [ ![ Package] ( https://img.shields.io/badge/pypi%20package-1.0.0 -%233776ab )] ( https://pypi.org/project/pycubool/ )
99
1010** cuBool** is a linear Boolean algebra library primitives and operations for
1111work with sparse matrices written on the NVIDIA CUDA platform. The primary
@@ -28,6 +28,8 @@ for computations on CPU side only. This backend is selected automatically
2828if Cuda compatible device is not presented in the system. This can be quite handy for
2929prototyping algorithms on a local computer for later running on a powerful server.
3030
31+ ** PyPI package web page** is following [ link] ( https://pypi.org/project/pycubool/ ) .
32+
3133### Features
3234
3335- [X] Library C interface
@@ -45,29 +47,50 @@ prototyping algorithms on a local computer for later running on a powerful serve
4547- [X] Device capabilities query
4648- [X] IO matrix loading from mtx file
4749- [X] IO matrix saving into mtx file
48- - [ ] IO matrix saving into gviz format
50+ - [X ] IO matrix saving into gviz format
4951- [X] IO user-defined file logging
5052- [X] Wrapper for Python API
5153- [X] Wrapper syntax sugar
5254- [X] Tests for Python wrapper
5355- [X] Pip package
54- - [ ] Code examples
55- - [ ] User guide
56+ - [X ] Code examples
57+ - [X ] User guide
5658- [X] Unit Tests collection
57- - [ ] Publish built artifacts and shared libs
58- - [ ] Publish stable source code archives
59+ - [X] Publish built artifacts and shared libs
60+ - [X] Publish stable source code archives
61+
62+ ## Simple example
63+
64+ Create sparse matrices, compute matrix-matrix product and print the result to the output:
65+
66+ ``` python
67+ import pycubool as cb
68+
69+ a = cb.Matrix.empty(shape = (2 , 3 ))
70+ a[0 , 0 ] = True
71+ a[1 , 2 ] = True
72+
73+ b = cb.Matrix.empty(shape = (3 , 4 ))
74+ b[0 , 1 ] = True
75+ b[0 , 2 ] = True
76+ b[1 , 3 ] = True
77+ b[2 , 1 ] = True
78+
79+ print (a, b, a.mxm(b), sep = " \n " )
80+ ```
5981
6082## Installation
6183
62- If you are running OS ** Ubuntu 20.04** or higher you can download the official
84+ If you are running ** Linux based ** OS (tested on Ubuntu 20.04) you can download the official
6385PyPI ** pycubool** python package, which includes compiled library source code
6486with Cuda and Sequential computations support. Installation process
6587requires only ` python3 ` to be installed on your machine. Python can be installed
6688as follows [ link] ( https://phoenixnap.com/kb/how-to-install-python-3-ubuntu ) .
6789
6890If all requirements are satisfied, run the following command to install PyPI package:
91+
6992``` shell script
70- $ python3 -m pip install -i https://test.pypi.org/simple/ pycubool
93+ $ python3 -m pip install pycubool
7194```
7295
7396## Getting Started
@@ -77,11 +100,11 @@ These steps are required if you want to build library for your specific platform
77100
78101### Requirements
79102
80- - Linux Ubuntu (tested on 20.04)
103+ - Linux based (tested on Ubuntu 20.04)
81104- CMake Version 3.15 or higher
82- - CUDA Compatible GPU device
105+ - CUDA Compatible GPU device (to run Cuda computations)
83106- GCC Compiler
84- - NVIDIA CUDA toolkit
107+ - NVIDIA CUDA toolkit (to build Cuda backend)
85108- Python 3 (for ` pycubool ` library)
86109- Git (to get source code)
87110
@@ -237,9 +260,9 @@ wrapper can be used to compute the same transitive closure problem for the
237260directed graph within python environment:
238261
239262` ` ` python
240- import pycubool
263+ import pycubool as cb
241264
242- def transitive_closure(a: pycubool .Matrix):
265+ def transitive_closure(a: cb .Matrix):
243266 " " "
244267 Evaluates transitive closure for the provided
245268 adjacency matrix of the graph.
@@ -296,7 +319,7 @@ cuBool
296319# # Citation
297320
298321` ` ` ignorelang
299- @online {cuBool,
322+ @MISC {cuBool,
300323 author = {Orachyov, Egor and Alimov, Pavel and Grigorev, Semyon},
301324 title = {cuBool: sparse Boolean linear algebra for Nvidia Cuda},
302325 year = 2020,
0 commit comments