支持mpi的ctqw模拟器

pyCTQW的Python项目详细描述


http://img.shields.io/github/release/josh146/pyctqw.png?style=flathttp://img.shields.io/pypi/v/pyCTQW.png?style=flathttp://img.shields.io/pypi/dm/pyCTQW.png?style=flat

Fortran库和Python模块计算连续时间量子游动

这是为了提供一个框架,以便快速方便地使用Quantum 步行者,利用高性能计算,并允许轻松可视化

有关如何使用此软件包的详细信息,请参见online documentation

功能

  • Fortran和Python绑定(分别以库和模块的形式)
  • 通过使用petsc和slepc高性能稀疏支持mpi 矩阵库(计划支持CUDA)
  • 内置对无限线哈密顿量的支持
  • 以二进制或文本形式导入和导出矩阵/状态
  • 可以导入自定义邻接矩阵
  • 支持一个和两个步行者(非交互)
  • 以二进制、文本或matlab格式导入和导出矩阵/状态
  • python模块支持使用matplotlib和networkx进行绘图和可视化
  • 纠缠计算
  • 在图顶点上放置对角线缺陷/屏障的能力
  • MPI图同构方法,用于2和3个相互作用粒子

待办事项

  • CUDA支持
  • 传输计算
  • 当不存在PETSc/SLEPc时添加回退模式

依赖关系

除了MPI实现(例如MPICHOpen MPI),python pyCTQW.MPI模块还依赖于以下组件:

使用pip安装

在确保安装了numpy和petsc4py(并且正确设置了所有的petsc、slepc和mpi环境变量)之后,可以使用pip

$ pip install pyCTQW

从源代码安装

或者,可以手动下载和编译源代码:

  1. 确保安装了上面要求的所有依赖项

  2. pyCTQW文件夹和cd提取到提取的目录:

    $ tar xvzf pyctqw-1.1.0.tar.gz
    $ cd pyctqw-1.1.0
    
  3. 确保您的petsc和slepc环境变量设置正确;例如,

    $ exportPETSC_DIR=/path/to/petsc
    $ exportPETSC_ARCH=linux-gnu
    $ exportSLEPC_DIR=/path/to/slepc
    

    If you are unsure what your PETSc or SLEPc variables should be, please refer to their documentation.

    Important

    If you plan to install ^{tt1}$ using ^{tt5}$ to a system directory, the PETSc and SLEPc environment variables must be available to the root user.

  4. 通过运行

    $ python setup.py build
    
  5. 全系统安装:

    $ sudo -E python setup.py install
    

    where the command ^{tt7}$ ensures that the environment variables set in step 3 are passed to the root.

    Note

    If you do not have root access, or the above command does not appear to work, you can install the package locally by running

    $ python setup.py install --user
    

    Now, have a go running some of the examples!

可选:编译libctqwMPI

除了MPI实现(例如MPICHOpen MPI),Fortran库^{TT8}$还依赖于以下组件: -PETSc>;=3.4.2个 -SLEPc>;=3.4.1

安装这些依赖项后,只需在根目录pyCTQW-X.Y中打开一个终端并运行

$ make fortran [options]

可用选项包括

OptionValuesDescription
^{tt11}$0 (default), 1

whether to build ^{tt8}$ as a shared library (^{tt13}$, producing ^{tt14}$) or a static library (^{tt15}$ (default), producing ^{tt16}$).

If built as a shared library, compiled programs will be smaller, but ^{tt14}$ will need to be added to a directory used by ^{tt18}$ (either by setting the environment variable ^{tt19}$ or by placing ^{tt14}$ in ^{tt21}$ etc).

fortran库(libctqwMPI.solibctqwMPI.a)可以在pyCTQW-X.Y/lib目录中找到,所需的模块文件可以在pyCTQW-X.Y/include目录中找到

可选:生成文档

如果安装了Sphinx,则可以通过运行

$ pip install -r docs/requirements.txt
$ make docs

文件

有关如何使用此软件包的详细信息,请参见online documentation

致谢

图形同构子程序GraphISCert使用外部子程序d_refsor,这是由michel olagnon编写的高度优化的fortran排序实现,也是fortran 90排序和排序算法ORDERPACK 2.0套件的一部分。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使图像以正确的速度在屏幕上移动,以适应所有显示   内存Java分配:从预先存在/分配的池中分配对象   java这种书写方式?   Java正则表达式查找字符串的开头   java是否可以创建一个类来处理安卓中的所有日志代码(例如log.d(TAG,message))   如何使用Selenium和java单击WebTable任意页面上的WebElement   java解析字符串中的文件名   java刷新JTree内容   java如何覆盖RequestMappingHandler   爪哇数石头、布、剪刀赢了多少   struts中的java无效令牌   swing JTree,优化算法,Java   java Tomcat和SSL:密钥库格式无效