Skip to main content

A fast and efficient algorithm library for LPMM

Project description

QuickAlgo

这是一个快速算法库,旨在为LPMM(Long-term and Persistent Memory)模块提供Graph数据结构和一些复杂算法的Cpp+Cython高效实现。

目录结构

─ quick_algo - 项目目录  
 ├─ src - 源码目录
 │ └─ quick_algo - 纯C/C++代码目录
 │   ├─ cpp - 纯C/C++代码目录
 │   │ │ ├─ di_graph.hpp - 有向图头文件
 │   │ │ └─ di_graph_impl.cpp - 有向图实现
 │   │ ├─ cpp - 纯C/C++代码目录
 │   │ │ ├─ pagerank.hpp - 有向图头文件
 │   │ │ └─ pagerank_impl.cpp - 有向图实现
 │   │ ├─ __init__.py - Python包初始化文件
 │   │ ├─ di_graph.pxd - Cython头文件
 │   │ ├─ di_graph.pyi - di_graph类型声明文件
 │   │ └─ di_graph.pyx - Cython实现
 │   │ ├─ pagerank.pxd - Cython头文件
 │   │ ├─ pagerank.pyi - pagerank类型声明文件
 │   │ └─ pagerank.pyx - Cython实现
 │   └─ __init__.py - Python包初始化文件
 ├─ tests - 测试代码目录
 ├─ build_lib.py - 构建脚本
 ├─ pyproject.toml - Python项目配置文件
 ├─ setup.py - buildtools安装脚本
 ├─ LICENSE.txt - 许可证
 └─ README.md - 本文档

构建脚本

请在项目目录下执行build_lib.py并添加相应的任务,这将自动化构建过程。

该脚本支持以下任务:

  • --cleanup:清理构建目录和临时文件
  • --cythonize:编译Cython代码(要求依赖cython
  • --force_cythonize: 强制重新编译Cython代码(要求依赖cython
  • --build_dist:构建Python包(要求依赖setuptools
  • --build_wheel:构建Python wheel包(要求依赖setuptools, 要求C/Cpp编译环境)
  • --install:安装Python包(要求依赖setuptools, 要求C/Cpp编译环境)

安装

您可以直接使用pip install quick_algo进行安装:

pip install quick_algo

注:PyPI上提供的二进制包默认不开启SIMD优化,您可以通过编译源码分发包来启用该特性

您也可以在clone本仓库之后通过前述构建脚本于本地进行编译安装。

在编译安装之前,请确保您装有以下依赖:

  • setuptools: Python包管理工具
  • Cython: Cython编译器
  • py-cpuinfo: CPU信息获取库
  • MSVC/GCC/Clang: C/Cpp编译环境

要使用脚本编译安装,请在项目目录下执行以下命令:

python build_lib.py --cleanup --cythonize --install

测试

本项目的测试代码位于tests目录下,使用pytest进行测试。

在测试之前,请确保您装有以下依赖:

  • pytest:测试框架
  • networkx: 图算法库
  • numpy: 数值计算库(由networkx要求)
  • scipy: 数值计算库(由networkx要求)

要运行测试,请在项目目录下执行以下命令:

pytest ./tests -s

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quick_algo-0.1.3.tar.gz (201.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

quick_algo-0.1.3-cp313-cp313-win_amd64.whl (317.7 kB view details)

Uploaded CPython 3.13Windows x86-64

quick_algo-0.1.3-cp312-cp312-win_amd64.whl (319.0 kB view details)

Uploaded CPython 3.12Windows x86-64

quick_algo-0.1.3-cp311-cp311-win_amd64.whl (320.9 kB view details)

Uploaded CPython 3.11Windows x86-64

quick_algo-0.1.3-cp310-cp310-win_amd64.whl (320.5 kB view details)

Uploaded CPython 3.10Windows x86-64

File details

Details for the file quick_algo-0.1.3.tar.gz.

File metadata

  • Download URL: quick_algo-0.1.3.tar.gz
  • Upload date:
  • Size: 201.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for quick_algo-0.1.3.tar.gz
Algorithm Hash digest
SHA256 83bc6a991a30222019b38dcccabe0aa703d4a14ef6d8a41d801f6c51f2b6beec
MD5 5b2954009ec93cb9366691642b777012
BLAKE2b-256 b65e9a8aa66f6a9da26253bb1fb87c573fb5ced9da19aea306787542bb4abc2f

See more details on using hashes here.

File details

Details for the file quick_algo-0.1.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: quick_algo-0.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 317.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for quick_algo-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8ddc2ec38a04e757b9b5861e73001c4e0d8f66d5cd9a45b00f878f396d50a2b1
MD5 65b31d09788d8ce0abf18782d46e4d6d
BLAKE2b-256 112f9a9a77d4aafe9f290b5db1a63a1c3c2c105eb9dbdc573cc0a20fd5299b96

See more details on using hashes here.

File details

Details for the file quick_algo-0.1.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: quick_algo-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 319.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for quick_algo-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1d73297c6f0135ca6acd1a3c036a8d4280f005744abdbb5a30428fabb8f095fe
MD5 896d719628fbcd643b406b0a2545e108
BLAKE2b-256 5e3dc75e6c509fde672c19e63cf22389da60f5bbe9273bc91865726b24f88689

See more details on using hashes here.

File details

Details for the file quick_algo-0.1.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: quick_algo-0.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 320.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for quick_algo-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 68b121726cabb4da03bd6b644df2a0d7be9accf8388f2cd34cb2cc9318d96f0a
MD5 eb5c2171d033da93dd3445ae570485d5
BLAKE2b-256 4b0d9dcf1ed1f1a89a4b307408fe980b853bdaabd5d72d625b30bcbb0c972750

See more details on using hashes here.

File details

Details for the file quick_algo-0.1.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: quick_algo-0.1.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 320.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for quick_algo-0.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 901b365e5ada781332bf38103b7a03f52a5bd4a81e01391d1271f710be1a4092
MD5 ff5588aea9b3d00a18136eb4809d408a
BLAKE2b-256 d98e779063325ba04c0a44e61c9ebf5fedecb427de377c081986bcc59dba6312

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page