skip book previous and next navigation links
go up to top of book: HP OpenVMS System Manager's Manual, Volume 2:... HP OpenVMS System Manager's Manual, Volume 2:...
go to beginning of chapter: Managing Special Processing EnvironmentsManaging Special Processing Environments
go to previous page: Understanding Vector ProcessingUnderstanding Vector Processing
go to next page: Managing DECdtm ServicesManaging DECdtm Services
end of book navigation links

Managing the VectorProcessing Environment (VAX Only)   



The following sections describe tasks for managing a vectorprocessing system.

Loading the Vector Processing Support Code(VAX Only)  

By default, in a VAX vector processing system, the systemautomatically loads the vector processing support code at boot time.You can override the default behavior by setting the static systemparameter VECTOR_PROC as described in Settings of VECTOR_PROC System Parameter (VAX Only).

Table 1   Settings of VECTOR_PROC System Parameter (VAX Only)
Value Result
0
Do not load the vector processingsupport code, regardless of the system configuration.
1
Load the vector processingsupport code if at least one vector-present processor exists. This isthe default value.
2
Load the vector processing support codeif the system is vector-capable. This setting is most useful fora system in which processors have separate power supplies. Withthis setting, you can reconfigure a vector processor into the systemwithout rebooting the operating system.

Configuring a Vector Processing System (VAXOnly)  

You can add a vector-present processor to or remove it froma multiprocessing configuration at boot time by using the systemparameter SMP_CPUS, or at run time by using the DCL commands START/CPUand STOP/CPU. Note that the operating system treats the scalar andvector CPU components of a vector-present processor as a singleprocessor, starting them and stopping them together.

At boot time, the setting of the system parameter SMP_CPUSidentifies which secondary processors in a multiprocessing systemare to be configured, including those processors that are vectorpresent. (The operating system always configures the primary processor.)The default value of -1 boots all available processors,scalar and vector-present alike, into the configuration. (Referto the HP OpenVMS System Management Utilities Reference Manual for additional information about this parameter.)Note that, prior to starting a vector-present processor, you shouldensure that the vector processing support code (see Loading the Vector Processing Support Code (VAX Only)) is loaded at boottime. Otherwise, processes will be able to use only the scalar CPUcomponent of the vector-present processor.

Tobring secondary processors into a running multiprocessing system,use the DCL command START/CPU. To remove secondary processors fromthe system, use the STOP/CPU commands. Again, you must ensure that thevector processing support code has been loaded at boot time forthe vector CPU component of vector-present processors started inthis way to be used.

Note,however, that a STOP/CPU command fails and generates a message ifit would result in the removal of a vector-present processor thatis the sole provider of the vector capability for currently activevector consumers. In extreme cases, such as the removal of a processorfor repair, you can override this behavior by issuing the commandSTOP/CPU/OVERRIDE. This command stops the processor, despite stranding processes.

When a STOP/CPU/OVERRIDEcommand is issued for a vector-present processor, or when a vector-present processorfails, the operating system puts all stranded vector consumers intoa CPU-capability-wait (RSN$_CPUCAP) state until a vector-presentprocessor is returned to the configuration. To any other process thatsubsequently issue a vector instruction (including a marginal vectorconsumer), the system returns a "requested CPU not active" message(CPUNOTACT).

Refer to the HP OpenVMS DCL Dictionary for additional information about theSTART/CPU and STOP/CPU commands.

Managing Vector Processes (VAX Only)  

The operating systemscheduling algorithms automatically distribute vector and scalarprocessing resources among vector consumers, marginal vector consumers,and scalar consumers. However, VAX vector processing configurationsvary in two important ways:

In a configuration that has more vector consumers in a systemthan scalar-vector processor pairs to service them, vector consumersshare vector-present processors according to process priority. Ata given priority, the system schedules vector consumers on a vector-presentprocessor in a round-robin fashion. Each time the system must schedulea new vector consumer on a vector-present processor, it must savethe vector context of the current vector consumer in memory andrestore the vector context of the new vector consumer from memory.When such "slow" vector context switches occurtoo frequently, a significant portion of the processing time isspent on vector context switches relative to actual computation.

