Chia如何实际提高绘图P盘效率,怎么把电脑的资源一点点榨干!

 i9-10850K,10C / 20T,最大持续提升时钟= 4.7 Ghz

64 GB DDR4 3600 RAM,CL18

2x2TB Samsung 980 Pro RAID0 @ PCIe 3.0 x 4(绘图驱动器)

1x1TB WD SN750 @ PCIe 3.0 x 4(分段驱动器)

Ubuntu Server 20.04 LTS

我正在并行运行13个作业。完成大约需要8个小时,因此平均每天大约需要4 TiB。

在进一步介绍之前,我必须指出,对于任何认真的绘图员来说,真正的瓶颈是单核CPU性能,而不是存储性能。追求更好的存储是没有意义的,因为任何能够维持1500MB / s的读写吞吐量就足够了。如果对您来说还不够好,请购买其中两个并运行RAID0。

提高绘图速度的第一个关键是使用LINUX。不要浪费您昂贵的硬件在Windows中运行绘图,这10%的性能损失将很难收回,即使您做的一切正确,您的绘图速度仍然比我们的Linux用户慢10%。

如果您买得起2TB的驱动器,并且碰巧有两个空的M.2 NVMe插槽,则分别购买2个1TB的存储棒,并将其作为RAID0运行。AMD和Intel都支持主板人造RAID,或者您也可以在mduxm的LINUX中实现该功能,mdadm是许多人所信任的强大的软RAID。

获得暂存/缓冲驱动器。它不一定要很大,它可以是您所处的SATA SSD或某些NVMe SSD不能做的绘图驱动器。我为此使用WD SN750。一旦完成,我的地块便可以转储到该驱动器中,并且我的CPU可以在不到1分钟的时间内启动新的地块。CPU时间非常宝贵,您不希望CPU空转是因为绘图仪正在以125MB / s的传输速率将绘图卸载到HDD上。考虑一下,传输大小为101 GiB的地块将花费几乎16分钟的时间!为什么要浪费这16分钟?即使是SATA SSD,也可以极大地缩短整理和传输之间的停机时间。

天色已晚,我们将在明天讨论SMT或超线程。

更正了我说的错别字,我实际上并行绘制了14个,而不是实际绘制的13个。

让我们进一步谈谈这个话题。我要讨论的是SMT /超线程。

随着CPU时钟速度的提高,瓶颈本质上将来自许多其他设备,并且当这种情况发生时,CPU将被迫等待下一组指令。启用SMT后,可以将一个物理核心“拆分”为两个逻辑核心,以减少空闲时间并提高效率,但是两个逻辑核心不等于两个物理核心,这更像是将处理能力提高了30%(乐观地) 。

关于可以并行运行的最大作业数量的快速而肮脏的数学运算是将CPU的物理核心数量增加30%。在上面的示例中,i9 10850K是一个10核CPU,将其增加30%,我得到13,这是我可以作为单线程并行运行的最大作业数。

“您可以”并不意味着“您应该”。还有许多其他因素在起作用。你有足够的内存吗?并行使用13个作业会在高峰使用时吞噬40 GB以上的内存。你有足够的临时空间吗?您的分段驱动器可以跟上吗?等等,最好是分析您自己的吞吐量,尤其是在最后一个阶段,在该阶段结束绘图过程,并将绘图文件传输到目标位置。

最后,每个人都想知道我的打印设置和我的交错排列。完全复制我的设置是不可取的,因为每个人的机器运行都略有不同。我使用Plotman来管理我的交错排列,而Chia绘图参数为r = 6,b = 3600。其他所有内容均为默认设置。

那里有很多工作管理工具,所以我认为我在这里所做的工作可以模仿Plotman之外的其他人。让我们深入了解Plotman设置。

在Plotman中,一项简洁的功能是您可以控制进入阶段1、2、3、4(称为“主要”)和7个子阶段(称为“次要”)的过程。由于阶段2:7是存储和RAM使用量的绝对最大值,因此很直观地说明应如何安排其工作。

——稍后会再详细说明交错和作业安排—–

好的,让我们谈谈交错和调度。这有点复杂,因为我想在阶段1以外的阶段中使用所有13个“核心”,因此需要使用一些技巧。

