Add parallelismFactorHint to Spawn[F] #4199
Milestone
Content-Length: 236933 | pFad | http://github.com/typelevel/cats-effect/issues/4199
0CFetched URL: http://github.com/typelevel/cats-effect/issues/4199
Alternative Proxies:
Someone asked in Discord if there is a way to ask the CE runtime how many CPUs/compute threads it has access to, so that they can set parallelism factors appropriately. It's available in
IOApp
ascomputeWorkerThreadCount
but this is specific toIOApp
and therefore not easily usable from all the places inc.e.std
that could benefit from it.Once it's added to
Spawn
, new methods or overrides should be added setting default parallelism factors accordingly. For example, in addition toRandom.scalaUtilRandomN
, there should be a variant that setsN
to thecomputeWorkerThreadCount
.There was some discussion of this in Discord, which I will attempt to summarize:
concurrencyFactorHint: Option[Int]
(orparallelismFactorHint: Option[Int]
in the interest of consistent terminology).Option
box by defaulting to 0, to which Daniel "didn't totally object," because "technically anything ≤ 0 is semantically invalid anyway" and "if we go with 0 as the default then the fallback could be to tap the runtime anyway"F[Int]
to reflect the reality that the number can change in some circumstances, but that opens up quite a rabbit hole, so it may not be worth it? IfF[Int]
is used, should there be some kind of notification protocol to let data structures optimized for a given value rebalance themselves if the value changes?The text was updated successfully, but these errors were encountered: