[fpc-pascal] Threading vs Parallelism ?
Mark Morgan Lloyd
markMLl.fpc-pascal at telemetry.co.uk
Thu Mar 30 15:11:35 CEST 2017
On 30/03/17 08:00, Mark Morgan Lloyd wrote:
> 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.
Quoting from manual section 5.4.
Future machines like the Larrabee will have considerably wider
SIMD registers, increasing the benefits of SIMD code. But newer chips
also have multiple cores. For these, the recent versions of the Glasgow
Pascal Compiler will parallelise across multiple cores if the arrays
being worked on are of rank 2. The Pascal source code of the program
remains the same independently of whether it is being targeted at a
simple sequential machine, a SIMD machine or a multi-core SIMD machine.
Targeting is done by flags passed to the compiler:
[...]
Two threads are dispatched to process the work using a fork - rejoin
paradigm. The run time library is built on top of pthreads. For a two
core machine, two server threads are initiated at program start up.
These wait on a semaphore until post_job passes them the address of a
procedure and a stack frame context within which the procedure is to be
executed.
--
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