Plotting on M1 Mac Mini

Hi Folks,

I’ve been trying to get some reasonable performance out of a Mac Mini M1 with 16GB RAM and a Crusial X8 1TB SSD as a temp drive for two days now, but I’m still over 3 hours per plot. Now I’ve added a Samsung MU-PA1T0B/EU Portable SSD T5 1 TB USB 3.1 as a temp 2 drive but I’m still over 3 hours.

I’m a bit surprised because everyone raves about the high speed of the M1 Mac. What am I doing wrong?

$ ./chia_plot -n 8 -r 8 -w -u 256 -t /Volumes/Crucial/ -2 /Volumes/Samsung/ -d /Volumes/WDE_EXFAT/ -c ID -f ID
Crafting plot 2 out of 8
Process ID: -1
Number of Threads: 8
Number of Buckets P1:    2^8 (256)
Number of Buckets P3+P4: 2^8 (256)
Pool Puzzle Hash:  0880xxx
Farmer Public Key: add7xxx
Working Directory:   /Volumes/Crucial/
Working Directory 2: /Volumes/Samsung/
Plot Name: plot-k32-2021-08-17-16-35-8f0xxx
[P1] Table 1 took 105.83 sec
[P1] Table 2 took 1159.74 sec, found 4294940002 matches
[P1] Table 3 took 1209.52 sec, found 4294937436 matches
[P1] Table 4 took 1312.05 sec, found 4295035787 matches
[P1] Table 5 took 1304.39 sec, found 4295054153 matches
[P1] Table 6 took 1261.23 sec, found 4295126575 matches
[P1] Table 7 took 1173.15 sec, found 4295132098 matches
Phase 1 took 7526 sec
[P2] max_table_size = 4295132098
[P2] Table 7 scan took 106.677 sec
[P2] Table 7 rewrite took 234.822 sec, dropped 0 entries (0 %)
[P2] Table 6 scan took 41.4996 sec
[P2] Table 6 rewrite took 328.174 sec, dropped 581356329 entries (13.5353 %)
[P2] Table 5 scan took 40.6758 sec
[P2] Table 5 rewrite took 364.014 sec, dropped 762050424 entries (17.7425 %)
[P2] Table 4 scan took 40.037 sec
[P2] Table 4 rewrite took 314.908 sec, dropped 828890353 entries (19.2988 %)
[P2] Table 3 scan took 40.2039 sec
[P2] Table 3 rewrite took 340.096 sec, dropped 855011098 entries (19.9074 %)
[P2] Table 2 scan took 39.6791 sec
[P2] Table 2 rewrite took 109.294 sec, dropped 865491244 entries (20.1514 %)
Phase 2 took 2000.83 sec
Wrote plot header with 252 bytes
[P3-1] Table 2 took 209.092 sec, wrote 3429448758 right entries
[P3-2] Table 2 took 204.149 sec, wrote 3429448758 left entries, 3429448758 final
[P3-1] Table 3 took 195.431 sec, wrote 3439926338 right entries
[P3-2] Table 3 took 198.171 sec, wrote 3439926338 left entries, 3439926338 final
[P3-1] Table 4 took 208.559 sec, wrote 3466145434 right entries
[P3-2] Table 4 took 209.458 sec, wrote 3466145434 left entries, 3466145434 final
[P3-1] Table 5 took 215.779 sec, wrote 3533003729 right entries
[P3-2] Table 5 took 209.628 sec, wrote 3533003729 left entries, 3533003729 final
[P3-1] Table 6 took 224.536 sec, wrote 3713770246 right entries
[P3-2] Table 6 took 222.826 sec, wrote 3713770246 left entries, 3713770246 final
[P3-1] Table 7 took 365.354 sec, wrote 4295132098 right entries
[P3-2] Table 7 took 243.069 sec, wrote 4294967296 left entries, 4294967296 final
Phase 3 took 2713.89 sec, wrote 21877261801 entries to final plot
[P4] Starting to write C1 and C3 tables
[P4] Finished writing C1 and C3 tables
[P4] Writing C2 table
[P4] Finished writing C2 table
Phase 4 took 199.034 sec, final plot size is 108835981523 bytes
Total plot creation time was 12439.8 sec (207.33 min)
Started copy to /Volumes/WDE_EXFAT/plot-k32-2021-08-17-16-35-8f0xxx4
Copy to /Volumes/WDE_EXFAT/plot-k32-2021-08-17-16-35-8f0xxxf.plot finished, took 1140.87 sec, 90.978 MB/s avg.

Does anyone see where the bottleneck is and what I can do about it?

CD

So this breakdown below is simply utilizing the regular GUI program. Still, I can only imagine a 32GB or 64GB M2 or MX, etc., setup running a modified Madmax or Plot manager natively in the future, but until then…

On average, I’ve been able to get 13 -15 plots per 24/hr period (usually 14 lately) based on the timestamps of the plots in the final destination folder. I erase the SSD via disk utility after running each lot of 29 plots. My GUI settings while plotting Chia on M1 mini with 1TB Samsung 970pro M.2 NVMe (UGREEN M.2 NVMe SSD Enclosure USB C 3.1 Gen 2 External Enclosure) are as follows:

  • parallel plotting option selected with the amount set to the max of 29 plots
  • delay of 107mins
  • RAM max usage set to 5200GB
  • 6 threads

