Performance of a Heavy Multithreading App on Apple Silicon

I couldn’t resist. Now, the new Apple Silicon macs are out and I had to buy a new Mac mini to test my applications on the new architecture (and the new macOS 11.0). Recently I released my refurbished project, the call center simulator CCsim (https://apps.apple.com/de/app/ccsim/id1519438028?mt=12). It is heavily relying on multithreading and I was eager to see what it is doing on M1-equipped macs.

Good new first: everything seems to be fine. After the optional install of Rosetta2 all my favourite apps just ran fine and with proper performance. My call center simulator CCsim also compiled with no problem and it behaves quite the same under Big Sur compared to Catalina, my current development OS. So, let’s make a little test.

My development machine is a 2019 iMac with a 6-core i5 at 3.0 GHz, a typical middle-class machine, I would say. In my test scenario it simulates app. 1.4 mio. telephone calls in total in 100 iterations. All iterations are running in parallel so that all six cores are utilised to about 100% each. A nice test for CPU performance, I think.

The new Apple Silicon mac is a Mac mini with an 8-core M1-chip at unknown bus speed. I ran the same scenario on that mac using Rosetta2 and native. Here are the times measured:

iMac 2019, Intel 6-core i5, 3.0 GHz, Catalina macOS 10.15.7 19.95 s
Mac mini, M1 8-core, Big Sur macOS 11.0.1, Rosetta2 26.85 s
Mac mini, M1 8-core, Big Sur macOS 11.0.1, native ARM 17.07 s

So, two things to observe:

  • The Rosetta2 re-translation of the Intel-code leads to a 57% increase of execution time. Not too bad for this CPU-centric app.
  • CCsim running native on the M1-Mac mini is 17% faster than on my Intel iMac. OK, it’s faster but not that fast.

Well, I played around a little and installed the nice menu bar tool „Menu Meters“ and I noticed that CCsim is not using all the cores available on the Mac mini.

Only four cores out of eight are actually filled up during a simulation run. „Stranger and stranger“, as Alice would say. Maybe it has something to do with the new OS Big Sur. So, let’s double-check that.

I installed Big Sur on a test volume on my iMac and repeated the measurement:

iMac 2019, Intel 6-core i5, 3.0 GHz, Big Sur macOS 11.0.1 20.70 s

And all cores are filled up properly.

So, the question stays open: why is CCsim on the M1-Mac mini not using all the cores available?

 

Update:

OK, reading helps sometimes. The 8 cores of the new M1-macs are not equal but come in two kinds: 4 cores are „high performance“ and 4 cores are „high efficiency“.  Obviously, after running a few seconds with all 8 cores the system switches off the „high performance“-cores to lower the power consumption. Not necessary for a Mac mini, in my eyes, but that’s what it looks like.

Further Update:

OK, now I’m convinced: My app is running on the high performance cores. I’ve checked it with Instruments. So, the performance on the M1 Mac is not that much better than on my Intel iMac.

Update November 15, 2023:

Now I’ve got my brand new iMac M3 and I’ve repeated the test:

iMac 2023, M3 8-core, Sonoma macOS 14.1.1, native ARM 8.30 s

That sounds better, doesn’t it?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert