User manual

Interprocessor Synchronization Window
50
code from failing altogether (although in some cases it may), but it will reduce probability of its failure to
a level comparable with real hardware VAXen or less.
It must be reiterated that described problem remedied by the use of synchronization window would be
caused only by the code that was mal-written in the first place and that to our current knowledge does
not actually exist in baseline VMS, and we are also not presently aware of any such code actually
existing in any layered or 3
rd
party products as well.
* * *
But the primary benefit of synchronizaton window is that with synchronization window enabled (more
specifically, with its ILK sub-option enabled) VAX MP allows to use host nativemode to implement
VAX interlocked instructions.
VAX MP provides internally two algorithms to implement VAX interlocked instruction set. Default
algorithm uses “portable interlock”. Another algorithm uses “native-mode interlock” and is expected to
be more performant and more scalable on workloads that use high rate of BBSSI, BBCCI and ADAWI
instructions, such as workloads that perform a lot of interprocessor synchronization activity, e.g.
spinlock acquisition. This includes workflows that induce high rate of IO operations, high paging rate or
intensive inter-process synchronization.
The difference in performance and scalability between native and portable interlock modes is likely to be
small when running VAX MP on a dedicated host machine with HOST_DEDICATED set to 1. Native mode is
expected to outperform portable interlock mode when running workload with high rate of interlocked
instructions on non-dedicated host with HOST_DEDICATED left at 0.
However the use of native mode requires the use of synchronizaton window, more specifically ILK sub-
option of synchronization window.
To start VAX MP multiprocessing with native-mode interlock, load VSMP with one of the following
option sets:
$ @SYS$SYSROOT:[VSMP]VSMP$LOAD INTERLOCK=NATIVE SYNCW=ILK
or:
$ @SYS$SYSROOT:[VSMP]VSMP$LOAD INTERLOCK=NATIVE SYNCW=ALL
Table below summarizes valid combinations of parameters most relevant for synchronization window.
Three most relevant parameters are:
o VSMP LOAD command option INTERLOCK=value, where value can be PORTABLE or NATIVE.
Default is PORTABLE. On some host systems that do not provide adequate instruction set for
native-mode emulation of VAX interlocked instructions, setting to NATIVE can be impossible. It