Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 使用树莓皮4作为数字运算的簇?_Matlab_Parallel Processing_Raspberry Pi_Cluster Computing_Cpu Architecture - Fatal编程技术网

Matlab 使用树莓皮4作为数字运算的簇?

Matlab 使用树莓皮4作为数字运算的簇?,matlab,parallel-processing,raspberry-pi,cluster-computing,cpu-architecture,Matlab,Parallel Processing,Raspberry Pi,Cluster Computing,Cpu Architecture,因此,我目前正在MATLAB中开发一种算法,该算法计算成本高,但对并行处理友好。考虑到这一点,我一直在使用并行处理库,但我仍然没有达到我的计算时间目标 我目前正在英特尔i7 8086k CPU 6核上运行我的算法,12逻辑,@4.00GHz,turbo为5GHz 以下是我的问题: 如果我要购买10个raspberry pi 4 SBCs 4 cores@1.5GHz,我可以使用我的主桌面作为主机,使用PIs作为客户端吗?让我们假设我的算法迁移到C++,现在运行在Ubuntu中。 1a。如果我要完

因此,我目前正在MATLAB中开发一种算法,该算法计算成本高,但对并行处理友好。考虑到这一点,我一直在使用并行处理库,但我仍然没有达到我的计算时间目标

我目前正在英特尔i7 8086k CPU 6核上运行我的算法,12逻辑,@4.00GHz,turbo为5GHz

以下是我的问题:

如果我要购买10个raspberry pi 4 SBCs 4 cores@1.5GHz,我可以使用我的主桌面作为主机,使用PIs作为客户端吗?让我们假设我的算法迁移到C++,现在运行在Ubuntu中。 1a。如果我要完成问题1中的构建,花费约500美元的计算是否会有重大升级

1b。如果我不能使用我的桌面作为主机,我相信这不应该是一个问题,我需要多少树莓般的PI来等同于我当前的CPU,或者我需要多少才能使在PI集群上工作对我的计算机有利

是否可以在主机上运行Windows,在客户端上运行linux,以便我继续使用MATLAB?
感谢您的帮助,欢迎您提供任何其他建议和建议

您的算法是否会对原始FMA/FLOPS吞吐量造成瓶颈?如果是这样的话,那么一组脆弱的ARM内核就太麻烦了。如果你能便宜地找到一台二手的Zen2机器,或者Haswell或Broadwell,我希望它会很好。您必须查看内核计数、时钟和触发器/$。在内存带宽较低的旧系统上,问题是否仍然会成为内存瓶颈

如果因内存带宽或延迟而导致缓存未命中(例如缓存不友好的数据布局)出现瓶颈,则可能会从拥有更多更弱的CPU(每个CPU都有自己的内存控制器和缓存)中获益,即使这些缓存比您的Intel更小

Matlab是否使用您的GPU,例如通过OpenCL?您当前的CPU从IA内核获得的峰值双倍FP64吞吐量是96千兆次,但其集成GPU是。或者对于单精度,460.8千兆次GPU与x86内核的192千兆次GPU相比。同样,理论上的最大吞吐量,在CPU上每个核心每个时钟周期运行2x 256位SIMD FMA指令

升级到强大的GPU可能比RPi4集群更有效。e、 g.表示,2017年每单精度GFLOP的成本约为5美分,为廉价CPU增加了大GPU。或每双精度GFLOP 79美分

如果您的问题是GPU友好的,但Matlab没有使用您的GPU,请调查一下。也许MATLAB有选项,或者你可以使用C++的OpenCL。 花费约500美元的计算会有重大升级吗

RPi4型号B。CPU正在运行

他们的缓存层次结构每个核心32 KB数据+48 KB指令一级缓存。1MB共享二级缓存。这比4GHz i7要弱,每个内核有32k L1d+256k二级专用,还有一个共享的12MB三级缓存。但更快的内核在等待缓存丢失的绝对时间内浪费更多的周期,ARM芯片以竞争对手的DDR4-2400运行其DRAM

RPi CPU不是FP电源。在原始数据上有很大的差距,但是有了足够的原始数据,吞吐量就增加了

显示Cortex-A72的FPU吞吐量峰值为每核每周期2次双触发器,相比之下,自Haswell以来Intel的吞吐量为16次,自Zen2以来AMD的吞吐量为16次

降低到单精度浮点将x86提高2倍,但将A72提高4倍。显然,他们的SIMD单元对于FP64指令的吞吐量较低,每个SIMD向量的工作量只有一半。其他一些手臂核心的速度并不特别慢,只是预期的2:1,比如Cortex-A57和A76

但所有这些都是峰值吞吐量的下降;要接近真实代码中的情况,只有使用具有良好计算强度的优化代码才能实现。每次将数据加载到缓存和/或寄存器时,都需要大量的工作。e、 g.密集矩阵乘法是一个经典的例子:在^3 FPU上对^2数据进行处理,从而使缓存阻塞成为可能。或者Prime95是另一个例子

尽管如此,我们还是进行了粗略的计算,这是慷慨的,并假设咖啡湖持续使用非涡轮时钟。所有6个内核在每个时钟上忙于运行2x 256 Abit FMA指令,这会产生大量的热量。这正是Prime95所做的,因此,如果您的代码有那么高的效率,那么就可以期望达到这样的功耗水平

6*4GHz*4个元件/vec*2个vec/循环=48G FMA/秒=96 GFLOP/秒 4*1.5GHz*2 DP触发器/时钟=每RPi 12千兆次/秒。 有了5倍的RPi系统,在现有的96GFLOP基础上增加了60GFLOP

