支持mpi的ctqw模拟器
pyCTQW的Python项目详细描述
Fortran库和Python模块计算连续时间量子游动
这是为了提供一个框架,以便快速方便地使用Quantum 步行者,利用高性能计算,并允许轻松可视化
有关如何使用此软件包的详细信息,请参见online documentation
功能
- Fortran和Python绑定(分别以库和模块的形式)
- 通过使用petsc和slepc高性能稀疏支持mpi 矩阵库(计划支持CUDA)
- 内置对无限线哈密顿量的支持
- 以二进制或文本形式导入和导出矩阵/状态
- 可以导入自定义邻接矩阵
- 支持一个和两个步行者(非交互)
- 以二进制、文本或matlab格式导入和导出矩阵/状态
- python模块支持使用matplotlib和networkx进行绘图和可视化
- 纠缠计算
- 在图顶点上放置对角线缺陷/屏障的能力
- MPI图同构方法,用于2和3个相互作用粒子
待办事项
- CUDA支持
- 传输计算
- 当不存在PETSc/SLEPc时添加回退模式
依赖关系
除了MPI实现(例如MPICH或Open MPI),python pyCTQW.MPI模块还依赖于以下组件:
- Python>;=2.7
- NumPy>;=1.6.0
- PETSc>;=3.4.2
- SLEPc>;=3.4.1
- petsc4py 3.4 or petsc4py-dev
- mpi4py(推荐,用于某些绘图)
- matplotlib(推荐用于节点绘制和图形可视化)
- SciPy(推荐,用于某些I/O操作)
- NetworkX(推荐,图形可视化)
使用pip安装
在确保安装了numpy和petsc4py(并且正确设置了所有的petsc、slepc和mpi环境变量)之后,可以使用pip:
$ pip install pyCTQW
从源代码安装
或者,可以手动下载和编译源代码:
确保安装了上面要求的所有依赖项
将pyCTQW文件夹和cd提取到提取的目录:
$ tar xvzf pyctqw-1.1.0.tar.gz $ cd pyctqw-1.1.0
确保您的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.
通过运行
$ python setup.py build
全系统安装:
$ 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实现(例如MPICH或Open MPI),Fortran库^{TT8}$还依赖于以下组件: -PETSc>;=3.4.2个 -SLEPc>;=3.4.1
安装这些依赖项后,只需在根目录pyCTQW-X.Y中打开一个终端并运行
$ make fortran [options]
可用选项包括
Option | Values | Description |
---|---|---|
^{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.so或libctqwMPI.a)可以在pyCTQW-X.Y/lib目录中找到,所需的模块文件可以在pyCTQW-X.Y/include目录中找到
文件
有关如何使用此软件包的详细信息,请参见online documentation
致谢
图形同构子程序GraphISCert使用外部子程序d_refsor,这是由michel olagnon编写的高度优化的fortran排序实现,也是fortran 90排序和排序算法ORDERPACK 2.0套件的一部分。