加速CPU和GPU上的模板计算

pystencils的Python项目详细描述


pystencils

BinderDocspipeline statuscoverage report

在numpy数组上运行极其快速的模板代码。

pystencils使用sympy定义可以在numpy数组上执行的模板操作。 利用模板结构使得pystencils比正常的numpy代码运行得更快,甚至像cython和numba一样, as demonstrated in this notebook

下面是计算相邻单元格平均值的代码片段:

importpystencilsaspsimportnumpyasnpf,g=ps.fields("f, g : [2D]")stencil=ps.Assignment(g[0,0],(f[1,0]+f[-1,0]+f[0,1]+f[0,-1])/4)kernel=ps.create_kernel(stencil).compile()f_arr=np.random.rand(1000,1000)g_arr=np.empty_like(f_arr)kernel(f=f_arr,g=g_arr)

pystencils主要用于使用有限差分或有限体积方法的数值模拟。 它带有PDE的自动有限差分离散化功能:

c,v=ps.fields("c, v(2): [2D]")adv_diff_pde=ps.fd.transient(c)-ps.fd.diffusion(c,sp.symbols("D"))+ps.fd.advection(c,v)discretize=ps.fd.Discretization2ndOrder(dx=1,dt=0.01)discretization=discretize(adv_diff_pde)

查看documentation了解更多信息。

安装

pip install pystencils[interactive]

如果没有[interactive],您将得到一个依赖关系非常小的最小版本。

所有选项:

  • gpu:如果nvidia gpu可用且cuda已安装,请使用此选项
  • alltrafos:引入额外的依赖项以简化循环,例如libisl
  • bench_db:在对象数据库中存储基准结果的功能
  • interactive:安装在jupyter中工作的依赖项,包括图像I/O、绘图等。
  • doc:构建文档的包

可以组合选项,例如

pip install pystencils[interactive,gpu,doc]

文档

阅读文档here和 查看doc/notebooks中的jupyter笔记本。

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

推荐PyPI第三方库


热门话题
java我的抽屉布局与相对布局不匹配   java mavenwarplugin:排除除一个目录以外的所有目录   java有没有任何可能的方法可以在不进入google play的情况下对安卓应用程序进行编程评分   java无法绑定没有@ModelAttribute的LocalDate   java在eclipse中创建多个src目录   java数据不会从Android写入Firebase数据库   java我可以合理地访问扩展类的变量吗?   java响应。sendRedirect()无法运行Servlet   基于spring概要文件的java导入bean资源   java Android Studio Appodel Api 19或更低版本   java Point2D返回NaN/Nullpointer   java非常奇怪的语法错误   java无法在Mac中为Azure SQL数据库打开端口1433   使用firebase recyclerview的java总是返回最后一个值   zip Java 7zip压缩太大   三个整数的java阶   Spring web app的java Shiro会话管理   dll使用JNA在JAVA中加载动态库有限制吗?