小编xiv*_*axy的帖子

将多个文件流式传输到 Python 中的可读对象中

我有一个使用file.read(len)方法处理来自文件的二进制数据的函数。但是,我的文件很大,被切成许多小文件,每个文件 50 MB。是否有一些包装类可以将许多文件馈送到缓冲流中,并提供 read() 方法?

fileinput.FileInput可以做这样的事情,但它只支持逐行读取(readline()没有参数的方法)并且没有read(len)指定要读取的字节数。

python file-io python-2.7

7
推荐指数
3
解决办法
4886
查看次数

在 C++ 中连续流式传输多个文件

我的问题与此类似,但我没有找到任何有关此问题的 C++ 参考资料。

有一个要读取和处理的大文件列表。创建一个输入流的最佳方法是什么,该输入流可以逐个从文件中获取数据,并在上一个文件结束时自动打开下一个文件?该流将被提供给处理函数,该处理函数跨文件边界顺序读取可变大小的块。

c++ c++11

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

在 Julia 中使用线程进行矩阵乘法的奇怪行为

我试图在Threads.@threads for循环中做一些线性代数,它返回一些奇怪的结果。似乎矩阵在循环中没有正确相乘。在线程 for 循环中执行是否安全?

下面是生成矩阵TxR表的最小工作示例NxN。对于每次R迭代,第 (t+1) 矩阵是第 (t) 矩阵与另一个随机矩阵的乘积。乘法由不同的线程执行,然后由一个线程检查正确性。该函数应该返回一个零矩阵。它这样做是为了N<=3,但是,在 的结果中有几个N>=4

function testMM(T, R, N)
    m1 = zeros(Int64, (T,R,N,N))
    m2 = rand(0:2, (T-1,R,N,N))
    m1[1,:,:,:] = rand(0:1,(R,N,N))
    Threads.@threads for i=1:R
        for t=2:T
            m1[t,i,:,:] = m2[t-1,i,:,:] * m1[t-1,i,:,:]
        end
    end

    odds = zeros(Int64,(T-1,R))
    for i=1:R
        for t=2:T
            if m1[t,i,:,:] != m2[t-1,i,:,:] * m1[t-1,i,:,:]
                odds[t-1,i] = 1
            end
        end
    end
    return odds
end
Run Code Online (Sandbox Code Playgroud)

Threads.nthreads()对我来说是 4。在稳定的 64 位 Julia 0.5.2、0.5.3、0.6.0 上在 Windows …

multithreading julia

5
推荐指数
0
解决办法
299
查看次数

标签 统计

c++ ×1

c++11 ×1

file-io ×1

julia ×1

multithreading ×1

python ×1

python-2.7 ×1