NanoPi Fire3 96核心单板超级计算机

以不到100英镑(550英镑,包括十二个Fire3)的价格创建具有12个NanoPi-Fire3节点的高性能集群

去年,我在Raspberry Pi 3上的最后一个集群引起了公众的极大兴趣,因此我尝试在市场上其他出色的单板计算机上进行类似的项目。 来自中国的FriendlyARM非常慷慨地向我发送了12块最新的64位ARM NanoPi-Fire3板 ,每个均具有核ARM A53 SoC,工作于1.4 GHz,带有千兆以太网。





簇的尺寸为146.4(w)×151(h)×216 mm(d),重量为1.67 kg。

要在集群中运行的软件?


或... 为什么需要它?

群集通常用于资源密集型任务(医学研究,天气建模,AI /深度学习,加密货币挖掘)和/或高可用性服务(在硬件故障的情况下使用冗余节点)。 从现代超级计算机的角度来看,这个集群当然很慢,但是小型便携式系统非常适合培训或开发分布式软件,然后可以将其转移到功能更强大的系统上。

我计划写几篇文章来评估该集群的挖掘和深度学习。

Docker SwarmKubernetes似乎是管理集群的绝佳选择,尽管我还没有尝试过。

NanoPi-Fire3与Raspberry Pi 3


与树莓派3相比,NanoPi-Fire3在性能和功能方面都更先进,并且外形尺寸更小,同时价格大致相同:

NanoPi-Fire3Raspberry Pi 3模型B
片上系统八核ARM A53
S5P6818 @ 1.4 GHz
四核ARM A53
BCM2837 @ 1.2 GHz
记忆1 GB DDR31 GB DDR2
显卡马里400 MP4
500兆赫
博通VideoCore IV
400兆赫
联播网1000 Mbps的100 Mbps的
无线上网没有啦802.11bgn
蓝牙功能没有啦4.1 + BLE
贮藏MicroSD卡MicroSD卡
USB接口1个连接器
1个microUSB
4个连接器
录影带微型HDMI 1.4a,RGB-LCDHDMI,DSI
摄像头界面副总裁CSI
音讯没有啦3.5毫米
尺码75×40毫米85×56毫米
营养学1.2→3.6瓦
最大2A,MicroUSB
1.2→2.1瓦
最大2.5A,MicroUSB
放行2017年第四季度2016年第一季度
价格(英国)£34.30 1£33.59
1 Fire3 $ 35 + $ 5运费+ 20%增值税+ 0%进口税=£34.30

基准测试


中央处理器


大多数现代计算机都具有能够同时执行两个或多个任务的多核处理器。 它可以是不同的应用程序(例如,处理三个网页的Web服务器和一个数据库),也可以是一个任务,该任务被划分为多个线程以实现最大速度(例如,光线跟踪器,文件压缩等)。 hpcc软件包中的此测试使用所有CPU内核,有效地测试了浮点操作中的整体处理器性能。


Linpack TPP v1.4.1(线性方程式的求解器)。 MFLOPS的数量(每秒数百万个浮点操作)

Fire3主板具有两倍的内核,更高的时钟频率和更快的内存:因此,其结果是Pi 3的6.6倍

60,000 MFLOPS-按当前的性能标准来说还不是很多,但是早在2000年,这个由12个Fire3组成的集群将被列入世界上最快的250个超级计算机中(!)。 五个Fire3集群的运行速度比相同大小的Pi 3集群快8.2倍,这可以通过额外的CPU内核,更快的内存和更快的节点间交换数据网络来解释。

16核Cray C90超级计算机于1992年发布,产量为10,780 MFLOPS,但耗资3050万美元,重10.9吨,需要495 kW的功率!

设置集群以获得最大结果是一门完整的技艺:优化编译器,设置数学库等。 但是我们使用默认配置从Ubuntu 16.04.4中的标准hpcc软件包中获取了估算值。

