小编Esk*_*kil的帖子

Python,unittest:可以让TestRunner完全安静吗?

有没有办法使unittest.TextTestRunner完全安静,这意味着它永远不会打印到输出?即使verbosity=0它在完成时打印结果.

我希望在打印任何内容之前处理由跑步者返回的TestResult对象.

python unit-testing verbosity

6
推荐指数
1
解决办法
937
查看次数

CUDA:将参数传递给内核是否会减慢内核的启动速度?

CUDA初学者在这里.

在我的代码中,我目前在主机代码的循环中多次启动内核.(因为我需要块之间的同步).所以我想知道我是否可以优化内核启动.

我的内核启动看起来像这样:

MyKernel<<<blocks,threadsperblock>>>(double_ptr, double_ptr, int N, double x);
Run Code Online (Sandbox Code Playgroud)

因此,为了启动一个内核,一些信号显然必须从CPU到GPU,但我想知道参数的传递是否会使这个过程明显变慢.

内核的参数每次都是相同的,所以也许我可以通过复制它们来节省时间,通过由内核定义的名称在内核中访问它们.

__device__ int N;
<and somehow (how?) copy the value to this name N on the GPU once>
Run Code Online (Sandbox Code Playgroud)

并简单地启动没有参数的内核

MyKernel<<<blocks,threadsperblock>>>();
Run Code Online (Sandbox Code Playgroud)

这会让我的程序更快吗?这样做的最佳方式是什么?AFAIK参数存储在一些常量全局内存中.如何确保手动传输的值存储在快速或更快的内存中?

在此先感谢您的帮助.

cuda gpgpu

6
推荐指数
1
解决办法
1875
查看次数

在Matplotlib中剪辑.为什么这不起作用?

我试图使用Matplotlib中的剪辑来剪切圆形和椭圆形等形状,但是必须有一些我缺少的东西..为什么不将圆圈剪成两半?:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
from matplotlib.transforms import Bbox

clip_box = Bbox(((-2,-2),(2,0)))
circle = Circle((0,0),1,clip_box=clip_box,clip_on=True)

plt.axes().add_artist(circle)
plt.axis('equal')
plt.axis((-2,2,-2,2))
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

5
推荐指数
1
解决办法
5174
查看次数

Sympy:修改衍生物的LaTeX输出

在Sympy中,是否可以修改使用latex()输出函数派生的方式?默认是非常麻烦的.这个:

f = Function("f")(x,t)
print latex(f.diff(x,x))
Run Code Online (Sandbox Code Playgroud)

将输出

\frac{\partial^{2}}{\partial x^{2}}  f{\left (x,t \right )} 
Run Code Online (Sandbox Code Playgroud)

这是非常冗长的.如果我喜欢像

f_{xx}
Run Code Online (Sandbox Code Playgroud)

有没有办法强迫这种行为?

python sympy

5
推荐指数
1
解决办法
443
查看次数

函数调用在包含write语句时停止/挂起,但仅在编译期间与某些库链接时

这是我的最小例子:

program test    
  implicit none
  real :: testfunc
  write(*,*) "Writing from main"
  write(*,*) testfunc()
end program test

function testfunc() result(y)
  real             :: y
  write(*,*) "Write from function g"
  y=1.0
  return
end function testfunc
Run Code Online (Sandbox Code Playgroud)

用简单的编译时

gfortran test.f90
Run Code Online (Sandbox Code Playgroud)

或者包括像Slatec这样的图书馆

gfortran test.f90 -lslatec
Run Code Online (Sandbox Code Playgroud)

它工作正常.

但是,当将库更改为-lback的-llapack时,程序在调用testfunc()时会在运行时挂起.请注意,我的示例代码实际上并不使用任何这些库.我看到的最后一件事是"从主要写作",然后没有任何反应,我必须按CTRL-C重新获得控制权.挂起时,该过程似乎没有使用任何CPU周期.

现在奇怪的是,如果我在testfunc()中注释掉write语句,它会一直有效.

所以我的问题是:这些库真的可以阻止我在我自己的函数中打印吗?为什么?怎么样?

(我实际上正在开发一个需要lapack和blas的大型程序,所以我显然不能只是停止链接它们.)

fortran fortran90

4
推荐指数
1
解决办法
1340
查看次数

如何制作非方形轮廓图

我在pyplot中使用contourf来绘制一些标量数据,但是当我的域是非正方形时,我觉得数据被错误表示,因为它总是将它绘制成正方形(尽管轴的值在一侧会增加得更快.)我可以强制轴缩放相等,这样如果我的域在x方向上是两倍长,那么图像实际上是用这个属性绘制成一个矩形吗?

我正在做这样的事情:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
contour = ax.contourf(X,Y,Z)
fig.colorbar(contour)
fig.canvas.draw()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

2
推荐指数
1
解决办法
1742
查看次数

标签 统计

python ×4

matplotlib ×2

cuda ×1

fortran ×1

fortran90 ×1

gpgpu ×1

sympy ×1

unit-testing ×1

verbosity ×1