I also read/learned mixed in with some trial & error that these cables matter too, so I upgraded my cabling to CAT-7 and utilizing Thunderbolt 4 cable (with the #4 stamped on the cable) for the SSD enclosure link. I also run the enclosure with the cover off due to heat. All equipment is currently sitting on top of a laptop cooling stand with everything powered by the Belkin Surge Power Strip Protector - 8 (Rotating & 4 Stationary AC Multiple Outlets).

The above is mainly from reading others’ posts and trial & error plus many Amazon returns based on the advice of others posting here, YouTube, and Reddit. So it’s an aggregate from other’s posts, and it has been beneficial! Thank you, everyone! I’m just passing it forward and can follow up to post the source links later tonight.

Sources:

How are your CPU utilization levels? If its low, then your bottleneck is probably your SSDs or however you are connecting it to the Mac Mini, USB3.2?

Most people here use M.2 nvme for fastest plot speeds. Is there any way to connect an nvme drive using thunderbolt?

Try with u 512 and v 128

I’m doing 18 plots per day with a 1Tb Seagate Firecuda 520 and an Acasis Thunderbolt 4 enclosure. I have the enclosure positioned on its side sitting on a heatsink, it runs a few degrees cooler than it does lying flat. Many Thunderbolt NVMe enclosures run too hot and will slow plotting down.

Settings:

  • 18 plots
  • 80 minute delay
  • 3390 GB
  • 4 threads
  • 128 buckets

I start the next batch of plots when the top plot of the last 3 of the previous batch reaches 100%

3 Likes

The CPU allocation is almost 100% on each core (about 80% on 4 cores and about 99% on the remaining 4 cores) but the syncrate to the external SSD is about 80 MBit/s even when I copy a regular file to the SSD. So in my opinion the SSD is the bottleneck.

I ordered a set of Thunderbolt cables, this was a suggetion in another post. Maybe this makes a difference. In the system configuration utility the Crucial is listet unter the USB 3.1 Hub…

CD

1 Like

What is the reason for the huge delay in your setup?

CD

Ack, i will report the result as soon as it’s done…

CD

I’m guessing the problem is in M.2 enclosure or cable. The USB 3.1 gen 2 should produce speeds in a ballpark of 1000 MB/s

For example I tried this enclosure: Amazon.com: Sabrent USB 3.2 Type-C Tool-Free Enclosure for M.2 PCIe NVMe and SATA SSDs (EC-SNVE) : Electronics

It works fine, but during chia plotting under sustained load my SSD started severely thermal throttling. I had to put a fan blowing on it constantly to help with heat

1 Like

Yes, the SSD is getting hot, indeed. Also the temperature of the Mac is rising up to almost 70°C, at least in phase 1…

CD

A few reasons: With the 16GB ram limitation on the M1 Mini there’s some swap use of the internal SSD whilst plotting. These settings have been very gentle on the internal SSD with an average of 2GB swap use and 98% SSD life left after 750 plots (a lot of that SSD wear happened with the pre Silicon build that used up to 10GB swap). Also, because I’m using a 1TB temp directory SSD; if the delay is too short, at some point during an 18 plot batch the SDD fills up and the batch freezes.

Lastly, the M1 is my daily duties machine, and it’s running a full node, so with this setup there’s still around 30%-40% CPU available for other tasks, like winning blocks :slightly_smiling_face:, and plotting power usage is negligible.

It’s important to understand that the only time there is actually any delay with these settings is when I need to do a reboot at the end of a batch, otherwise, there’s always 3-4 plots in various plotting phases. Phase 1 uses a lot more resources, so I never have more than 1 plot in phase 1 at the same time.

I did a lot of experimentation to come up with these settings, if anyone has settings that can do more than 18 plots per day, I’d love to hear about it. The Firecuda 520 in the Acasis Thunderbolt enclosure benchmarks at 2800 MB/s, equal in speed to the internal SSD. With these settings, the Apple SSD runs at 43-48ºC and the Firecuda runs at 49-58ºC at maximum 24ºC ambient temp. Phase 1 averages around 7000 sec.

I agree with the strategy on 1TB SSD stick of optimizing so 4 are concurrently plotting at all times. There’s always one starting (<25%) and one about the finish (>90%) while one about to cross the (~51%) with the 4th in-between the last two listed (>60% but <80%). It’s somewhat of a juggling act at first unless you step-up to 2TB SSD then it doesn’t matter b/c there’s plenty of space.

I appreciated your post MontyBurns and figured why not give it a go. So, I purchased the FireCuda 520 1TB as a test run on secondary M1 harvester that I’m running with the same enclosure (10GBs UGREEN). The results for Phase 1 only single plot are below:

– Time for phase 1 = 6296.958 seconds (104mins) CPU (241.370%) Fri Aug 20 22:10:46 2021 Laptop (M1 w/ 16GB)

FireCuda is slightly faster than the SSDs that I’m using, Samsung 970pro 1.02TB with 5 yr warranty. I ran the same plotting specs mention above; 5200 GB with 6 threads, 128 buckets. The m1 used ~200.8MB of swap. No other CPU workload. I’m not ready to switch out my three Samsung 970pro SSDs but enjoyed testing the FireCuda 520.