Concurrencyยถ
Every mpm command fans out over the managers it selected and drives them at the same time. That is where most of the speed comes from: an mpm outdated on a machine carrying a dozen managers costs about as long as its slowest one, rather than the sum of all twelve.
Two things bound that parallelism: how many managers you let run at once, and the handful that reach a backend some other manager reaches too.
How many run at onceยถ
--jobs caps the number of managers running concurrently. It takes a count, or one of two keywords: auto, the default, is one fewer than the machineโs logical CPU cores, leaving one free for mpm itself and for the system; max is all of them. --jobs 1 runs the managers one after another.
Two situations ignore that setting and run sequentially anyway. A batch of one manager has nothing left to parallelize. And --verbosity DEBUG streams every managerโs raw output line by line, where interleaving a dozen of them would scramble the narration the flag exists to produce.
What each command spreadsยถ
โ every selected manager runs at once.
๐ every selected manager runs at once, except those queueing on a shared backend, which take turns.
โ๏ธ one manager at a time, whatever
--jobssays.
Command |
Concurrency |
|---|---|
|
๐ |
|
๐ |
|
โ |
|
๐ |
|
โ๏ธ |
|
โ |
|
โ |
|
โ |
|
๐ |
|
๐ |
|
โ |
|
โ |
|
๐ |
|
๐ |
Managers run in parallel; a single managerโs own packages do not. An mpm remove pkg-a pkg-b drives brew and cargo at the same time, but hands pkg-a and pkg-b to brew one at a time. No package manager is safe to invoke twice at once against its own state.
The one command that parallelizes nothing is an mpm install naming a package you left untied to a manager. That install is a priority search: try the managers in order and stop at the first one carrying the package, which cannot be answered by running them all at once. mpm notes at INFO when an explicit --jobs is ignored for this reason. Tie the package to a manager, with --brew or with a purl like pkg:brew/curl, and the install joins the ๐ row above.
The subcommands that drive no package operation of their own are left out of the table: there is nothing for them to spread.
See alsoยถ
Privilege escalation and sudo โ why a run that escalates privileges probes the credential cache before fanning out.
Package managers โ the full pool, one page each.
CLI parameters โ
--jobsalongside every other global option.