In Tibco Spotfire Statistics Services, each data function is using its own TERR engine instance, which in turn can be tied to a single CPU core by setting -Dengine.affinity option. In some cases, data function performance with -Dengine.affinity=0 might, indeed, be better than setting -Dengine.affinity=1-9999. Using 0 value will specify all CPUs ("disable assigning engine affinity") and can result in a higher level of multiprocessing.
-Dengine.affinity=1-9999 would assign a specific CPU to each engine process, but would round-robin through the CPUs.
-Dengine.affinity=0 doesn't do anything to tell the operating system how to allocate CPUs to engines.
Engine affinity was originally put in place in a different era of CPU management, before multi-core processors were commonplace. Given how more modern Windows servers usually use multiple CPU cores, it might no longer be necessary. Engine affinity was also put in place at a time when R was almost exclusively single-threaded, and had no capability for multi-core processing. Today, TERR uses Intel's Math Kernel Library internally to do multi-core parallelism on some complex calculations, thus, performance could improve in some cases by setting -Dengine.affinity=0.
Reference: Dengine.affinity=0 setting in Tibco Spotfire Statistics Services
Comments
0 comments
Article is closed for comments.