Vax C90-EL SERIES Service Manual Page 85

  • Download
  • Add to my manuals
  • Print
  • Page
    / 216
  • Table of contents
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 84
#pragma Directives [3]
For debugging purposes, the names of slave functions are in the following form:
__tsk_name_nnn
The name is the name of the original function that contained the parallel region,
and nnn is a 3-digit number indicating how many parallel regions preceded
this one in the current function. If the name is longer than 200 characters, only
the first 200 characters are used when the slave functions name is created.
Numbers are assigned beginning with 000 and are incremented by 1 for each
additional parallel region in that function. This counter is reset to 000 for each
new function. For example, __tsk_fctn_002 is the name of the slave function
generated for the third parallel region in function fctn.
3.8.1.1.3 Unitasked Code
The unitasked code contains only the original parallel region. No tasking code
is present in the unitasked code. The unitasked code is executed by the master
task if it determines, at run time, that tasking should not be performed. (For
example, if the expression for the if argument evaluates false or if tasking
is already being done at a higher level in the code.) If the unitasked code is
executed, no slave processors are used. The term unitasked code should not be
confused with nontasked code. Nontasked code refers to any program that does
not have parallel regions, or to the part of the tasked program that is executed
outside of any parallel region.
3.8.1.2 Tasking Initialization
A function that potentially executes tasking code requires some initialization.
This initialization sets up the arguments for each slave function. These arguments
are usually the variables that the slave task shares with the master task and
with other slave tasks.
The execution cost for this code is usually small. For functions that contain
a large number of distinct parallel regions, however, the cost may become
significant.
3.8.1.3 Vectorization with Tasking (Stripmining)
The chunksize, numchunks, guided, and vector arguments to the
taskloop directive can be specified to allow stripmining. Stripmining refers to
the partitioning of long vector for loops into shorter vector chunks and the
processing of these chunks through tasked iterations. While stripmining can
cause wall-clock time to decrease, it usually increases CPU time because of the
reduced vector performance resulting from the smaller vector lengths involved.
S217936 65
Page view 84
1 2 ... 80 81 82 83 84 85 86 87 88 89 90 ... 215 216

Comments to this Manuals

No comments