以低于现有FP总吞吐量的成本管理5个RPi系统听起来不值得费心。但是,如果您的问题具有正确的并行性,那么GPU可以更高效地运行它。与2017年高端视频每60gflop约50美元相比,500美元的60gflop并不划算 卡片

RPi中的GPU可能有一些计算能力,但如果您的代码是CPU友好的,那么与将一个500美元的离散GPU插入现有机器相比,几乎肯定不值得

或者,您的问题可能不会随着理论上的最大触发器而扩展,而是可能会随着缓存带宽或其他因素而扩展

是否可以在主机上运行Windows,在客户端上运行linux,以便我继续使用MATLAB


零线索;我只考虑在这些CPU上运行高效机器代码的理论最佳情况。

您的算法是否会在原始FMA/FLOPS吞吐量上出现瓶颈?如果是这样的话,那么一组脆弱的ARM内核就太麻烦了。如果你能便宜地找到一台二手的Zen2机器,或者Haswell或Broadwell,我希望它会很好。您必须查看内核计数、时钟和触发器/$。在内存带宽较低的旧系统上,问题是否仍然会成为内存瓶颈

如果因内存带宽或延迟而导致缓存未命中(例如缓存不友好的数据布局)出现瓶颈,则可能会从拥有更多更弱的CPU(每个CPU都有自己的内存控制器和缓存)中获益,即使这些缓存比您的Intel更小

Matlab是否使用您的GPU,例如通过OpenCL?您当前的CPU从IA内核获得的峰值双倍FP64吞吐量是96千兆次,但其集成GPU是。或者对于单精度,460.8千兆次GPU与x86内核的192千兆次GPU相比。同样,理论上的最大吞吐量,在CPU上每个核心每个时钟周期运行2x 256位SIMD FMA指令

升级到强大的GPU可能比RPi4集群更有效。e、 g.表示,2017年每单精度GFLOP的成本约为5美分,为廉价CPU增加了大GPU。或每双精度GFLOP 79美分

如果您的问题是GPU友好的,但Matlab没有使用您的GPU,请调查一下。也许MATLAB有选项,或者你可以使用C++的OpenCL。 花费约500美元的计算会有重大升级吗

RPi4型号B。CPU正在运行

他们的缓存层次结构每个核心32 KB数据+48 KB指令一级缓存。1MB共享二级缓存。这比4GHz i7要弱,每个内核有32k L1d+256k二级专用,还有一个共享的12MB三级缓存。但更快的内核在等待缓存丢失的绝对时间内浪费更多的周期,ARM芯片以竞争对手的DDR4-2400运行其DRAM

RPi CPU不是FP电源。在原始数据上有很大的差距,但是有了足够的原始数据,吞吐量就增加了

显示Cortex-A72的FPU吞吐量峰值为每核每周期2次双触发器,相比之下,自Haswell以来Intel的吞吐量为16次,自Zen2以来AMD的吞吐量为16次

降低到单精度浮点将x86提高2倍,但将A72提高4倍。显然,他们的SIMD单元对于FP64指令的吞吐量较低,每个SIMD向量的工作量只有一半。其他一些手臂核心的速度并不特别慢,只是预期的2:1,比如Cortex-A57和A76

但所有这些都是峰值吞吐量的下降;要接近真实代码中的情况,只有使用具有良好计算强度的优化代码才能实现。每次将数据加载到缓存和/或寄存器时,都需要大量的工作。e、 g.密集矩阵乘法是一个经典的例子:在^3 FPU上对^2数据进行处理,从而使缓存阻塞成为可能。或者Prime95是另一个例子

尽管如此,我们还是进行了粗略的计算,这是慷慨的,并假设咖啡湖持续使用非涡轮时钟。所有6个内核在每个时钟上忙于运行2x 256 Abit FMA指令,这会产生大量的热量。这正是Prime95所做的,因此,如果您的代码有那么高的效率,那么就可以期望达到这样的功耗水平

6*4GHz*4个元件/vec*2个vec/循环=48G FMA/秒=96 GFLOP/秒 4*1.5GHz*2 DP触发器/时钟=每RPi 12千兆次/秒。 有了5倍的RPi系统,在现有的96GFLOP基础上增加了60GFLOP

以低于现有FP总吞吐量的成本管理5个RPi系统听起来不值得费心。但是,如果您的问题具有正确的并行性,那么GPU可以更高效地运行它。与2017年高端视频卡每60gflop约50美元相比,500美元的60gflop并不划算

RPi中的GPU可能有一些计算能力,但如果您的代码是CPU友好的,那么与将一个500美元的离散GPU插入现有机器相比,几乎肯定不值得

或者,您的问题可能不会随着理论上的最大触发器而扩展,而是可能会随着缓存带宽或其他因素而扩展

是否可以在主机上运行Windows,在客户端上运行linux,以便我继续使用MATLAB


零线索;我只考虑在这些CPU上运行高效机器代码的理论最佳情况。

这几乎不可能说,IMHO。这在很大程度上取决于您的算法与RasPi指令集和
缓存,取决于需要多少进程间通信,RAM和数据集有多大……几乎不可能说,IMHO。这在很大程度上取决于您的算法与RasPi指令集和缓存的匹配程度,取决于需要多少进程间通信,取决于您的RAM和数据集有多大……太棒了,这是非常有用的。我正在研究GPU处理,因为我已经有了1080ti。但由于我对GPU和集群这两个选项不是很熟悉,所以我想进一步了解集群。说到这里,我将重写我的GPU算法,看看有多少函数能在那里正常工作。太棒了,这是非常有用的。我正在研究GPU处理,因为我已经有了1080ti。但由于我对GPU和集群这两个选项不是很熟悉,所以我想进一步了解集群。说到这里,我将重写我的GPU算法,看看有多少函数能在那里正常工作。