首先,转到Plotman设置并将最大作业限制设置为13。此类设置共有3种,tmp_dir限制= 13,全局限制= 2(目前)和交错限制= 2。

然后,将主要限制设置为2,将次要限制设置为1(这将限制处于第一阶段的作业)。从r = 6开始,并行执行2个作业,现在您已经用完了13个“核心”中的12个。

下一步很重要,需要密切监视-当您看到先前安排的2个作业进入阶段2时,将Plotman中的全局限制更改为4,以在r = 6中启动另外2个作业,现在您有了2 + 12使用的核心数量超过了我们拥有的核心数量,这是13个,但这是不可避免的。

再次编辑该配置,为其余9个作业设置r = 4,然后一次将全局限制扩展2(现在应该是6),最终达到13,所以当下一阶段开始时,您将得到2 * 4 + 4 =使用12个内核。

这实际上是在预先使用更多的内核,然后在阶段2释放这些内核时,便为CPU提供了更多的绘图作业以充分利用它。最后,您应该在第2阶段及以后的阶段中拥有13个作业,或者在第1阶段中使用4个或更少的内核拥有1个作业,而在第2-4阶段中的其他工作仅使用1个内核。

第一阶段大约需要 大约需要10-12ks,而整个过程需要27-30ks,因此可以在完成一项工作的同时启动两项工作。在三个生成周期之后,您将达到全局极限,其中第一阶段可能有两个作业,而第二阶段2-4中则有11个作业。

这是我的IO和CPU使用率的屏幕截图。

640.png

usr = CPU读/写=临时磁盘IO

编辑:修复了一些语法错误和更好的格式。

编辑:同一个Chia农场主 / u / FJDNMAN 指出,我对Plotman的设置有误解,现已更正。

Ubuntu crontab任务可将文件从暂存驱动器移动到目标驱动器:

$ sudo crontab -e

* * * * * [ $(ls -al #staging_dir | grep plot | wc -l) -gt 0 ] && [ $(ps aux | grep mv | grep -v grep | wc -l) -eq 0 ] && mv #staging_dir_plots #final_dir 将#staging_dir和#final_dir替换为您自己的路径,例如/ mnt / staging和/ mnt / dest 

将#staging_dir_plots替换为#staging_dir / *。plot,例如/mnt/staging/*.plot

可读格式:

[检查是否有绘图文件] && [检查mv命令是否未运行] && [移动文件]

Windows PowerShell脚本,用于将文件从暂存驱动器移动到目标驱动器:

## Powershell file buffering script## needs administrator privileges## v0.5while ($true){   

    $check_interval = 30 # in seconds

    $bfr_folder = 'C:\' # SSD buffer folder

    $farm_folder = 'D:\' # Destination/Farming folder

    $chia_running = ((get-process -Name chia).path | findstr "unpacked").count

    $current_time = (Get-Date -f "HH:mm")

    $current_date_time = (Get-Date -f "MM-dd-HH:mm:ss")

    $count = (Get-ChildItem -Path $bfr_folder -Force | Where-Object {$_.Extension -eq ".plot"}).count

    if ($count -gt 0)

    {

        Write-Host $current_time $count "new plots found. Beginning Transfer"

        robocopy $bfr_folder $farm_folder /MOV *.plot ## change your directories accordingly. FROM -> TO

    }

    else

    {   

        Write-Host $current_date_time":" "There are" $chia_running "Chia plotters running."

        Write-Host $current_date_time":" $count "plot files found."

        [int]$Time = $check_interval

        $Length = $Time / 100

        For ($Time; $Time -gt 0; $Time--) {

        $min = [int](([string]($Time/60)).split('.')[0])

        $text = " " + $min + " minutes " + ($Time % 60) + " seconds left"

        Write-Progress -Activity "No new files... Watiting for..." -Status $Text -PercentComplete ($Time / $Length)

        Start-Sleep 1  ## countdown timer for checking folder activity, default = plot interval, line 31

        }

    }}

用法:打开一个文本编辑器,将其另存为您喜欢的名称。ps1,以管理员权限打开Windows PowerShell,然后运行脚本。不要忘记将策略设置为允许脚本运行。

Chia如何实际提高绘图P盘效率,怎么把电脑的资源一点点榨干!

扫一扫手机访问

Chia如何实际提高绘图P盘效率,怎么把电脑的资源一点点榨干!

发表评论