小编The*_*dus的帖子

绑定到Windows上的docker socket

在*nix系统上,可以通过执行以下操作将docker socket从主机绑定到VM:

docker run -v /var/run/docker.sock:/var/run/docker.sock ...

在Windows主机上运行docker时是否有相同的方法来执行此操作?


我试过各种组合,比如:

docker run -v tcp://127.0.0.1:2376:/var/run/docker.sock ...

docker run -v "tcp://127.0.0.1:2376":/var/run/docker.sock ...

docker run -v localhost:2376:/var/run/docker.sock ...

这些都没有奏效.

docker

41
推荐指数
6
解决办法
2万
查看次数

std :: random_device的线程安全性

我有一些看起来有点像这样的代码:

std::random_device rd;

#pragma omp parallel
{
    std::mt19937 gen(rd());
    #pragma omp for
    for(int i=0; i < N; i++)
    {
        /* Do stuff with random numbers from gen() */
    }
}
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  • std::random_device线程安全的?也就是说当几个线程立刻调用它时,它会做一些无用的事情吗?
  • 这通常是个好主意吗?我应该担心重叠的随机数流吗?
  • 有没有更好的方法来实现我想要的(每个线程中的独立随机数流 - 我现在不太担心可重复性)?

如果它对std::random_device我主要在Windows上运行的工作有任何影响,尽管我希望代码在Linux和OSX上同样运行良好.

c++ random openmp c++11

17
推荐指数
1
解决办法
1780
查看次数

多处理 - 具有多维 numpy 数组的共享内存

我处于需要并行处理一个非常大的 numpy 数组 (55x117x256x256) 的情况。尝试使用通常的多处理方法传递它会产生 AssertionError,我理解这是因为数组太大而无法复制到每个进程中。因此,我想尝试将共享内存与多处理一起使用。(我对其他方法持开放态度,只要它们不太复杂)。

我看到了一些关于使用 python multiprocessing 的共享内存方法的问题,例如

import numpy as np
import multiprocessing as mp

unsharedData = np.zeros((10,))
sharedData = mp.Array('d', unsharedData)
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常。但是,我还没有看到使用多维数组完成此操作的示例。

我试过只是将多维数组粘贴到mp.Array其中给我TypeError: only size-1 arrays can be converted to Python scalars.

unsharedData2 = np.zeros((10,10))
sharedData2 = mp.Array('d', unsharedData2)## Gives TypeError
Run Code Online (Sandbox Code Playgroud)

我可以展平阵列,但如果可以避免,我宁愿不这样做。

是否有一些技巧可以让多处理数组处理多维数据?

python numpy python-multiprocessing

11
推荐指数
1
解决办法
936
查看次数

加载在python中分析7.5格式的图像

我正在做一些工作,我必须以一种称为Analyze 7.5文件格式的格式加载操纵CT图像.

这种操作的一部分 - 大型图像绝对老化 - 将原始二进制数据加载到numpy数组并将其重新整形为正确的尺寸.这是一个例子:

headshape = (512,512,245) # The shape the image should be
headdata = np.fromfile("Analyze_CT_Head.img", dtype=np.int16) # loads the image as a flat array, 64225280 long. For testing, a large array of random numbers would do

head_shaped = np.zeros(shape=headshape) # Array to hold the reshaped data

# This set of loops is the problem
for ux in range(0, headshape[0]):
    for uy in range(0, headshape[1]):
        for uz in range(0, headshape[2]):
            head_shaped[ux][uy][uz] = headdata[ux + …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy image

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

CPU内部并行化

我一直在玩弄Xorshift*随机数生成器,我碰上了这种探索的性质.从该网站引用(强调我的):

xorshift64*生成器如何比xorshift1024*生成器慢?

依赖.xorshift64*生成器的三个xor/shift必须按顺序执行,因为每个xor/shift取决于前一个的结果.在xorshift1024*生成器中,两个xor/shift完全独立,可以由CPU内部并行化.我还怀疑较大的状态空间使CPU可以执行更积极的推测性执行(实际上,xorshift128*生成器比xorshift1024*生成器慢).

CPU语句内部的并行化意味着什么?我认为它意味着CPU将使用向量指令同时执行两个xor/shift,但我无法在编译器的汇编输出中看到这一点的证据.这是一个深度CPU流水线的事情吗?或者我应该能够看到生产的汇编程序中发生了什么?

c c++ performance prng

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

在基于范围的for循环中设置矢量元素

在分配给动态分配的元素时,我遇到了我认为基于c ++ 11基于范围的for循环的奇怪行为 std::vector.我有以下代码:

int arraySize = 1000;
std::string fname = "aFileWithLoadsOfNumbers.bin";
CTdata = new std::vector<short int>(arraySize, 0);
std::ifstream dataInput(fname.c_str(), std::ios::binary);
if(dataInput.is_open()
{
    std::cout << "File opened sucessfully" << std::endl;
    for(auto n: *CTdata)
    {
        dataInput.read(reinterpret_cast<char*>(&n), sizeof(short int));
        // If I do "cout << n << endl;" here, I get sensible results   
    }
    // However, if I do something like "cout << CTdata->at(500) << endl;" here, I get 0
}
else
{
    std::cerr << "Failed to open file." << std::endl; …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

/tmp 中的 Docker 绑定挂载目录不起作用

我正在尝试将 /tmp 中的目录挂载到容器中的目录,即 /test。为此,我运行了:

docker run --rm -it -v /tmp/tmpl42ydir5/:/test alpine:latest ls /test

我希望在执行此操作时看到一些文件,但实际上什么也没有看到。

我尝试将文件夹移动到我的主目录中并再次运行:

docker run --rm -it -v /home/theolodus/tmpl42ydir5/:/test alpine:latest ls /test

此时我看到了预期的输出。这让我觉得我配置了一些错误和/或权限困扰了我。我是否错过了安装 docker 的步骤?我是通过 完成的sudo snap install docker,然后配置 docker,通过将自己添加到 docker 组来让我以非 root 身份运行。以 root 身份运行没有帮助...

主机是Ubuntu 20.04,docker版本是19.03.11

ubuntu docker

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

标签 统计

c++ ×3

c++11 ×2

docker ×2

numpy ×2

python ×2

arrays ×1

c ×1

image ×1

openmp ×1

performance ×1

prng ×1

python-multiprocessing ×1

random ×1

ubuntu ×1