Systems that have heavy vector processing needs should beadequately configured to accommodate those needs. However, somemechanisms are available for tuning the performance of an existingconfiguration.

Adjusting System Resources and Process Quotas(VAX Only)  

Systems inwhich several vector consumers are active simultaneously may experienceincreased paging activity as processes share the available memory.To reduce process paging, you may need to use the Authorize utility(AUTHORIZE) to adjust the working set limits and quotas of the processesrunning vectorized applications. (Refer to the AUTHORIZE sectionof the HP OpenVMS System Management Utilities Reference Manual for additional information.) An increase of theprocess maximum working set size (system parameter WSMAX) may alsobe necessary. Additionally, a vectorized application may use theLock Pages in Working Set system service ($LKWSET) to enhance itsown performance.

Thesystem allots to each vector consumer 8KB of system nonpaged dynamicmemory in which the operating system stores vector context information.Depending upon how many vector consumers may be active in the systemsimultaneously, you may needto adjust the system parameter NPAGEDYN. The DCL command SHOW MEMORY/POOL/FULLdisplays the current size of nonpaged pool in bytes.

Toobtain optimal performance of a VAX vector processing system, youshould take some care in setting up generic batch queues that avoidsaturating the system's vector resources. If a queue contains moreactive vectorized batch jobs than vector-present processors in thesystem, a significant portion of the processing time will be spenton vector context switches.

The recommended means for dispatching vectorized batch jobsto a VAX vector processing system is to set up a separate queue(for instance, VECTOR_BATCH) with a job limit equal to the numberof vector-present processors in the system. When submitting vectorizedbatch jobs, users should be encouraged to submit them to this genericvector-processing batch queue.

Distributing Scalar and Vector ResourcesAmong Processes (VAX Only)  

As a vector consumer, a process must be scheduled only ona vector-present processor. If the image the process is executingissues only scalar instructions for a period of time, and it mustshare the scalar-vector processor pair with other vector consumers,its inability to run on an available scalar processor could hamperits performance and the overall performance of the system.

By default, the operating system assumes that if a vectorconsumer has not issued a vector instruction for a certain periodof time, it is unlikely that it will issue a vector instructionin the near future. The system relinquishes this process's needfor the vector capability, classifying it as a marginal vector consumer.

In an asymmetric vector-processing configuration, detectionof marginal vector consumers achieves the following desirable effects:

Use the VECTOR_MARGIN system parameter to establish the intervalof time at which the system checks the status of all vector consumers.The VECTOR_MARGIN parameter accepts an integer value between 1 andFFFFFFFF16. This value represents a numberof consecutive process quanta (asdetermined by the system parameter QUANTUM). If the process hasnot issued any vector instructions in the specified number of quanta,the system declares it a marginal vector consumer.

The default value of the VECTOR_MARGIN parameter is 20010.

Restricting Access to the Vector Processorby Using ACLs (VAX Only)  

A vector capability is a software abstractby which the operating system makes the services of the vector processoravailable to users. You can restrict the use of the vector processorto users holding a particular identifier by associating an accesscontrol list (ACL) with the vector capability object.

For example, a university might limit use of the vector processorto faculty and students in an image processing course, or a servicebureau might charge users for access to the vector capability, timespent on the vector processor, or both.

Use the DCL command SET SECURITY/ACL in the following formatto establish access control entries (ACEs) on a vector capability:SET SECURITY /CLASS=CAPABILITY /ACL=(ace[,...]) VECTOR

The following DCL command displays the ACL on the vector capability:

$ SHOW SECURITY /CLASS=CAPABILITY VECTOR
Note that the ACL is on the vector capability, not on theuse of any or all vector-present processors in the system. The operatingsystem will still schedule processes without permission to use thevector capability on a vector-present processor. However, theseprocessors will be able to use only the scalar CPU component ofthe processor, and cannot execute vector instructions. Likewise,because the ACL is on the vector capability and not on a vector-presentprocessor, you cannot establish an ACL to force long-running jobsto a specific processor.

For additional information about the SET SECURITY and SHOWSECURITY commands, refer to the HP OpenVMS DCL Dictionary.

Obtaining Information About a Vector ProcessingSystem (VAX Only)  

