Processing slowness

@gdball Thank you for this. It helps me to understand a little more clearly what is being asked of these machines. I wouldn’t mind paying twice the price or more if I knew the computer could really speed things up. If I spend $2500 on a Mac and it still takes 30 seconds to add a flow (which would be a significant bump in speed but not enough to make life pleasant) I would not be thrilled. But I would spend the money if could really help.

I’ve been a Mac user for a couple decades now and probably will not move back to windows, if for no other reason than that I’m also a Logic Pro user. And I don’t think I could handle the emotional turmoil of having both on my desk at once.

You seem to assume that “wattage == computational power”. It’s been clearly shown that the M series chips are much more efficient than equivalent Intel ones, and they can do the same amount of work at a much lower wattage.

You certainly can run up all the cores.
I’ve got the M2 Pro (10 cores) in a Mini chassis, and I haven’t heard the fans once. It’s not being throttled at all. I have to do a hell of a lot to get high CPU usage, but it’s possible.
Dorico just isn’t using all the CPU power that the Mini has. You seem to be suggesting something else, which I don’t think is true.

1 Like

Is this by design? Or do you mean that there’s something going on with my particular setup that isn’t allowing it to access all cores?

As said earlier, some processes within Dorico will be sequential. Do Task 1, and when it’s finished, do Task 2. You can’t ask the 2nd core to do Task 2 at the same as the 1st Core is doing Task 1, because Task 2 needs the results of Task 1.

The reason you have “Idle” CPU is because most tasks can’t be infinitely split across all your cores at 100%.

“How long does it take 8 players to perform a string quartet?” :grin:

3 Likes

305,466,366,298,958,755,976 ms, at the rate I’m going.

4 Likes

Partly true, but I cannot easily open 20+ scores at the same time in Dorico on my Mac mini (I can, but it takes perhaps 10-20 minutes) while I can open 80+ scores on my old Win7(!) with Sibelius 6 or 100+ large images in Photoshop on a computer with comparable specs as the mini. Dorico is extremely slow on some tasks.

Once I have performed a lot of tasks on many scores Dorico, it remains slow. Restarting Dorico makes it resume normal speed. There is something going on that I don’t understand. It could be the handling of audio that is not suited for multiple scores. I have not found any text in the documentation stating the maximum number of open scores that Dorico can handle.

I don’t have a project of 3000m/45i, but I think I experience the same slowness of Dorico as OP with the use of many scores at the same time. (I’m not condensing anything. I don’t use the condense function at all). I tried to open 50 scores of 6-bar single line melodies. I could have come back the next day.

2 Likes

Hi Ben, I didn’t mean to assume. Efficiency might change the slope of the line (or curve) but not the relationship that more work takes more power and generates more heat.

FWIW The M2 with the same 5nm process as the M1 is reported to have “on average” 15% better performance than the M1 - so yay! But the M2 does so at a cost of about 100% more power per core so - you see the same relationship at work.

The default CPU usage graph isn’t the whole story. We need CPU usage times cpu speed, something closer to mips. Plus the graph isn’t granular enough to show what it really does.

All of todays chips have complex heat related limits and throttling for how many cores they will let run , for how long, and at what speed. They function in really short intervals. Agreed that you can run all the cores - but not for very long at a stretch and maybe 50% slower than the top speed that you see in the chip spec. Core “A” can run alone at its top speed longer without hitting those limits - but it comes at a cost to the other cores. The M1 is supposed to be better than the M2 at single core. Again, it’s JMO but I suspect the higher density/heat of the M2 is at play there. Whichever chip or chip vendor, keeping it cool is always a key factor in the actual performance you get. There is software that can show not just cpu usage, but the speed it’s running and temperatures during that usage.

It seems to me that all benchmarks are tricky when you dive into them. Efficient when doing what, how, and for how long? Part of the M2 efficiency is the use of “special accelerators” rather than allowing it to run at extreme speeds. It doesn’t use as much power - but it also CAN’T handle as much power. It objectively can’t reach the speeds of the I9 or thread ripper thread counts - reportedly because of it’s power and heat limitations.

Subjectively, are the M2 acceleration features better or is raw speed better? I think it depends, but I think sometimes you just have to step on the gas pedal and hold it down… Apologies for my biases sir.

2 Likes

Here’s a quick test file if anyone wants to play around with it. D5.0.2 file, Modern orchestra template, 15 flows, each 200 bars (so 3000 bars total), silence playback template, mostly all factory settings. There’s a triad in the Flutes so Condensing has something to deal with other than rests.
test.dorico (2.3 MB)

Here’s what I get with all my normal background stuff running.

Turning Condensing on:
notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=true (11392 ms)
Turning Condensing off:
notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=false (10984 ms)

Duplicating the final Flow with Condensing on:
notifyPostCommandExecute: Project.Flows.Duplicate?FlowID=14&FlowIDArray=14 (15116 ms)
Duplicating the final Flow with Condensing off:
notifyPostCommandExecute: Project.Flows.Duplicate?FlowID=14&FlowIDArray=14 (6478 ms)

Interesting that there’s such a huge performance hit when duplicating a Flow with Condensing on.

EDIT: Ran it again without VEPro, MIR 3D, Roon, etc. running in the background and there was almost no difference. All times were within 1/10 sec so having all that stuff open and running had a negligible effect.

