鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

使用示例

以使用enwiki-latest-pages-articles类数据集为例进行KNewPfordelta接口性能测试。

配置数据集生成环境

  1. 请参见编译KNewPfordelta获取KNewPfordelta接口源代码,测试框架代码位于源代码中。
  2. 请参见编译KNewPfordelta编译源代码。
  3. 安装Python3。
    yum install python3 python3-devel python3-pip
  4. 安装conda。
    1. 获取conda
    2. 将下载的.sh文件上传到服务器后,执行以下命令(以Anaconda3-2025.06-1-Linux-aarch64.sh为例)。
      bash Anaconda3-2025.06-1-Linux-aarch64.sh

      安装时,阅读许可协议按回车,同意许可协议输入“yes”,询问是否初始化Anaconda输入“yes”

    3. 安装完成后,运行以下命令激活Anaconda环境。
      source ~/.bashrc
    4. 运行以下命令验证是否安装成功。
      conda --version
  5. 安装Python模块。
    conda install nltk numpy
  6. 安装nltk_data。
    1. 获取nltk_data
      git clone https://github.com/nltk/nltk_data.git
    2. 将主目录下的“packages”文件夹重命名为“nltk_data”
      cd /path/to/nltk_data
      mv packages nltk_data
    3. 将nltk_data放置在可搜索到的目录位置。
      假设将nltk_data放置于“/usr/local/nltk_data”,将“/usr/local/nltk_data/tokenizers/”下的punkt.zip和punkt_tab.zip解压。
      cp -r ./nltk_data /usr/local
      cd /usr/local/nltk_data/tokenizers
      unzip punkt.zip
      unzip punkt_tab.zip
    4. 安装punkt_tab和stopwords。
      python
      >>> import nltk
      >>> import ssl
      >>> try:
      ...     _create_unverified_https_context = ssl._create_unverified_context
      ... except AttributeError:
      ...     pass
      ... else:
      ...     ssl._create_default_https_context = _create_unverified_https_context
      ... 
      >>> nltk.download('punkt_tab')
      >>> nltk.download('stopwords')
      >>> exit()

生成数据集

articles分类倒排索引数据集生成步骤。

  1. 进入生成数据集的目录,下载articles分类的bz2格式公开wiki数据。例如:enwiki-latest-pages-articles1.xml-p1p41242.bz2。
    cd /path/to/knewpfordelta/test/gen_data
    wget https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles1.xml-p1p41242.bz2 --no-check-certificate
  2. 将下载的系列数据文件转换为JSON文件。
    python parse_articles_xml.py enwiki-latest-pages-articles1.xml-p1p41242.bz2
  3. 将JSON文件转换为字符集词频文件term_list_articles.txt。
    python export_terms_and_freq.py inverted_index_articles.json
  4. 将JSON文件转换为文档ID二进制数据文件doc_id_chunk_articles.bin。
    python rebuild_inverted_index_for_chunk.py inverted_index_articles.json

测试

  1. 解压缩测试。
    进入测试目录。
    cd /path/to/knewpfordelta
    • 性能测试。入参是词频率txt文件和二进制数据bin文件。
      numactl -m 0 -c 0 ./newpfordelta_perf /path/to/term_list_articles.txt /path/to/doc_id_chunk_articles.bin

      使用KNewPfordelta性能测试运行结果如下:

      解压缩的速度speed反映了性能测试的情况。

    • 功能测试。
      numactl -m 0 -c 0 ./newpfordelta_ut /path/to/term_list_articles.txt /path/to/doc_id_chunk_articles.bin

      功能测试运行结果如下:

      回显信息中可以看到解压缩成功的提示信息。

  2. 解压缩unpack函数及异常值性能测试。
    1. 清除生成文件。
      make clean
    2. 编译KNewPfordelta。
      make perf=1
    3. 性能测试。
      numactl -m 0 -c 0 ./newpfordelta_perf /path/to/term_list_articles.txt /path/to/doc_id_chunk_articles.bin

      使用KNewPfordelta性能测试运行结果如下:

      运行结果展示了不同的解压缩unpack函数的正常值和异常值(Except)运行的时间,以及占unpack函数总运行时间的比例,Calls表示每个unpack函数被调用的次数。