3 ms·
> ART, Swift/Objective-C runtime, and stuff like Grand Central Dispatch I don't know these, but from a quick googling it still looks like explicit multi-thread
by fl7305 3y ago
> ART, Swift/Objective-C runtime, and stuff like Grand Central Dispatch
I don't know these, but from a quick googling it still looks like explicit multi-threading? Albeit with higher level primitives than in older languages, but still explicit?
> auto-vectorization
I'm not sure I see a hard dividing line between older languages and managed ones as far as auto-vectorization? Sure, a higher-level language might make it easier for the compiler since it knows more about potential side effects, but simple and local C code doesn't have any side effects either.
> with little intervention required from the developers side
> Hence why frameworks like Accelerate exist, even if a JIT isn't part of the picture
Accelerate looks nice, but it still looks like it has to be called explicitly in the user code?
> Likewise higher level managed frameworks offer a better distribution between the parallel processing taking part across CPU, GPU or NPU, which again on classical UNIX/Win32 in C and C++, have to be explicility programmed for.
I'm not sure I understand, can you give more explicit examples?
My point here isn't that managed languages don't give big benefits over C. I prefer Python and C# when those can be used.
It's more that I don't see "automatic parallel processing" as a solved problem?
Sure, we get better and better primitives for multi-threading, and there are more and more high-level parallel libraries like you mentioned. But for most cases, the programmer still has to explicitly design the application to take advantage of multiple cores.