基准测试的Shell命令
 # Setup on each node apt install hpcc swapoff -a adduser mpiuser # Controller node setup su - mpiuser cp /usr/share/doc/hpcc/examples/_hpccinf.txt hpccinf.txt # Edit default hpccinf.txt so that NB=80, N=18560, P=8 and Q=12 (P x Q = 96 cores) sed -i "8s/.*/80\tNBs/; 6s/.*/18560\tNs/; 11s/.*/8\tPs/; 12s/.*/12\tQs/" hpccinf.txt # Generate & copy SSH keys across cluster, so controller can run benchmark on all nodes # (use the hostnames or IP addresses for your nodes) ssh-keygen -t rsa nodes=('controller' 'b1' 'b2' 'b3' 'b4' 'b5' 't1' 't2' 't3' 't4' 't5' 't6') for i in ${nodes[@]} do ssh-copy-id "fire3-$i" echo "fire3-$i slots=8" >> mycluster done mpirun -hostfile mycluster --mca plm_rsh_no_tree_spawn 1 hpcc grep -F -e HPL_Tflops -e PTRANS_GBs -e MPIRandomAccess_GUPs -e MPIFFT_Gflops -e StarSTREAM_Triad -e StarDGEMM_Gflops -e CommWorldProcs -e RandomlyOrderedRingBandwidth_GBytes -e RandomlyOrderedRingLatency_usec hpccoutf.txt 

图形


Fire3和Pi 3都使用四核GPU并行处理计算机图形中的大量数据。 最近,它们还被用于专门的计算,例如加密货币挖掘。


glmark2-es2 2014.03(OpenGL ES 2.0)。 评分越高越好

该测试中的Fire3板比Pi 3快7.5倍 。群集结果仅通过节点数进行缩放。

与CPU一样,有许多选项可用于通过使用不同的驱动程序进行编译等来设置图形。 在此测试中,我们仅使用默认配置在Ubuntu 16.04.4上运行了标准glmark2-es2二进制文件。 它使用以下命令启动:

 sudo apt install glmark2-es2 glmark2-es2 --off-screen 

Pi 3的过时OpenGL渲染功能很弱,但是如果通过rpi-config切换到实验性的Mesa rpi-config渲染,您将获得类似于Fire3的性能。

大多数单板ARM具有相对较旧的GPU,与最新的旗舰智能手机相比,它们的性能非常适中,更不用说具有昂贵的高端图形卡和巨大电源的台式机了。 Fire3中的Mali-400 MP4 GPU可以追溯到2008年,Pi 3中的Broadcom VideoCore-IV可以追溯到2010年。 最近还有几种单板设备 ,例如PINE64的RockPro64,具有更强大和更新的GPU(Mali-T860 MP4),而三星Galaxy S9具有最新一代的Mali-G72 MP18。

联播网


这些测试验证了iPerf中连接到以太网100 / 1000Mpbs交换机的两块板之间的实际数据传输速度。

iPerf v2.0.5(TCP,1000Mbps以太网,卡之间),Mbps

使用默认设置,Fire3上的1000 Mbps接口与Pi 3上的100 Mbps接口相比显示出8.5倍的巨大速度差异。

基准测试的Shell命令
 sudo apt install iperf # On node1 iperf -s -V # On node2 iperf -c node1 -i 1 -t 20 -V 

如果要提高Raspberry Pi(比Pi 3型号B +早)的网络性能,可以安装一个千兆位USB以太网适配器,而不是标准的内置接口。 它将使速度提高2.8倍 ,但是由于USB2的限制,它仍然比实际的1000 Mbps接口慢得多。 该网络接口已集成在最新的Pi 3 B +模型中。

每瓦群集性能


为了评估每瓦性能,我将MFLOPS中的Linpack测试结果提高了,再除以功耗。 此度量标准通常用于对计算机系统进行排名


MFLOPS /瓦

五节点Fire3群集的能源效率是相同大小的Pi 3群集的5.8倍 ,尽管在100%负载下它消耗的功率更多。

在整个集群 (包括网络交换机,风扇和电源)的100%负载下测量了功率。 WiFi,蓝牙,HDMI等更多设置保留为默认设置。

上面提到的Cray C90超级计算机在1992年每瓦仅输出0.02 MFLOPS。

3D人体设计


我在免费版本的SketchUp中更改了Raspberry Pi集群的原始设计,草绘了粗糙的3D NanoPi-Fire3模板,网络交换机,连接器等。 我决定在模型中不包括通风槽/格栅。 机箱的大小与五个节点的集群完全相同:任务是容纳12个板,风扇和以太网交换机以及所有电缆的数量是原来的两倍!





下载适用于SketchUp 2013的SKP文件

激光切割


我使用免费的Inkscape程序:它准备将2D模型加载到激光切割机中。 不同的颜色对应不同级别的激光功率/速度。 首先,沿着绿线切割轮廓,并带有用于端口,螺栓和通风的孔。 其他的凹口用粉红色表示,以便于卸下易碎的零件。 然后蚀刻橙色文本和线条,并在面板的最末端沿蓝色轮廓切割。



您可以下载用于在600×400×3 mm的一张纸上切割的文件,尽管我本人使用透明或黑色纸的不同面板:


