  General OpenVMS Multiprocessing (SMP) Questions? 
 The Question is:
 
We are thinking about buying an Alphaserver 4100 with two CPUs. The
question is: How does OpenVMS 6.2 use more than one CPU? Is there a way
to direct certain work to a certain CPU and all the other work to the
remainding CPU, or does OpenVMS balance all work among the available CPUs with no user control allowed? The only commands I see related to CPUs are the "SHOW CPU", "STOP CPU"  and "START CPU". No mention in the doc is made or how to control them.
 
 
 The Answer is:
 
  OpenVMS uses multiple CPUs quote nicely -- the first multiprocessor
  systems shipped many years ago, and symmetric multiprocessing (SMP)
  support has been available and in full operation at many customer sites
  since V5.0 -- OpenVMS engineering and OpenVMS users have roughly ten
  releases of experience with SMP.
 
  OpenVMS will automatically detect an SMP system, and will default to
  configuring and operating with all CPUs enabled.
 
  Within OpenVMS, the basic unit of scheduling is the process (or the
  thread) -- each process (or thread) is scheduled based on its current
  state (ready, waiting for I/O, hibernating, etc), and based on its
  current process priority setting.  With the standard OpenVMS process
  scheduler, OpenVMS will use the process attributes to schedule computable
  system and user process on available CPUs.  This makes OpenVMS SMP systems
  excellent choices for typical timesharing activities, and for any system
  loads that will regularly have more than one process active at a time.
 
  In those few cases where applications require that processes be targeted
  to specific CPUs -- this is a relatively rare situation, and something
  that most sites do not need, nor want -- then per-CPU processor affinity
  support (SET PROCESS/AFFINITY, etc), and support for an application- or
  site-specific class scheduler are present in the OpenVMS operating system.
  An example class scheduler is shipped.  Most sites will find the standard
  scheduling and process priority scheme will be entirely appropriate for
  their needs, and will not require the use of processor affinity nor class
  scheduling.  (Care must be used when targeting processes to CPUs, as it
  is possible to deliberately or accidently create a number of degenerate
  scheduling situation cases; cases where the throughput of the OpenVMS
  system is actually lower than what is desired and expected.)
 
  Further, with recent (circa V7.1) OpenVMS Alpha releases and DECthreads
  (POSIX threads), a single process can be "threaded", and the threads can
  execute entirely in parallel on as many CPUs as are available.
 
  And with the OpenVMS Galaxy support, you can run fully seperate instances
  of OpenVMS on each processor.  (OpenVMS Galaxy is currently targeted at
  folks with AlphaServer 8000-class SMP systems.)  OpenVMS Galaxy is a
  feature that is available in the Software Developer's Kit for V7.2 -- this
  is the OpenVMS release currently in field test.  CPUs can be moved from
  one instance to another entirely dynamically, allowing a large number of
  different sorts of scheduling policies to be easily implemented.
 
 
