[fpc-pascal] Threading vs Parallelism ?
Mark Morgan Lloyd
markMLl.fpc-pascal at telemetry.co.uk
Thu Mar 30 09:56:49 CEST 2017
On 29/03/17 22:30, fredvs wrote:
> @Karoly Balogh (Charlie/SGR)
> Perfect, I have now all the arguments to defend the "Dinosaur Threading"choice.
> Thanks.
I'd second Charlie's point, and add that a very small change to a
system's layout, e.g. a DIMM on a NUMA node going dodgy and being
excluded at boot, can have a drastic effect if process or interrupt
affinity has been locked down inadvisedly.
Another thing to take into account is that when many people mention
parallelisation they're thinking of something like OpenMP, which in
practice is built on top of threads and processes and obviously
introduces substantial overhead. It's good for large jobs carefully
designed, particularly on very large datasets.
Some languages were designed with at least some measure of
parallelisation in mind. I'd highlight in particular APL, which tried to
minimise control flow variation so that in principle at least a function
could be applied to all elements of an array simultaneously. Granted
that in those days CPUs were a scarce resource, but even then there were
understood to be hazards which could break the programming model.
Ryan mentions OpenCL etc., which is about as close as we've got to "a
vector processor on every desktop".
Finally, I suggest that you look at least briefly at
https://en.wikipedia.org/wiki/Vector_Pascal which appears to have some
quite good stuff in it.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the fpc-pascal
mailing list