支持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第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener