[fpc-devel] FPC 2.7.1 r22088 fails with compiler error in fpdoc.

Thomas Schatzl tom_at_work at gmx.at
Thu Aug 16 11:53:40 CEST 2012


Hi,

On Thu, 2012-08-16 at 10:36 +0100, Graeme Geldenhuys wrote:
> On 16 August 2012 10:12, Jonas Maebe <jonas.maebe at elis.ugent.be> wrote:
> > make FPC=latest-release all -j ncpus FPMAKEOPT="-T ncpus"
> 
> Two questions...
> 
> 1) Is the -j <n> option still needed, now that we moved to fpmake with
> the -T option? Sven said the -j option isn't usable any more.

The -T only covers what fpmake is processing, i.e. packages. The -j
switch is still usable, but won't help a lot because most of the
compilation of the other things is not parallelizable on that level.

Actually, the speedup due to use of -T is not much anyway, because the
effort for packages are relatively minor to compiling the rtl and
compiler six times (during the "cycle" :).

> 
> 2) Does the value passed to -j or -T differ? I know with -j <n> you
> usually specify the number of cores +1 (this was recommended all over
> the internet messages I read). The -T in fpmake means threads as far
> as I understand. So a i7 quad core can handle 8 threads
> simultaneously. So then in that case I would  specify -T 8.  Is this
> correct?
> 

If you compile your sources from a current SSD, it may not have any
effect because it typically provides the necessary read/write
performance to saturate all worker threads. The reason for specifying
the "+1" (or any other magic constant/multiplier) is that without SSD
the threads were often waiting for the HDD delivering data to process.
Additional threads can do their work during that time.

You can still do that, but the benefit may be small with an SSD, but
adding another worker thread may not hurt too much either.

Just test it because gains are dependent on the available hardware. I.e.
use tools like "time".

Thomas






More information about the fpc-devel mailing list