Hi Fred,
I tried your test file. I notice a relative big difference between Locked layout (8 seconds circa for switching condensing on or off) vs unlocked/resetted layout (circa 12 seconds). You can see here (cut-down from console).
In Locked Layout mode, Dorico makes apparently his changes only within the frames, saving so some calculations.
(Dorico 5.0.20 - iMac 27" 2020- 3,6 10cores i9 - 128GB Ram - 2TB SSD just for comparison)

With locked layout:

2023-08-13 23:13:50.250 [info] notifyPostCommandExecute: Page.LockLayout (3167 ms)
2023-08-13 23:17:54.003 [info] notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=true (8282 ms)
2023-08-13 23:18:13.869 [info] notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=false (8078 ms)

With Reset layout:

2023-08-13 23:18:51.561 [info] notifyPostCommandExecute: Page.UnlockLayout (4333 ms)
2023-08-13 23:19:20.896 [info] notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=true (12589 ms)
2023-08-13 23:19:53.378 [info] notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=false (11260 ms)

2 Likes

Interesting! I just tried that and definitely saw some improvement.

2023-08-13 18:07:53.320 [info] notifyPostCommandExecute: Page.LockLayout (2208 ms)
2023-08-13 18:08:03.117 [info] notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=true (8194 ms)
2023-08-13 18:08:30.410 [info] notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=false (8314 ms)

Locking everything had some positive effect on duplicating the last Flow too. Locked/Condensing on:
2023-08-13 18:09:50.627 [info] notifyPostCommandExecute: Project.Flows.Duplicate?FlowID=14&FlowIDArray=14 (11947 ms)

Locked/Condensing off:
2023-08-13 18:12:03.380 [info] notifyPostCommandExecute: Project.Flows.Duplicate?FlowID=14&FlowIDArray=14 (5023 ms)

1 Like

Here are my results with the test file:

Condensing off:

2023-08-13 18:57:15.283 [info] notifyPostCommandExecute: Project.Flow.New (17254 ms)

Turn condensing on:

2023-08-13 18:57:25.313 [info] Executing command: Edit.ToggleLayoutCondensing?Set=true
2023-08-13 18:57:34.638 [info] notifyPostCommandExecute: Edit.ToggleLayoutCondensing?Set=true (9325 ms)

Create new flow with condensing on:

2023-08-13 18:57:40.455 [info] Executing command: Project.Flow.New
2023-08-13 18:57:40.481 [info] Sync video soundtrack with engine
2023-08-13 18:57:54.729 [info] ping response received: from silk service
2023-08-13 18:58:14.362 [info] Applying playback template playbacktemplate.silence, (incremental)
2023-08-13 18:58:14.675 [info] Syncing Audio Engine
2023-08-13 18:58:14.846 [info] notifyPostCommandExecute: Project.Flow.New (34391 ms)

Create new playing technique, condensing still on:

Engrave.EditPlayTechniqueAppearanceStyles PlayingTechniqueCategory=kBrass, Set=true, Post=true
2023-08-13 18:58:25.802 [info] Executing command: Engrave.EditPlayTechniqueAppearanceStyles?PlayingTechniqueCategory=kBrass&Set=true
2023-08-13 18:58:40.150 [info] ping response received: from silk service
2023-08-13 18:58:40.782 [info] notifyPostCommandExecute: Engrave.EditPlayTechniqueAppearanceStyles?PlayingTechniqueCategory=kBrass&Set=true (14980 ms)

1 Like

Cool - so a small set of data and just a few comparison points, but looks in the neighborhood of twice as fast as the op so far? I missed seeing what Fred is running.

I think it’s hard to compare performance between a nearly empty file vs. one populated with music, correct?

Either adding notes, dynamics, etc. to a project slows it down significantly, or there’s something about my project that is problematic.

1 Like

I had posted earlier mentioning similar “sluggishness” and I have a brand new M2 Mac Studio Ultra with 128 GB’s of RAM. My workaround (after trying everything I could think of, and getting suggestions from Daniel) was unfortunately to revert back to Dorico 4 - the issue now has gone away (but only in Dorico 4 - not in Dorico 5). So it appears to be something to do with whatever was changed in Dorico 5, perhaps? I did notice that VST Audio Engine tended to run at 28% or greater in Activity Monitor, consistently (wasn’t sure if that might have something to do with it?)
D.D.

That’s interesting because I’m still running Dorico 4 and I have these issues. I’m not using any playback sounds in my project, so maybe we’re experiencing two different causes of slowness.

AMD 5950x, 128GB, lots of drives but 4 Samsung 2TB 980 or 970 M.2s, plus a bunch other SSD drives. Backblaze says it’s currently backing up 13.4 TB so I guess I have more than that attached.

bb

1 Like

Could always be something weird, but I’ve not seen a comparison like that get BETTER by making the data bigger/more complex. Always the other way, sigh.

Hmm - must be a different problem. For me switching to Dorico 4 definitely did the trick (thankfully as the sporadic slowness was admittedly driving me nuts!) Good luck solving your problem! (and I’ll also hope I can still figure out why things aren’t working properly in Dorico 5).

Hopefully, I’ve collated the data correctly, adding my stats, on a Mac Mini M2 Pro, 32Gb RAM.

What’s interesting is: Creating a New Flow is much slower than Duplicating one!

Also, not every task is faster/slower by the same proportion on a given computer. Some tasks might be faster and others slower.

I got lucky with that Adding a PT time. Additional results were around 7200. But still weirdly fast, proportionally.

Condensing is a lot of work. It’s also true that particular types of notation require a lot more effort – Cues, Slash Notation, etc.

1 Like

Wow, that is interesting