可选的一小部分是用于(非常明亮!)LED面板的扩散器,可以将其切成亚光的亚克力,或者以三磅的价格购买官方的Pimoroni扩散器。

有关激光切割和无螺纹外壳组装系统的更多信息,请参阅第一篇文章

与Pi 3集群相比的设计更改


尽管表壳尺寸完全相同,但我进行了许多更改和改进:

  • 水平安装导轨的设计得以保留,但在Fire3中有M3孔,与Pi中的M2.5相比,此孔更容易找到零件。 而且,孔的位置彼此靠近,因为整体电路板尺寸比Pi小。 将塑料螺母拧紧到水平导轨上有点乏味,我是否想在3D打印机上打印任何塑料夹以沿每个导轨固定电路板,或制作紧的弹性垫圈?
  • 外部电源,而不是内部USB集线器 :我在机箱外部用无风扇交流电源替换了内部USB电源。 这样可以释放内部空间(用于更多Fire3板和两个风扇),并应有助于散热。 每个Fire3最多可拉2A,但实际上,群集的拉力要小得多,而无需考虑USB和GPIO上悬挂的其他外围设备。
  • 用两条microUSB链代替12条单独的电缆 :没有合适的电缆出售,所以我使用更短和更粗的电线(11A额定值)将自己的电缆制成“菊花链”,并焊接了12个microUSB连接器:结果,电缆机箱内部空间很小... 更多
  • 用两个风扇代替一个风扇 :我确定功能更强大的Fire3主板需要更多的主动冷却功能,因此我在机箱上放置了两个92 mm超静音风扇:后风扇将冷空气吸入机箱,而前风扇将热空气吹出。
  • Gelid Solutions Silent 9风扇代替了Nanoxia Deep Silence :我对Nanoxia风扇的性能(及其出色的技术支持)感到非常满意,但我想尝试一种更便宜的选择。 胶状橡胶垫圈比Nanoxia厚,所以我将外壳上的安装孔直径增加了0.5 mm。
  • 直接为风扇提供5V电源,而不是通过GPIO提供5V :在以前的集群中,风扇由其中一块板的GPIO输出供电。 但是考虑到在12V上安装两个风扇,我将升压转换器与机箱的主电源直接相连。
  • 几个通风孔,而不是大量通风孔 :我没有在整个机箱上切割数十个通风孔(这需要时间),而是仅在风扇对面的前后面板上切割孔。 也许这可以优化通过外壳的气流?
  • 机箱上的USB连接器 :这两个集成的USB连接器在我的原始群集中工作正常,但由于长电缆无法正常弯曲,所以我不喜欢它们。 因此,现在我取了两个单独的USB端口,它们的短电缆和连接器呈一定角度,从而在机箱内留出更多空间。
  • 没有用于连接USB集线器的架子 :将电源移至外部简化了外壳的设计,该外壳现在可以从一张600×400 mm的丙烯酸板上切割下来。 卸下架子会降低外壳的刚度,但是如果将水平安装导轨拧到侧板上,则刚度是正常的。
  • 扁平LAN电缆,而不是圆形LAN电缆 :我喜欢RPi3项目提供的多色网络电缆,但是将它们放在机箱内非常困难。 扁平电缆的弯曲容易得多,在如此紧凑的电路板包装中,这一点尤为重要。 最初,我尝试使用25厘米长的电缆,但结果却太长了,但15厘米长的电缆在机箱内留有更多的自由空间。
  • 蓝色的网络电缆,而不是无聊的灰色电缆 :蓝色的确为灰色结构着色...再加上FriendlyARM徽标为蓝色和绿色。
  • 千兆交换机,而不是10千兆交换机 :Fire3具有1000 Mbps网络端口(比Pi快十倍),因此很明显,交换机必须至少为1000 Mbps。 10 GB的交换机将完全消除此地方的瓶颈:因此,十个或更多的Fire3将能够全速与外部网络交换数据。 但是,这种开关仍然很昂贵(200英镑起),而且体积太大。 NETGEAR GS110MX交换机看起来很有希望。
  • 板固定器由4毫米(而不是6毫米)代替 :放下配电盘,我们留出了更多用于布线和换气的空间。
  • 用Micro HDMI代替HDMI :Fire3板上有Micro HDMI接口,所以我用了最短的Micro HDMI→HDMI电缆(50厘米)。 另一个选择是较短的电缆,带有单独的HDMI→微型HDMI适配器,但它体积大并且会阻塞一个LAN端口。
  • 黑色有机玻璃面板而不是透明面板 :“隐藏”两个风扇,但将所有电子设备放在侧面和俯视图中。 黑色的前面板也引起了Unicorn LED面板的注意。
  • Unicorn pHAT LED面板而不是板上的简单LED :群集中有太多节点,因此有必要在机箱的前面板上放置可视状态监控器,以显示每个节点的CPU速度,温度,磁盘和网络活动... 更多

