3 ms·
I think part of the problem is that there is plenty parallelism available, but it's not "high impact" parallelism, in that it's not worth whatever overhead you
by nerdponx 3y ago
I think part of the problem is that there is plenty parallelism available, but it's not "high impact" parallelism, in that it's not worth whatever overhead you might incur (whether in language complexity or runtime overhead).
I think most "business logic" is fairly linear most of the time, and that even if it's highly branched, usually you don't have a large number of concurrently executing units of logic. You do have things like iterating/mapping over arrays, but that's precisely what I think is generally not "high impact" to parallelize. And when it is high impact, we do in fact have a rich space of tools available in the programming and software world, depending on the nature of the task at hand.
I know nothing why this particular Prolog parallelization project failed, but the above is generally my intuition about parallelism in computer programming, so I imagine it's at least somewhat relevant in this case.
- PaulHoule 3y agoOddly superscalar CPUs find quite a bit of parallelism at the micro level in ordinary scalar code although that is tied up very much with managing the comparatively slow motion of data from RAM to CPU and it is something the processor has to discover on the fly as the compiler can’t really know what will be in the cache every time.