【水动力学】04 二维洪水淹没模型Pypims安装

发布时间:2026/6/17 1:54:01

【水动力学】04 二维洪水淹没模型Pypims安装 模型介绍HiPIMSHigh-Performance Integrated hydrodynamic Modelling System使用最先进的数值方案Godunov型有限体积法来求解二维浅水方程以进行洪水模拟。为了支持高分辨率洪水模拟使用CUDA/C 语言在多个GPU上实现了HiPIMS以实现高性能计算。由于HiPIMS具有模块化和灵活的结构因此只要问题可以在均匀的矩形网格上解决就可以进一步开发用于水文科学的其他应用。HiPIMS由水力环境建模实验室开发和维护HiPIMS的开发由梁秋华Qiuhua Liang教授领导凝聚了将近二十年的心血和众多研究人员的努力。Pypims是HiPIMS的Python API该API提供了一个用户友好的集成工具链用于准备输入运行HiPIMS和可视化输出。完整的文档在https://pypims.readthedocs.io/en/latest/上。第一种安装方式编译安装Pypims是一个Python第三方库源代码已经在Github开源按照说明书 在Win 11电脑上安装成功。步骤记录如下。计算机环境我的计算机操作系统为Windows 11 专业工作站版版本号23H2。系统类型是64 位操作系统, 基于 x64 的处理器。处理器为12th Gen Intel® Core™ i7-12700 2.10 GHz内存为 96 GB。GPU为NVIDIA RTX A4000显存为 16 GB驱动版本为576.02CUDA版本为12.9。安装MinicondaMiniconda是Anaconda的轻量级版本由Continuum Analytics现Anaconda Inc.开发。通过Miniconda用户可高效管理项目依赖平衡灵活性与资源消耗。安装Git从Git官方网站下载安装程序Git官网下载页面运行下载的.exe文件按照安装向导默认选项完成安装。安装完成后在命令提示符或PowerShell中输入git --version验证是否安装成功。安装完成后需设置用户名和邮箱gitconfig--globaluser.nameYour Namegitconfig--globaluser.emailyour.emailexample.com使用git config --list可查看当前配置。安装Visual StudioVisual Studio 是由微软开发的集成开发环境IDE支持多种编程语言如 C#, C, Python, JavaScript 等和平台Windows, Web, 移动端等。安装免费的Visual Studio Community版本并安装C负载。安装NVIDIA CUDA ToolkitCUDA Toolkit可以从NVIDIA网站下载。安装完成后设置环境变量。克隆Pypims项目进入欲安装的文件夹在命令提示符工具中输入以下命令gitclone https://github.com/pypims/pypims.gitcdpypims如果连接不上Github可以设置网络代理。修改CmakeLists当前 CUDA 版本或显卡驱动 不再支持sm_35。因此需要在Pypims项目文件./pypims/pypims/CMakeLists.txt中去掉对sm_35的支持并替换为本机显卡支持的Compute Capabilitysm_86。CUDA GPU Compute Capability查询网址https://developer.nvidia.com/cuda-gpusRTX A4000 → Compute Capability 8.6 → sm_86IF(WIN32) set(PLATFORM_CXX_FLAGS /Zi) set(CUDA_SEPARABLE_COMPILATION ON) set(CUDA_NVCC_FLAGS -archsm_86;--expt-extended-lambda) ENDIF(WIN32)修改cuda_data_bank.cu在./pypims/pypims/lib/src/multi_threading/cuda_data_bank.cu代码中使用了 HEMI_DEV_CALLABLE_INLINE_MEMBER 宏它的作用是用来兼容 GPU 和 CPU 编译环境。而 HEMI 本身不再与新版本 CUDA 11和 Thrust 完美兼容。再加上我使用的是 CUDA 12.9在编译时会触发如下错误error : static assertion failed with unimplemented for this system这主要是 Thrust 在执行thrust::device_vectorGC::Vector3的.resize()操作时无法推导出如何用你提供的构造器在 device 上初始化对象。解决方案是手动定义thrust::device_vectorGC::Vector3时不要使用.resize(n)。// 不推荐thrust::device_vectorGC::Vector3v;v.resize(n);// ❌ 这会默认构造 device 端 Vector3如果 Thrust 不支持就会崩溃// 推荐std::vectorGC::Vector3host_vec(n,GC::Vector3(0,0,0));thrust::device_vectorGC::Vector3vhost_vec;因此对cuda_data_bank.cu文件的cuDataBankBranch函数修改为cuDataBankBranch::cuDataBankBranch(unsignedint_size_lower2receive,unsignedint_size_lower2send,unsignedint_size_upper2receive,unsignedint_size_upper2send):size_lower2receive(_size_lower2receive),size_lower2send(_size_lower2send),size_upper2receive(_size_upper2receive),size_upper2send(_size_upper2send){lower_status0;std::vectorGC::Vector3host_vec1(size_lower2receive,GC::Vector3(0,0,0));data_lowerhost_vec1;indices_lower2receivehost_vec1;std::vectorGC::Vector3host_vec2(size_lower2send,GC::Vector3(0,0,0));indices_lower2sendhost_vec2;upper_status0;std::vectorGC::Vector3host_vec3(size_upper2receive,GC::Vector3(0,0,0));data_upperhost_vec3;indices_upper2receivehost_vec3;std::vectorGC::Vector3host_vec4(size_upper2send,GC::Vector3(0,0,0));indices_upper2sendhost_vec4;}创建虚拟环境虚拟环境允许创建隔离的Python环境避免依赖冲突。用管理员方式打开Anaconda Prompt创建 Conda 虚拟环境conda create-npypimspython3.7-y安装依赖激活环境conda activate pypims安装Cmakecondainstallcmake-y安装GDALcondainstallgdal-y用相同的方式安装./pypims/docs/requirements.txt中列出的所有库condainstallrasterio-ycondainstallfiona-ycondainstallnumpy-ycondainstallscipy-ycondainstallmatplotlib-ycondainstallimageio-ycondainstallpandas-ycondainstallpyshp-ycondainstall“sphinx4.1”-ycondainstall“sphinx-rtd-theme1.0.0”-ycondainstallnbsphinx-ycondainstallipykernel-y安装ipykernel用于在Visual Studio Code中运行Jupyter Notebook的demo。condainstallipykernel-y安装Pypims在Pypims文件夹中以管理员方式打开Anaconda Prompt进入pypims环境输入命令python setup.pyinstall安装完成。第二种安装方式Conda直接安装在安装完Miniconda、Git、Visual Studio、NVIDIA CUDA Toolkit后创建虚拟环境并安装所有依赖。然后在虚拟环境中输入以下命令直接安装Pypims。注意此方式未经测试可能会遇到错误。condainstallpypims或者pipinstallpypims运行洪水淹没模拟案例根据Pypims官方提供的教程使用Visual Studio Code打开./pypims/docs/source/Tutorials/flood.ipynb选择Python环境pypims运行flood.ipynb学习Pypims的使用。重装Pypims按照第一种方式安装了Pypims库后如果修改了源代码则需要重新安装Pypims库才能使得修改生效。重装方法如下。删除编译文件进入Pypims源代码目录删除build、dist、pypims.egg-info文件夹这些文件夹是上次安装Pypims时生成的这次重装需要先删除。卸载当前环境下的Pypims库以管理员方式打开Anaconda Prompt进入安装Pypims库的环境conda activate pypims-subgrid卸载Pypims库pip uninstall pypims-y重新安装Pypims库在安装Pypims库的环境中进入Pypims库源代码文件夹e:cdE:\Research\HydrodynamicModel\pypims-subgrid安装Pypims库python setup.pyinstall

相关新闻