您可以在原始Pi集群中阅读有关某些设计决策的更多信息。

MQTT的服务器状态指示器


我选择了Pimoroni出色的Unicorn pHAT 32x RGB LED面板来创建集群的彩色“状态显示”。 它显示每个节点的处理器负载,温度,磁盘和网络活动。 这些低成本板通常直接连接到Raspberry Pi引脚,但是您需要进行一些修补才能将它们连接到另一块板上。 杰里米·加夫(Jeremy Garff)的rpi_ws281x库使用了Raspberry Pi特有的非常智能的低级PWM / DMA代码,因此我将库更改为使用单个SPI引脚来控制LED,该LED几乎可以在任何硬件上工作。



Unicorn pHAT仅通过三根线连接到板上:+ 5V,GND和SPI0 MOSI(引脚19)。 在下一篇文章中,我将详细描述这一切的工作方式。 LED非常亮,因此在扩散器后面看起来更好,扩散器通过两个或四个M2.5螺钉固定在外壳的外部。 您可以用哑光丙烯酸切割自己的扩散器,也可以花3英镑购买带有螺丝的Pimoroni模型。

控制器节点上的群集状态由Mosquitto MQTT(消息队列遥测传输)轻量级代理(服务器)控制。 每个节点每秒告诉中介当前的处理器速度,温度,网络活动等。

功率,温度和冷却


空载情况下,整个系统由十二个Fire3,两个网络交换机和两个7V风扇组成,仅消耗24瓦功率,满载时仅为55瓦功率。

您需要散热器吗? Fire3 SoC具有两倍于内核的数量,产生的热量比Pi3多得多,因此拥有散热器非常重要。 幸运的是,FriendlyARM提供了一个带有导热油脂的大型散热器,该散热器牢固地安装在Fire3板上。 它比我在市场上看到的其他单板播放器的散热器大得多,它可以完美地降低石头的温度,但风扇仍然不会受伤。

电源适配器最大可提供75 W(在Fire3上为1.1 A),因此外部USB设备(例如硬盘驱动器)很可能需要单独的电源。 我们测量温度:

 cat /sys/devices/virtual/thermal/thermal_zone0/temp 

我们看到,通过两个12V风扇的冷却,无负载的处理器可加热到39°C。

在风扇负载为100%的情况下,温度达到稳定的58°C:

 sysbench --test=cpu --cpu-max-prime=20000000 --num-threads=8 run & 

如果没有风扇,温度会自动降低时钟频率,从而迅速达到80°C,以避免进一步过热。 处理器可以在此温度下长时间运行,没有任何问题,但是您无法获得最佳性能。

NanoPi Fire2s和Fire2As型号的外壳设计应该完全相同,它们的发热量不如Fire3高,因此一个风扇就足够了。 要冷却一个Fire3,合适的风扇可能要小得多,也许是40-60毫米。

Fire3可以以超低功耗(约5μA)进入睡眠状态,这对于单板计算机而言并不常见,这暗示了有必要降低睡眠状态并将单个节点从睡眠状态中移除的想法。 不幸的是,不支持以太网局域网唤醒,而只有不灵活的“ X分钟后唤醒”设置。 但是,这些板有一个 PWR接头连接器。 也许可以将其连接以从控制器上的GPIO引脚远程唤醒?

静音散热


为了冷却集群,我在机箱中安装了两个92毫米风扇。 我通过对Quietpc.com的评分搜索最安静的散热器,然后选择Gelid Silent 9,价格为5.40英镑。

要听到至少5V风扇的最小噪音,您需要将耳朵靠近5-7厘米,套件中的橡胶垫可以使外壳免受振动。 但是,在安静的房间中,在12V电压下,风扇的声音非常小(20dBA)。 因此,我一直在寻找一种电压,该电压可以提供足够的散热,但保持安静。 使用升压转换器,我改变了风扇的速度,尝试在5V至12V之间选择电压。

粉丝们散热器?空载100%负载性能表现
后12V,1500 rpm是的42°摄氏度66°摄氏度好啦
后9V ,? 转数是的44°摄氏度71°摄氏度好啦
后7V,? 转数是的46°摄氏度75°摄氏度降低频率
均为12V,1500 rpm是的39°摄氏度58°摄氏度好啦
都是7V ,? 转数是的40度65°摄氏度好啦
都是5V吗? 转数是的46°摄氏度77°摄氏度降低频率
(这是不同节点的平均温度,即平均为71°C,实际上,两块板接近紧急频率降低)。