You can obtain information about the status of the vectorprocessing system and the use of the system by individual processesthrough various means, including:

DCL Lexical Functions F$GETJPI and F$GETSYI(VAX Only)  

The DCL lexical function F$GETJPI accepts the following itemsand returns the corresponding information regarding the vector statusof a specified process:

ItemReturn Type InformationReturned
FAST_VP_SWITCH
Integer
Numberof times this process has issued a vector instruction that resultedin an inactive vector processor being enabled without the expenseof a vector context switch
SLOW_VP_SWITCH
Integer
Numberof times this process has issued a vector instruction that resultedin an inactive vector processor being enabled with a full vectorcontext switch
VP_CONSUMER
Boolean
Flagindicating whether the process is a vector consumer
VP_CPUTIM
Integer
Total amountof time the process has accumulated as a vector consumer

The DCL lexical function F$GETSYI accepts the following itemsand returns the corresponding information regarding the status ofthe vector processing system:

ItemReturn Type InformationReturned
VECTOR_EMULATOR
Integer
Flagindicating the presence of the VAX Vector Instruction Emulationfacility (VVIEF) in the system
VP_MASK
Integer
Maskindicating which processors in the system have vector coprocessor
VP_NUMBER
Integer
Numberof vector processors in the system

Refer to the HP OpenVMS DCL Dictionary for additional information about theDCL lexicals F$GETJPI and F$GETSYI.

SHOW CPU/FULL Command (VAX Only)  

TheSHOW CPU/FULL command lists the capabilities of the specified CPU.Issue this command to determine the presence of the vector capabilityin the system prior to executing a STOP/CPU command.

Refer to the HP OpenVMS DCL Dictionary for additional information about theSHOW CPU command.

SHOW PROCESS and LOGOUT/FULL Commands (VAXOnly)  

Ifthe target process has accrued any time as a vector consumer scheduledon a vector-present processor, the DCL commands SHOW PROCESS andLOGOUT/FULL display the elapsed vector CPU time and the charged vectorCPU time, respectively.

To accumulate vector CPU time, a process must be a vectorconsumer (that is, require the system vector capability) and bescheduled on a vector-present processor. The operating system stillcharges the vector consumer vector CPU time, even if, when scheduledon the vector-present processor, it does not actually use the vectorCPU. Note that, because scalar consumers and marginal vector consumersdo not use the vector CPU, they do not accrue vector CPU time, evenwhen scheduled on a vector-present processor.

Refer to the HP OpenVMS DCL Dictionary for additional information about theSHOW PROCESS and LOGOUT commands.

Loading the VAX Vector Instruction EmulationFacility (VVIEF) (VAX Only)  

The VAX Vector Instruction Emulation Facility (VVIEF) is astandard operating system feature that allows vectorized applicationsto be written and debugged in a VAX system in which vector processorsare not available. VVIEF is intended strictly as a program developmenttool, and not as a run-time replacement for vectorhardware. Vectorizing applications to run under VVIEF offers noperformance benefit; vectorized applications running under VVIEFwill execute more slowly than their scalar counterparts.

To cause the system to loadVVIEF at the next system boot and at each subsequentsystem boot, invoke the command procedure SYS$UPDATE:VVIEF$INSTAL.COM.To unload VVIEF, invoke the command procedure SYS$UPDATE:VVIEF$DEINSTAL.COMand reboot the system.

You can determine the presence or absence of VVIEF in a systemby issuing the following DCL commands:

$ X = F$GETSYI("VECTOR_EMULATOR") $ SHOW SYMBOL XX = 1   Hex = 00000001  Octal = 0000000001
A return value of 1 indicates the presence of VVIEF; a valueof 0 indicates its absence.

Note that, although VVIEF may be loaded into the system, inthe presence of vector support code, it remains inactive. Althoughit is possible to prevent the loading of vector processing supportcode in a vector-present system (see Loading the Vector Processing Support Code (VAX Only)) and activate VVIEF, there are few benefits.Should the only vector-present processor in the system fail, theexecution of preempted vectorized applications will not resume underVVIEF.


go to previous page: Understanding Vector ProcessingUnderstanding Vector Processing
go to next page: Managing DECdtm ServicesManaging DECdtm Services