我很惊讶第二个风扇并没有特别影响结果,最后仍然需要在9V的一个风扇或7V的两个风扇之间进行选择,而第二个选项则更凉爽,更安静。 我认为第二个风扇在更大的外壳和/或更复杂的气流路径中更重要?

电源线:五件式佐贺


最困难的事情是找到一个好的解决方案,为12个节点,两个以太网交换机和两个风扇供电。 我试图避免大量焊接和自制电缆...

  1. Fire3通过像Pi一样的microUSB供电,但是我没有找到12端口15A USB集线器。 我当时正在考虑一个带有六个双面microUSB分配器的6端口集线器,或者甚至是两个单独的6端口USB集线器。 但是第一个选项无法为12个节点提供足够的电源,第二个选项占用了机箱内部太多的空间。
  2. 在使用外部“砖”作为交流电源的情况下,我尝试了一些标准的8x和6x分离器。 这些电缆是专为带有倾斜的microUSB→DC连接器的监控摄像机而设计的,但是它们占用的空间很大(不利于空气流通),并且无法通过电流进行额定,这会导致每个Fire3板上的电压降。
  3. 如果您使用钢制底盘导轨作为5V + GND的导体? , : 0,5 . , , ..
  4. ? - 12 microUSB? Fire3 5V+GND, UART. DuPont microUSB. , , … .
  5. 最后,我制作了一条自制的电源线链(菊花链),取一根厚度为0.5毫米(11A,长度为6节)的两芯电缆,并将其焊接到有角的microUSB连接器上。事实证明,电缆非常细小,并且电缆在机壳内部的空间很小,从而提供了出色的气流。两个电源电路通过单独的插座通过单独的插座离开外壳,以限制通过一个DC连接器的最大电流。这也意味着您只能根据需要包含集群的上半部分或下半部分。

两个以太网交换机也都由5V供电,焊接了圆形DC连接器。

建立一个Fire3集群


构建过程类似于NanoPC-T3上40核ARM群集,仅具有更多节点,一个额外的网络交换机和一个风扇。Fire3板沿着带有M3螺纹的导轨放置在20毫米的距离处,每个板都用八个螺母固定。为了美观,我将5V至12V升压转换器板粘贴到了机箱的背面,并添加了引脚以轻松地打开和关闭风扇。某些电缆通过小束线带进行布线和固定。显示Pimoroni LED通过三个销GPIO ...连接到控制器板的详细信息













材料清单


大多数物品都来自速卖通或eBay上的不同卖家,这大大增加了邮费。如果对集群有足够的需求,则批量购买零件会便宜一些。

Edimax ES-5800G V3 Gigabit Ethernet (2 .)£19,96
15 Cat6 LAN (12 .)£6,79
M3 12 (8 10 )£1,45
M3 4 (8 50 .)£0,99
5,5/2,1 DC (2 5 .)£1,49
1 +n/a
1 2- 0,5 (11A) DC£0,99
microUSB (12 20 .)£1,63
5,5/2,1mm DC (2 10 .)£0,65
10A (4 12)£1,29
100 (5 @ 20 ) , 5,5/2,1 + UK£13,51
RJ45 «-» (2 .)£1,74
M3 8 (4 5)£1,25
M3 150 (8 .)£9,20
M3 (120 150)£1,73
Micro HDMI «» HDMI «» 50£2,19
USB“母亲”到“父亲”面板安装角25厘米(2个)£2.38
3毫米透明有机玻璃600×400毫米£5.32
5V至12V升压转换器£2.04
激光切割机充电不适用
92毫米Gelid Silent 9风扇(2个)£11.65
聚氨酯橡胶脚(10之4)£1.75
独角兽pHAT 32x RGB LED面板£10.00
黑色螺钉M2.5 10毫米(2-4之20)£1.02
小型束线带(10个)不适用
总材料£97.73
NanoPi-Fire3只需$ 35(12个)1£383.38
microSDHC卡SanDisk工业级10 8 GB(12个)£62.16
合计£543.27
1 NanoPi-Fire3可以免税进口到英国,而从中国发货12块板的成本仅为29美元,但考虑到20%的英国增值税,您将获得383.38英镑。

来自其他单板计算机的集群


到目前为止,我还构建了:

Source: https://habr.com/ru/post/zh-CN429488/


All Articles