                     㤥⮢                    12.10.98
            .. ࠭, ,. 堩, .. 
                ଠ  CONVEX SPP1000

                      
      ਢ ᭮  孨᪨  ࠪ⨪,  ⥪
ᮡ      ਥ ணࠬ஢   CONVEX
SPP1000.     짮⥫  ,    ⠪
㦨 祡  ᮡ  㤥⮢ 䠪⮢ ਪ ⥬-
⨪  孨᪮ ୥⨪.

                    
   1.  ..............................................
   2. ⥪ 楯樨 SPP............................
      2.1.  ..............................
      2.1. 㭪樮 ...............................
      2.2. 㧥.........................................
      2.3. ଠ SPP1000.................................
      2.4. ᫮ .................................
   3.  .............................................
      3.1. ப  ......................................
      3.2. 奬 ஢  ⥬ SPP1000...............
      3.3. 堭 ঠ -७⭮  SPP1000..
      3.4. ࠢ    .......................
      3.5. १㧪 .................................
  4. 㡪............................................
      4.1. 롮 䨣樨 㡪...................
      4.2.  㡪...............................
  5. , ..........................................
  6.  㠫쭮 ...............................
  7. 祭 ᮢ ...............................
      7.1. ᪮ 祭............................
           7.1.1. ,"ਢ⭠__"................
           7.1.2. ,"ਢ⭠__㧫"................
           7.1.3. "_ࠧ塞" ................
           7.1.4. "_ࠧ塞" ................
           7.1.5. "筮_ࠧ塞" ................
      7.2. ᪮ 祭...........................
  8. ।  ணࠬ஢.................................
      8.1. ணࠬ஢  ࠧ塞 ............

                                - 2 -

      8.2. ணࠬ஢   ।祩 ᮮ饭.......
      8.3. 襭  䥪⨢ ணࠬ SPP ...............
             8.3.1. ࠫ  .....................
             8.3.2. ﭨ ᫥⥫쭮 ...........
      8.4. ஭ .....................................
      8.5. 㭪樮 ࠫ........................
      8.6. ⥣  ⮡ࠦ ணࠬ  SPP1000......
  9. ந⥫쭮........................................
  ਫ. ⨬樨  

                    1. 
      ࠡ  ⪮ 뢠 ⥪ ⥬ HP/CONVEX Exemp-
lar SPP1000 (Scalable Parallel  Processor);    ணࠬ஢,
ॠ     㣨 ᮡ ணࠬ஢.  ਠ
ਥ஢  ணࠬ - 짮⥫ ⥬ SPP1000.
    ⥪ SPP1000    ᯮ짮, 祬 騥
MPP (ᨢ ࠫ ) ⥬.     ন
 ⨫ ணࠬ஢,    筮  뢠-
:  ࠧ塞  (SP-shared memory)  । ᮮ饭 (MP-
message passing).
    ⨫  ᮮ⢥ ⥪ ᫨⥫ ⥬ SMP -
⥬ ᨬ筮 ⨯஢,   ᥬ  ࠬ
ࠢ㯭     ⥬,     ᮢ⭮ ࠡ
"ࠧ" - ᮢ⭮ ᯮ. ⭮,  ,  ,
᫥  ᪮ 몠,  ⮣ ⨫ ணࠬ-
 㤥 "ࠡ  饩 ",  ஥  㤥  ᯮ짮
.
   ਭ ,    ⥪    ᮮ⢥騩  ⨫
ணࠬ஢, ᯥ稢  ७ᨬ  ࠫ ਫ
 ⠡㥬 (騢) ᫨⥫쭮  ⥬.  -
,  ࠫ ணࠬ, 祭 ᫥ ࠭樨 ஬
࠭ SPP,   믮  ࠭樨  ⥬  SPP  
ࠧ ᫮  ஢.  ணࠬ      
樨 ணࠬ   ⥫쭮 ଠ樥   ᢮⢠
ணࠬ,  㯭 ,  ஢ ⨬樨 ண-
ࠬ.
      ணࠬ஢:  "। ᮮ饭" ࠪୠ  -
᫨⥫ ⥬ , ࠬ   㣨 ஢
㯭 ⮫쪮    "। ᮮ饭",   -

                                - 3 -

   묨 ந ᯥ樠묨 ४⨢  ᮣ-
ᮢ ⮪ .   SPP1000 ॠ    ।
ᮮ饭   PVM (Parallel Virtual Machin)  MPI (Message Passing
Interface)    ᯮ짮 ᮢ  ⥬.    ⮬
砥 ࠧ饭 ணࠬ    浪   ணࠬ-
 ࠢ  ࠧ.
   짮⥫    ࠧ   ਢ⭮ (private) -
  ⮣, ⮡  룮  । .

                2. ⥪ 楯樨 SPP
    ⥬  SPP  HP/CONVEX  楫 ⥬ ࠫ-
 ஢ প 㯥᫨⥫쭮  魮    ப
 ਫ. ᪨,  窨 ७ ਫ, ⥪-
 ⥬ SPP ᮮ⢥,  䨪樨 .  (M.J Flynn),
MIMD (⢥ ⮪ , ⢥ ⮪ ), -
  ࠧ塞 饩 .
     쭮 䨣樨  ⥬ ᮮ⢥ 㧥(㧥) -
⨢,  ᮤঠ騩 4-64 ,  ⠡㥬 ⥬ SPP
ᯥ稢   㧫  ᨬ쭮 (16 㧫) -
䨣樨.   ⥪ 㧫 ॠ    ᨬ筮
⨯஢  - SMP (Symmetric MultiProcessing),   ன
  㧫 㯭  ࠧ塞,   㧫. 
ࠬ  㧫       ந 
 ६; ७⭮ , .. 祭  -
஬  ᠬ ᫥  訢  ᯥ稢 -
⭮.   㧫   ࠢ㯭.      
ᯥ祭  ७⭮    ⥬,    祬 
 㧫,   -㧫  믮   ⥪-
୮ 奬  CC-NUMA,  ॠ饩 -७   -
த .
    ਫ 짮⥫   믮    ६  
  ⥬,  ⠪     ⢥, 㡪-
,  뤥塞 ᯥ஬. 㡪    ந-
 롮ન ஢ ⥬, ⥪ SPP ন -
  ⨫ 饭  ,  ᨬ   ࠧ饭  -
.  ⭮,  砥,  ࠫ ꥪ , ᣥ-
஢ ࠬ SPP,  믮  㡪 -
쭮  䨣樨   ࠭樨.  ⥬ ணࠬ஢

                                - 4 -

।⠢ ⠪ ।⢠, 騥 짮⥫ ⨬஢
冷  믮 ࠫ ਫ  ⮬  㡪-
.
     뢠  ᮡ ⥪ CONVEX SPP1000,  襩
 ᥬ⢠ SPP,    묨  窨 ७
ணࠬ  ᮡ,    ந⥫쭮 -
⥬  ᨬ  ᮡ⥩ 믮塞 ணࠬ. ⥬ ਨ
SPP1000  ।⠢  ᮡ  ᫨⥫ ⥬,
ᮤঠ騥 4 - 512 ய஢ PA-7100  ஢  Hewlett-Pac-
kard  , ꥬ 128  - 512 G.
      ᠭ ⥪ SPP1000  뤥 ᫥騥  ஢:
 , 㭪樮 , 㧥, ଠ.

             2.1.  
     ਢ ࠪ⨪  Hewlett-Packard PA-RISC
7100 CPUS.   ⥬ SPP1000 [ ].
       - 稯 CMOS(........), 쬨஭; -
ন: 550.000 ࠭஢, 504 ⮢ PGA,    .
      :  ꥬ 1 , 横  9 ns, 64-⮢  -
 ;  800 /ᥪ ᪮ ⥭;  400 /ᥪ ᪮ .
     ࠬ    ࠪ⨪  ; -
 . ப 襩  ࠧ  32 , ᪮ -
饭   - 10.
     :  16 - 32 ࠧ來 楫 ᫠   /  ,  32 -
64 ࠧ來 ᫠  饩 ⮩  ଠ ⠭ IEEE 754.
     ந⥫쭮 - 0.2 GF (200  権  -
饩 ⮩  ᥪ㭤).
    ଠ  ணࠬ  砥,      ࠡ  
SPP1000    㯭  ਫ, ࠧࠡ⠭  -
ய P7100.

             2.2. 㭪樮 
       㭪樮     ᫥ :
                                 
             60  <128       1 1 1 1
     ^      Ĵ       Ŀ Ŀ
     |      1 2       CPU1 CPU2
     Y             9  9 

                                - 5 -

   Ŀ       Ŀ          
   SCI<>  <>  
   |                   
     Y                               
           Ŀ
                - -        
           
:
     CPUi -  ய 7100, ࠧ騥 饭  
᫥⥫쭮 १ ᢮ .    樨  ⥬
 㭪樮묨 ,  騬   -
.
      - 60 ᥪ㭤   ꥬ 128 - 512 , ࠧ-
   2 .   ४䨣樨 ⥬ 㭪樮 
 ࠡ ⮭,   㡪,  ,   饬 砥,
㭪樨    ࠭  । .
      -  ,  ᯥ稢騩  CPU ᯥਧ 롮ન
    .    㧫  裡  砥  
  㧫 .
      - ஫ ,   ,  뢠騩 
   㭪樮쭮        ⠫쭮  
⥬.
     SCI -   -㧫 , 㦠騩  ࣠樨
裡  㧫.
     - - ⨯⮢ 騩 , ᯥ稢-
騩  "  ".
     㭪樮쭮    易   ⠫묨 ⥬
१ ,   १ ᢮  -     
   -,  易   (१ ᮮ⢥騩
).

                    2.3. 㧥
     㧥 SPP1000  -    ⨯  ࠧ塞 ,
ᮤঠ騩 4 㭪樮 .

              㧫:
   Ŀ Ŀ  Ŀ Ŀ  Ŀ Ŀ  Ŀ Ŀ
   CPU1 CPU2  CPU3 CPU4  CPU5 CPU6  CPU7 CPU8
         
                               
                       
                                                   Ŀ
 Ĵ  ⥬  
       55 - 1.25 /ᥪ                        /뢮 
 Ĵ              
                                                   
    C           C           C           C   
    TĿ    TĿ    TĿ    TĿ
    I    I    I    I
                        
   Ŀ  Ŀ  Ŀ  Ŀ
   ७멳  ७멳  ७멳  ७멳
                                         
         
    V               V              V              V
  |       ந쭮 ७⭮ 裡     |
  |       (CTI) 600 /ᥪ   裡 㧫         |

     㧥 ন 128 ,  256,  512, 1024  2048  
 ६ 㯠 60 ᥪ.   䨧᪨ ।  ६
⠬,     cন  .   ஢
    ࠧ    饬  -.
/뢮  㦥 楤  뤥  -.
    ࠬ ᯥ祭      㧫  56-60 ⠪⮢,
  饭  "ᮡ⢥"  㭪樮쭮  ,  ⠪
  ᥣ ந १ .  㧫 ࠧ 
8   (       㭪樮  ).
    ⠪   । ᢮  64  ⭮  ப
⥢     8 ⠪⮢ ( ६ ᪠,  ஥  
ࠧ饭 ).  ७⭮   㧫 ᯥ-
稢 ⭮.

                2.4. ⥬ SPP1000
   ⥬ SPP1000       ( 16) -
,  ࠧ ७ ।   ⥬  -
/뢮.    䨧᪠    䨣樨  㧫 

                                - 7 -

⨣ 2 ,   ᨬ쭮  䨣樨    -    32
.  㧫 ⥬   裡  ᮡ  ( 
㭪樮 )  ଠ樮 裡.
     ⥢ 䥩 㧫 ⮨  -᭮ CTI (७-
 ந쭮 裡),  ᯥ稢饩 ப,    -
প,      㧫 (600 /ᥪ).   CTI
 , 뢠 ᮮ⢥騥 㭪樮   -
㧫 .  饭   㣨 㧫 ᯮ-
 CONVEX ⥬ ⠡㥬 ७⭮  䥩,  
१   㧫 裡 ⠢ ॡ㥬  
ᯥ樠쭮 뤥   㭪樮쭮   -  
CTI-(७  ),  㤠  롨 १ 
 浪.    砥 ᯮ ⥬ SCI  (Scalable
Coherent Interface - ⠡㥬 ७ 䥩).  ।-
  ⠭⮬ IEEE 1596-1992.   䥩  䨧᪨  ᠭ
  18 ࠧ來 ࠢ ECL (Emitter Coupled Logic) -
,   ஡  ⮩ 250 .   ᮥ
ᯥ稢 16 ࠧ冷    ࠢ ᨣ.  -
뢠   ।,  ⠪    ஭  ஡  -
ᮢ.
    CTI-     ।,  ࣠  
ᮮ⢥饣 㭪樮쭮  (ࠧ  CTI-  -
  ⥬  ஬),   ப ᮤঠ 64  - 
ப ୮ .  ⥬ 楤୮ 䥩 ᯥ-
稢 ⠪ ७⭮ 㧫 襩.  ७⭮  
⮬ ᯥ稢   ⥬ 쭮 ࠧ塞 ।-
  㠫쭮   GSDVM (Globally Shared Distributed Virtual
Memory).
      ࠧ,     ணࠬ , ᯮ㥬  -
,  ᥣ  (ਧ)   ࢮ  ஢,  
୮ ,  ᫨  ࠧ饭   㣨 㧫, 
室 ⠪ ஢   ண ஢,  ⥢ CTI-.

               2.5. ᫮   SPP1000
    ᫮ (interleaved memory) - ⨢ ,  -
ன  ᯮ 孨 । ᮢ  㬥襭 ६
 饭  .  筮  믮   -
奬 (  )  128   1    ன⢮ -

                                - 8 -

ࠢ   .  ᫥ 饭  -  ⠪
,   릤  横 饭  , ०
祬      㣮 ᫮  ⮣ .  ᫨ -
 ⥬ ⮨,   ࠩ    ,   饭 
  ࣠ । ᮢ :    
 뫠  ࠧ   ⠪,   ᫥ 饭 -
  ⭮ ,   ⥬   ⭮ -
,    .    筮 ணࠬ  ᫥-
⥫쭮     ᠬ  ,  ।㥬  (᫮)
  ६ .
     ᪠ ⨢  㧫 SPP  2   
    4- 㭪樮   ᫮ ஢  -
樥⮬ 8,   ᥬ ᬥ 饭   㧫 㤥
ந  ࠧ .
    楩 ࠭    㦠 64  ப, 祬
ᬥ  ப ।    ᮮ⢥⢨  ਭ樯 "-
ᥫ"  蠣 ,     奬:
  ------ ------  ------ ------  ------ ------  ------ ------
   L1     L5      L2     L6      L3     L7      L4     L8
   L9     L13     L10    L14     L11    L15     L12    L16
   ...    ...     ...    ...     ...    ...     ...    ...
  1  2   3  4   5  6   7 8
  ------ ------  ------ ------  ------ ------  ------ ------
    1           2           3         4

      ⠪  樯 ᫮ ᬥ ப   ࠧ-
饭   ࠧ 㭪樮 ,   ᯥ稢  ᡠ-
஢ ࠡ ⢮ ,  ண ஢ SPP - CTi-.
    ஢  32  ப  ⠪,   -
 ⥢  ᮤন  ப ୮    -
 ୮  ᯮ     .  ᫮
᪮   ,  ᪮쪨 ࠬ ६
⢫   뢭  ( , ࠭騥
  ᬥ 祥 ).


                   3.  
    (cache) - ᯥ樠쭠  ୠ ,   ன  -

                                - 9 -

     ᯮ㥬 祭   ணࠬ ᥣ-
⮢.     㡫 ᮤন ⨢ ,   
ந室 饭  䨪 ᮮ⢥騥  . -
   頥    - ,   㥬
ଠ 室  ,   ࠧ  㯠    -
 . ᫨ ଠ樨    -  ஬,  믮
   .  ⮬ 㦭 ଠ 뢠 ⠪
  , ⮬, ᫥騩    㤥 ந .
 ,     ७ᥭ () ()   
      - ப  (cache line)  ᮤঠ
᪮쪮   ,  㢥稢 䥪 ஢.  
    ஡ ୮ ᯮ짮 -
 - ৠ㧪 ,   ந   ⮬  室
뫪  ⨢   .
     㣠 ஡      ୮ ࠡ  饩
,  ᪠ 饭      
⥭  ⠪        ᪮쪨 ஢,  ஡
४⭮ 饭  .  ஭ 饭  騬 -
    ᪨ ᠬ 蠥 ⮬ ᥬ஢  ஢
᪮ ணࠬ஢.  冷 ᯮ짮      
⮬    থ      ࠫ쭮 ࠡ ஢
ᯥ稢 ।⢠, ᯥ稢 ⠪ 뢠 -७-
.      ন ७묨 ⭮⥫-
  㣠 ⠪ ࠧ,  ᫨ -  頥
    ப ,   "" ,  ᮮ⢥騥
  ६.
       堭 ᯥ祭 䨧᪮ ७⭮  -
⮨  ᥭ ਧ "-⢨⥫쭮"      
ப ,  ४   ஬;  ⠢-
 㣨 , 㦤騥   , 㧨 ᢮ ப
   ,   ᠬ ᫥ ந   .
 ᯥ稢 ७⭮  ᫥騬 ࠢ:
   1.     ६    ⢮  
-ப  ࠧ  ( ப     ६  
᪮쪨 ஢).
   2.     -ப  ப  ३   -
⥫쭮   ,  ஢襣 .   砥,
  㣨  ⮩ ப    㫨஢  (㭨⮦-

                                - 10 -

).
  3.   -ப   ᠭ   
०   㫨஢ (  ஥,   ,  ᮤন
  ࠢ אַ   짮⥫).
     -७⭮    ਢ  㢥祭 ६
饭  ,  ᪮ 堭 ࠢ    
ਤ ਡ  㫨஢     
 ०, 祬  ࠧ ஢ ⮩ -ப  .
     ணࠬ  ७⭮  砥,    ᫨ ࠫ쭠
 ணࠬ 뫠      ,    -
,  ஥  砥,  㤥 ᫥ 祭,  ᠭ 
⮬    ணࠬ.
   䥪 ஢   ࠧ  ६ 㯠  -
⨢    ;   ࠧ  ,  ப   
⬮  ; ⨫ (ॣ୮) 饭  .
    SPP1000 ᯮ   ஢  ஢:    
 ⤥        ணࠬ  1   - 
ࢮ ஢()   ண ஢ - ⥢  CTI-
  ஢  饭      㣨  㧫 ( ⥬
SPP1000,   ᪮쪨 㧫).

                 3.1. ப  
      ⮣,  ⮡ 㢥 ᪮ 饭  ⨢ -
,  , ࠭  ⮩      
   ,   ⠪,     CTI-, 祬
  ந  ஢         
 ᥣ⠬,  ࠧ஬  -ப.  ப  -    
,    ७ᥭ () ()   
 ,  祬  砫  樨  ⨢ -
     䨪஢.      ஢ 
⨢  ந ⠬ - ப  32 ,  -
ࠢ  0  .
       ண ஢  ஢ 饭  ⨢ -
 㣨 㧫 ( ⥬ SPP1000,    ᪮쪨 -
㧫) ᯮ  ⢥   ⨢  ⥪饣
㧫,    ࠧ  ४⨢ .   ப CTI--
(CTIcache line) - 64 ,..  64   ६  -
  譨  㧫    CTI-,     室.  ப

                                - 11 -

CTI- ⮨   ᬥ  ப  ୮  (processor
cache line),   ࠧ஬  32 .   譨   -
,    ᮤঠ騥      ,    ७  १
CTI-.  ᫨    ᮤঠ   㣮 㧫,   
᭠砫 ७  CTI-  栬 CTI,  ⥬ ।   -
 , ᫨  㦥 ᪮஢,     CTI- 
  㧫.   ࠧ,       SPP1000,
饩  ᪮쪨 㧫,    ஢.

               3.2. 奬 ஢  ⥬ SPP1000
        ⥬  SPP1000  ᯮ 奬 ஢ 
祭  (write-back)     ⮡ࠦ  (direct-map-
ped).
    ⥪ -   ⮡ࠦ ࠪਧ  -
稥  ᨬ  ᠬ ୮  ⨢ ,
祬    ᮮ⢥    ⨢  ,
  ࠧ  .      ⮡ࠦ  
 । ꥪ⮢   㭪樥  㠫쭮-
  ꥪ⮢.    SPP1000   ୮  
      ࠡ  㫥:  cache_address=MOD(virtu-
al_address,2**20) MOD - 㭪,   ⮪   vir-
tual_address   2**20 (2**20=1048576=1 ).   ࠧ,  
 ꥪ  -  訥 20   㠫쭮 .  -
 奬 樨   稭 १㧪 ,  ᫨ -
⥫쭮 ᯮ㥬 ஬  ᯮ  ⨢
  ᠬ,  ࠧ  .
      祭 c  । 冷  -
⨢    ᮤন .  ⮩ 奬,  -
   ஬ 㠫쭮 ,   뢠 ⮫쪮 
 ( ᮮ⢥饥  ᭮   ).    
ᮤন ⨢  ந:
     -  ⠫ ப    室   ᯮ짮-
  ࠡ  묨 ⨢ ,    ⠪ -
⢥ ⮩ ப ;
    - 樨 뢮;
    -  롮થ ,  ࠭饣    ,  ᮮ-
饬  ⨢    㣨  ⠬,  
㯭  . ⠫ ப ୮   

                                - 12 -

樨   ப 㣨 ࠬ ᯥ稢  -
 ७⭮ 襩.

         3.3. 堭 ঠ -७⭮  SPP1000
     ⥪  SPP1000  ᬠਢ  ஢,
  ஢ ᬠਢ  ⤥쭠  -७⭮-
.   ਣ㧫   ᯥ稢  ७⭮  
஢  ன , 室  㧫.  -
㧫  ᯥ稢 ७⭮    -
 ⥬.
      㧫    ন ⥣    64
 ࠧ鸞   64 ⮢ 䨧᪮ .   ⥣ -
᪨ 室  ⮩  ⭮ ,     ⥬,  
 뢠  ⠢ 㯭  㧫.   ᮤন -
ଠ,  뢠 32 ࠧ來 -ப :   -
 ⨫  ⮩ -ப /    .
஬ ⮣,   ⥣    ᮤন  ଠ    64-  ⮢
CTI- ப,  窨 ७  ⥬  ᮤঠ ⠪ -
,  ,  ਬ,   㧥 ⨫   -ப
/  㧥  .   ⥣ ᯮ ᪫⥫쭮
⥬ ࠢ    㯥  ਪ ணࠬ
஢ 짮⥫.
     ᬮ  ⥪ ࠧ  㧫묨  ᮥ-
ﬨ  㧫묨 ᮥﬨ,  窨 ७   -
 ࠫ  ਪ ,  ࠡ饩   -
.     饭    ஬ 㡪-
     , 뤥  㡪.
     ⥣  ஢ ७⭮ ⨢稢    ⠪
⥯,  -७⭮  ⭮襭 -ப  -
ন   砥 ᯮ짮 ᪮쪨 㧫   ᪮쪨
஢   㧫. 㧫 ७⭮ ন
  易 ᯨ᪠,  ᮤঠ饣   ࠧ鸞 ⥣.
 㣮 窨 ७  ,    ࠧ ⥣ ।-
⠢ ᮡ । -⠫.  SPP1000 ন-
  吝 ᯨ᪨ ⮬᪨,    ⮣,   -
  뢠 ࠬ.

             3.4.ࠢ    

                                - 13 -

       ॡ   㦥 , ।-
 ப ⨢ , ᮤঠ   , -
 室   . (  (data item) --
 㯯 ,  ࠡ뢠   楫:  ,  
,  ᨢ.)  ப  ᮤঠ  ⠪    -
쪮 ⮢ ,  ᯥ樠쭮  訢; ᫮ -
 ꥪ⮢   ࠧ  ᨬ  ଠ  㥬
ꥪ⮢   ࠧ ப .   ᫥ 饭  -
짮  ।⢥  , ᫨   室 
㦥 ப .  ⠪,  ६饭  ()  (-
) ⮫쪮   ப , 樨 ⥭  , 뢠
஢ ᢮ ࠭ - ந ९ ᬥ .
   堭 ࠢ  (align)    ⥬  ࠡ⪨  - 
࠭   ⮢ ,  騥  ᪮쪨 , -
 ࠧ,  ⮡ ᮮ⢥騥    ⮢ -
  ⨯  (  ࠭);  ਬ, ࠭-
 塠⮢ ᫮ ⠪, ⮡ ᠬ   ᥣ 室 
⭮ . ࠢ (address aligment) - ࠧ饭 -
ࢨ㥬  ணࠬ  ⥩   㤮  믮 -
 ࠭.᫨  ࠢ ࠧ  ,   -
塞 ﬨ  묨 .
   ࠢ ᮢ    ࠭ ப   䥪-
⨢ २ᯮ짮   横, ᮡ   -
  ⨬. 騥  ࠢ  ࠭
CTI- ⮬᪨:
   - ,    COMMON   ࠭,
   - , 뤥  ᯮ짮  ᠭ ALLOCATE 
࠭.
   쪮    ᯨ᪥ ꥪ⮢ ,  ᠭ  
᫥ ᯮᮡ, ࠢ  ࠭  ⮬᪨.

           䥪⨢ ᯮ짮 㯭 -
,  騩 ࠧ    ᨢ, 뤥 
  㪠  ᯮᮡ,      64(ࠧ 
CTI-  ).
      ࠧ ᨢ,  ᫥  ,  ᯥ稢
ࠢ  ࠭   ,  ᫥    -
.   ६   ᠭ ᫥ ᨢ.  ᠭ

                                - 14 -

ᨢ  ᪠஢ ४ ᯮ  浪 뢠 
⨯ . (ਬ, REAL*8 । REAL*4.)
    饭  (aliasing), ,  ன  ஬ -
⥪     ꥪ 㯥  ࠧ묨 ,  -
஢ ࠢ .
     ਭ㤨⥫쭮 ࠢ  ࠭ CTI-  ᯥ᪨
᪠ ६  ᨢ, ਬ ४⨢  -
࠭:
   C$DIR ALIGN_CTI (namelist),
  namelist - ᯨ᮪ ᨢ () ᪠஢, ࠢ  -
 CTI-.
     ࠢ  ࠭ CTI-   ᨢ (
  ᪠஢)  ணࠬ, ਬ  : - align cti.

                  3.5. १㧪 
   १㧪 (thrashing) - ⠪ ﭨ 㠫쭮 ⥬  -
,  ஬ 稢 ⠪  ६   ப 
    ,   ⮫쪮 ய 䥪 ஢, 
ᯮ짮   ࠡ ணࠬ.
    ୮  SPP1000   ⮡ࠦ 㭨 ꥪ-
    ⮦⢥  , ᫨ 訥 騥
20   㠫 ᮢ ᮢ.  ᫨  ⠪ ꥪ 
 뫪   横,      १뢠 
    㣠.  ᠭ   稭  -
筮   ண 㯠  ᭮ ,   ⭠  -
㧪  (cache thrashing).
   १㧪 ୮     ⥬  SPP1000,
    㥬 ꥪ  ࠧ饭  ⨢  
ᠬ,  묨 1 .   ࠭ १㧪   
ᯮ짮    ਥ ணࠬ஢,  ᬠਢ 
࠭. ,  ணࠬ:
   REAL*8 ORIG(65536),NEW(65536),DISP(65536)
   COMMON /BL+K1/ ORIG,NEW,DISP
   .
   DO I=1,N
     NEW(I)=ORIG(I)+DISP(I)
   ENDDO
    ⮬ ਬ  ᨢ ORIG  DISP  १뢠

                                - 15 -

     ப   1 ⭮ . ᪮ ᨢ -
ᠭ  COMMON ,    ࠧ饭  ᬥ   
浪 ᠭ.   ᨢ  8 , ⠪ ࠧ
 ᨢ  0.5  (8*65536=524288 ). ⥫쭮 -
 ORIG  DISP,  ᯮ  ,   ,  -
  (訥  20   㠫 ᮢ ),   
  ᨢ  ⮦⢥  .
     ⥫ 横 믮  ᫮,  ⥪騥    
ᨢ,  ORIG    DISP,    ७ᥭ  ᭮  
. ᪮      ,   ,
ᠭ ᫥,  (맮 १㧪 ப ) ।-
騩.  ୮     32     
 १㧪.
     䥪⨢ 믮 襮ᠭ 横,   ᯮ㥬
  ப  (  砥 3 ⥫  -
 REAL*8)  ⠢     ,       
ᯮ짮  ᫥  横. ᪮ ORIG  DISP -
㦠    㣠, ⠪ २ᯮ짮 ; -
  ப     ⠬ ᨢ ORIG १뢠  
ப  ᨢ DISP  .  ப  १뢠 
 樨;  筮  横,   ⮬,  ப  -
⥫쭮    १ᠭ    ,      㥬
      ᯮ짮.  ᪮   ᭮ 
⥫쭮 ,  祬  ,   ᨫ쭮 ᭨ ந⥫-
.,  ᫨  १  ᨢ NEW    ᭮ 
祭  砫 㧪 । 樨,  १㧪
 ᨢ ORIG  DISP  襢 ᠬ ᨢ NEW.
    ஡ 蠥 㢥祭 ஬⪠    ᨢ-
.      ᤥ   㢥祭 ࠧ ᨢ,  
⠢ ᨢ - "ப".
   騩 ਬ  ਬ "ப":
   REAL*8 ORIG(65536),NEW(65536),P(8),DISP(65536)
   COMMON /BLK1/ ORIG,NEW,,DISP
   .
    ᨢ P(8) ᤢ   ᨢ DISP  64  -
  ᮢ,   ࠢ  ᨢ ORIG.  ⮢
 묨 ᠬ ᨢ,  ⮦⢥  .
 横  ⪫뢠 १    ,   -

                                - 16 -

 ப   㤥 ᯮ짮 .
     ⮨  8 ⮢   64    (8*8 ), 
। १㧪  CTI-, ⠪   .᫨ 
ᨢ   ࠧ ⮫쪮 32  (4 ),    ।⨫
  ॣ㧪 ୮ ,     ᬮ  ।
१㧪 CTI-, ᪮  ப  ࠧ 64  (-
 ᨢ ࠧ饭   譥 㧫).
   ୠ⨢ 室 砥  㢥祭 ࠧ ᨢ ORIG
  ᨢ  NEW  8 ⮢ (64 ),    ᫥饬
ਬ:
   REAL*8 ORIG(65536),NEW(65544),DISP(65536)
   COMMON /BLK1/ ORIG,NEW,DISP
   .
   .
    NEW  㢥祭  8 ⮢,   ᯥ稫  室
ப    ।饭 ᮢ ᮢ  ᨢ DISP 
ORIG.
   ⨬,   "ப"    8 ⮢  ,   
।⠢  ଥ ᨢ ,     ७ ᨢ
NEW,  ⮬,       뫮  ணࠬ.(᫨    뫨
뫪,      襭 ஡ १㧪)
    ,    祭 饭 ਬ 襣 .
  設 ਨ SPP1000 १㧪     ,
   ,     뫪  ⥫  横-
,   楫 ᫮ .( (data item) - -
 㯯 ,  ࠡ뢠    楫:  ,
 ,  ᨢ.)
   १㧪     ࠡ⪥ ,  ᯮ-
  COMMON ,  ⮬ 砥 稭 ॣ㧪 㦨 -
⥫쭮 㤭, ᪮ "䫨騥"    ᠭ 
㤠      㣠  ६蠭  ஭ ࠣ⠬ -
.⨬ ஢ 横(loop blocking optimization),  ஢-
 ஬ 㤥 ࠭ १㧪   
横,    .
   ᨢ   ࠧ୮,   饩 ⥯ ,
 ,   易⥫쭮 ࠭ ஡ ᮢ襭.ᯮ짮-
 COMMON   ࠭ ⠪ 㤥 , ᪮ -
 筮  ﭨ  ⠬  , ⥬ ᠬ, -

                                - 17 -

 筨 饩 ॣ㧪  砫 믮 ணࠬ.
       ᯮ짮   ᯮ짮  த  
CONVEX CXpa.
    -  㠫஢ ⥬ ஥  䨫  ணࠬ
(ଠ樨    室 믮 ணࠬ) - 䠩.  
ᯮ짮   ந⥫쭮  ,    ।⠢
᫥騥 :
   -  쭮 ࠧ饭 ( ࠧ饭  ।  㧫,
CTI-  ᯮ) - ᫮ "஬客"   ६ ,
   -  㤠 ࠧ饭 ( ࠧ饭  ।  -
, CTI- ᯮ) - ᫮ "஬客"   ६ ,
   -  쭮  㤠 ࠧ饭   -  ᫮  "஬客"
  ६ ,
   - ।䬥᪮ 祭 ६  প    "஬"
.
                    4. 㡪
      SPP1000 ᫨⥫  ᪠   믮  
㠫쭮 設,  뢠 㡪ᮬ,  ࠢ ᢮
஬ ஢.   ⥬  ࠧ  -
 ஢ SPP1000    ᪮쪮 ᮢ - 㡪-
ᮢ,     ᮤঠ ந쭮 ⢮ ஢,
ࠬ   믮 ਫ 짮⥫.  -
让 㡪 砥   ( 㧫 ),  -
 쪨 -  .  , 㭪樮  -
 ᮤঠ   ୮ ,   㡪-
     . 㡪 䨣
।⢮ CONVEX Subcomplex Manager'.(⥬ ஬).
       ஢  㡪  ⥬-
  ᯮᠡ    SPP1000  ᯥ-
䨪  ਫ,    䥪⨢  ᯮ짮
⥬ ᮢ. ਬ,  ࠫ쭠   筠  ६-
 ਪ ணࠬ  믮    ;  ண-
ࠬ, ᮤঠ ᮪஢ ࠫ,   ।
 믮  ᪮쪨   ࠧ  㧫.  -
 㡪 ନ  ࠢ  १㧪 -
 ⥬,   ⠭ 䨣樨    ⮬᪮
⢫ ਮ᪨   ० ࠡ SPP1000,  -
ᨬ ᫠ 짮⥫, ⨫ ࠡ ਫ,  ࠡ 

                                - 18 -

  室   ... ⠪, ᫨⥫  㦠 
⥬  믮  㠫쭮 設 -   ண
㡪.     㡪 ᯮ짮  
 ७஢  ⨫  ᯮ짮.

           4.1. 롮 䨣樨 㡪
    㡪      ஢  ,  
   ଥ SPP1000.
㡪    ⢠  ⢠ 㧫.
  ஢ ६  ਭ ⮫쪮  
㡪.        ᪫祭  -
   .  㡪  ନ஢, 室 
ॡ⥩  쭮  㧫.  㡪  -
⠨ - ⢨ 室 ᮢ,   ⮩ -
ᮢ, 饭  . ७ 㡪 㤥 ⮬᪨
⨢஢ ⠨訥  ,  믮騥    
㠫쭮 設.
     ஬ ⮣,   䨣஢ 㡪ᮢ,  ⠭
ᯨ᮪ ࠧ襭 㡪 (permissions),  ।⠢ -
 䠩 䫠 - ࠧ襭     ਬ   ⤥-
 짮⥫,   㯯   饬 ஢.  襭  ⥭
䫠 㡪  짮⥫   䨣  -
;  ࠧ襭       ࠡ稥 ,
騥 । ᮢ 㡪  ᮮ⢥⢨    -
浪  ᯮ塞 ᮢ;  ࠧ襭  ᯮ  -
᪠   㡪.   䨣  㡪
 ⮫쪮 ⥬ .

                 4.2.  㡪
     㡪  ⠪ 䨣஢  ᯮ짮
CONVEX  Subcomplex Manager.  ᪠  㡪 ⮨ 
GSM (쭮 ࠧ塞 ) 쭮  㡪   -
஢,  ࠡ   㡪ᮢ,   묨 
९.  ணࠬ, 믮  祬   㡪-
,  ।  ᮮ饭  ந १  (socket - 
窨  裡  ᠬ),    १ CTI ,  -
  裡  㡪ᠬ.     ,
祬   㧫  㡪. 쭠   -

                                - 19 -

,  㡪 ⠨ (   㦥 ),
 ਡ ⠬,  16 , 㡪   ਤ-
   㧫,   ᪮쪮 ஢ ண 室
 ⠢ 㡪.   饬 砥,       
 ࠧ ⥬ ஬ SPP1000  ࠧ:
   -"__㧫" (hypernode_local),
   -"__㡪" (subcomplex_global),
   -  CTI- (CTI-cache).
     , "쭠__㧫"  쭠   㧫
 㯭  ⮫쪮   ஢ 㧫   㯭 㣨 -
.   ᯮ ᯮ塞 㫨 ਫ, SPP-UXIX, -
  짮⥫,    "ਢ묨".  ,  "-
__㧫",     ࠧ    ,  "ਢ-
__"  (thread-private),    㯭  ⮫쪮  
 ( ।),     ,"ਢ__㧫"  (no-
te-private),   㯭 ⮫쪮  ᮢ, 믮騬 
㧫.
     , "쭠__㡪" 㯭   CPU, -
  㡪 - ᮢ㯭 ஢ SPP1000 ( -
    ࠧ 㧫),  뤥 ஬ ⥬
 믮 ਫ  짮⥫.  ,"쭠__-
",   ࠧ  " ࠧ塞" (near-shared) ,
 ᯮ   ᬥ ᥣ  㧫   -
㯭  ᥬ ࠬ   㧫  㡪 ,   "
ࠧ塞" (far-shared), । ࠭묨  -
  4   ⨫ "ᥫ"  ᥬ 㧫 㡪.
      CTI-  ᯮ   ࠭   -
, ਭᥭ   㣨 㧫.   ⥬ SPP1000  CTI-
   䨣஢  ६ ᪠ ⥬  ࠧ CTI-
     㧫.

                 5. , 
    (thread)  - 楤   ,    
 㯭 樨  ணࠬ.     ⥩,  
  믮  ࠧ  ,  ⠢  
. , 䠩, ᨣ  㣨 ਡ  筮 ᮢ-
⭮ ᯮ ﬨ  .  ᮧ  㭨⮦-
 ﬨ,    ⮬᪨ ᣥ஢ CON-

                                - 20 -

VEX ࠬ, ⠢  ४⨢   室-
 ⥪,   ணࠬ஢  ᯮ짮 맮 ᮮ⢥-
 ⥬ ⥪  ᥬ୮  몠.
       SPP1000,  ᯮ騩 ࠧ塞 , -
  4  ⭮  㠫쭮 ᭮ ࠭⢮.   ࠧ
⠪:  3.75  ᯮ  塞 ணࠬ ⥪, -
  ,  ⠢訥 0.25  ᯮ SPP-UNIX.  
 ࠨ ४⨢ .
    㠫쭮 ᭮ ࠭⢮,  㯭  㡪, -
  㭨,    ।࠭ ,  믮塞  
㡪,   㯠   㣨 㡪ᮢ.    ⮣,
㠫쭮 ᭮ ࠭⢮,  㯭  , 믮-
饬  㡪, ⮦ 㭨쭮;   ⢥ 4
⭮ 㠫쭮 ࠭⢮,     㯠  -
  㣠.      㡪ᮢ ࠧ  -
㧥,  ࠭ 䨧᪮ , 뤥  ⢥ 쭮
   㡪,   㭨묨,  ।-
頥 ᮯ୨⢮   .  , 䨧᪨ ࠭,
易  , "쭮__㧫"(hypernode_locai),  -
 CTI-, ᮢ⭮ ᯮ ⢮ 㡪ᮢ,  
砥,    ࠡ   㧫,   ਢ  -
୨    . ᪠  CTI- ᮤন 
  ࠧ塞 ,      䨧᪮  
㧫,     , 믮騥  㧫.
     믮  ணࠬ   ᮯ୨⢮ (contenti-
on) - ६ 饭 ᪮쪨 ⥩ (ᮢ  ⥬)  
  ࠧ塞 .  ୨⢮  ,-
,   樨 横, 㫨饣 ᨢ, ࠧ 
訬  ᫮ ஢.   襬 砥,  ,  믮騥 ᢮
⥦ 権 横,   ⢫   , ⠪ -
ࠧ,     ᮯ୨⢠  ஢ .   襬
砥,      砫쭮 ⠤ 室    
    ⮬  , ᫥ প, 맢 砫 -
୨⢮,   㤥 ࠧ  ᥬ . ᫥-
騩  ਬ    横,   ண   
⢫  祭 訬 ᫮  砥  ᮯ୨⢠.  
ਬ ᨫ쭮 饭,   㥬 楯樨 ਬ 
ᨢ  稭.   ணࠬ:

                                - 21 -

   REAL*8 A(12,12),B(12,12)
   N=12
   DO J=1,N
     DO I=1,N
       A(I,J)=B(I,J)
     ENDDO
   ENDDO
   ।,   ᨢ    ࠧ饭  ᭮  ᬥ,
祬 ᨢ  稭  ୮  0  CTI-  0  
 0.
   ।,   ࠭ ᯠࠫ 横 J   -
   㡪. ,  㡪 㯭 4
,  ⮣ 横 J 㤥 ࠧ    横, 
 3 樨.    横 㤥   ⤥쭮 -
,  CPU0-CPU3.
    ਬ ࠧࠡ⠭  饭 樨.    ⢨⥫-
,  ⨬   ᪨ 롮஬ ᬮ  । ᫮
権  ᫮ 㯭 ஢ ⮬᪨  ᪥ ⮣
横  ० ᫥⥫쭮 믮  ᯥ  ᯠࠫ-
.  室  ⢫ ᯠࠫ  -
 砥   ⥫쭥 砥 먣.
    ⮣,  ⮡ 믮 ⥫ 横 I,  ᨢ     
祭    饭  .   , 騥
横 J,    ᢮  ᨢ ᪮॥ ᥣ -
६.  ⮬:
   CPU0  室  (1:12,1:3)     (1:12,1:3),
   CPU1  室  (1:12,4:6)     (1:12,4:6),
   CPU2  室  (1:12,7:9)     (1:12,7:9),
   CPU3  室  (1:12,10:12)   (1:12,10:12).
 砥,  CPU0 㤥   ᨢ   , -
   (1,1),
   CPU1 - 稭   (1,4),
   CPU2 - 稭   (1,7),
   CPU3 - 稭   (1,10).
   ᫨   ᯮ짮 ᫮ ,    CPU ⠫
 訢 ᢮  ᨢ ६      ⮣  
. ⥬  ࠧ襭  䫨  ᮢ ந  
CPU  ।.   ࠧ,  প ண  ।  

                                - 22 -

⠢  浪 255(26 ⠪⮢),  쥣 - 510, ⢥⮣ -
756.
    ० 祬  ன CPU ᯥ 㧨 ᢮ ப ,  ,
᪮॥ ᥣ, 㦥 ᯥ ஢ ᫥     ।,
  㧨 ᫥  .
    ᫮  ࠭ ⠪ ᮯ୨⢮.  (1,1),
騩  室 ⮬  ॡ CPU0, 室
 ப  0   0,
   (1,4)   CPU1 -  ப  4   1,
   (1,7)   CPU2 -  ப  9   2,
   (1,10)  CPU3 -  ப  12  1.
    ୨⢮  ⮫쪮  CPU1  CPU3. ᫥ ⮣, 
    ⢨   ,  ன 㤥 ⠢
 28 ⠪⮢. ,  ᫥ 砫쭮 㧪 ᮯ୨⢮  ४-
. ୨⢮  砩  ,  १-
騥 প    ࠢ  ⥬,    
ᯮ짮 ᫮.  砫    ᨢ ,  㦠 
,  ।   㤠筮  ,  4,5,6  7  ᮮ-
⢥,    砫 䫨⮢  ᨢ .

                6.  㠫쭮 
      SPP1000 ⮬᪨ ।    
 樨 ꥪ .   楫 ⨬쭮 ᯮ짮 -
⥪ ᮡ⥩  㡪,  뤥塞    ਫ,
   । .
   㠫쭠 ,  ᯮ㥬   ணࠬ  ਫ,  
 ਢ⭮  ࠧ塞.  ਢ (㯭 ⮫쪮  -
)  ࠧ塞 (ᮢ⭮_ᯮ㥬)  ࠧ   ᯮ-
ᮡ 㯠   ᠬ 䨧᪮ ,     ࠭.
㠫쭠  ਫ ࠧ   5  ᮢ,  ࠧ饭
  ࠧ  ,   ࠢ , ᯮ ४⨢
  । .
   ਢ⭠ ,   ࠧ頥     䨧᪮  ,  "-
__㧫", 㯭 १ ᫥騥  㠫쭮 :
   - "ਢ⭠__"(thread_private),
   - "ਢ⭠__㧫"(node_private).
       㧫  㡫  䨧᪠    ਢ
ᮢ.

                                - 23 -

     , "ਢ⭠__" -  ᢠ 㭨쭮 -
쭮 ᭮ ᫥⥫쭮      -
㧫.   , "ਢ__",  N (N - ᫮ CPU
 㧫) 㭨 㠫 ᮢ   㧫,   -
   ;      㧫.
     , "ਢ⭠__㧫" - ⮡ࠦ 㠫 ᮢ 
  ᠬ, ⭮騥  㧫, 䨧᪨    ⥩
  㧫.  , "ਢ__㧫",  㭨-
 㠫 ,    㧫.
   , "ਢ__㧫"   "ਢ__",  ࠭  
,  "쭮__㧫",   ⮬,   㯭  
㧫, ஬ ⮣,  ஬ ࠭. ( 砥  묨, "-
묨__",      ࠭祭  ࠧ襭  -
 ).  ६    ਢ ,  㦠
 ᭮ , .
   塞    ࠧ頥    䨧᪮  ,"-
__㡪",  㯭 १ ᫥騥  㠫쭮 -
:

   - "_ࠧ塞"(near_ shared),
   - "_ࠧ塞"(far_shared),
   - "筮_ࠧ塞"(block_shared).
      ࠧ塞  ࠧ ᨢ  ⫨稨  -
⮢  ਢ .    ࠧ塞  㯭 
 㧫, ᯮ 㭨 㠫 .
    㠫   ࠧ塞  ⮡ࠦ    ᠬ
䨧᪨    ⥩ ,  믮  㧫 -
,  ..   ⮣   㯭   -
㧫, 室饣  ⠢ 㡪,  ஬ 饭 .
     ""   "" ࠧ塞  ࠧ ᫥騬 -
ࠧ.   ࠧ塞  ᯥ ᨬ ਭ 
ய᪠  ᥬ 㧫   㤥 ᯮ짮 -
஬, ⮡ ࠭஢ ᫥⥫쭮  "魮"  
ணࠬ,   ॡ      ᨢ, 
᢮  ( १ 楤 ࠬ஢).
     ( ᫥⥫쭮  魮   ਢ  -
ࠤ樨  ந⥫쭮.  ᪫祭  ⮣   ਢ 
襬 ᯠࠫ.)

                                - 24 -

        -ࠧ塞   ᯮ  -
ࠬ 㧫,     ।,  ,  㯭  -
஢   㣨 㧫   ,     㤥
⢫  让 প.   ࠧ塞    
ᯮ짮 樮 ⥬  ॠ樨 権 /-
  । ᮮ饭.
    , "_ࠧ塞",  "_ࠧ塞"  "筮_ࠧ-
塞"   ࠭  "쭮__㡪" 䨧᪮
,   ⮬ 㯭   㧫,  室饣   ⠢
㡪,  ஬ 饭 . ६   饭
 ᭮   ᮢ ࠧ塞      -
ᨬ    ⮣,  ᮤঠ  室   訢饬
㧫  .
      । ࠪ   ᮢ  :  "-
_ࠧ塞"    "筮_ࠧ塞".   ࠢ ࠧ饭
 "_ࠧ塞"  䨧     㧫.
  㧫     "_ࠧ塞" ,  -
  ࠧ  "쭮__㡪" 䨧᪮  -
.    ⠫쭮  㦤 㠫쭠  䨧᪠ 
   .

        । 4 ⭮ 㠫쭮 -
 ࠭⢠ ,  믮塞  㡪.
___________________________________________________________________
                 ᫮    ᫮             
 㠫쭮            䨧᪨        䨧᪮
                        ᮢ           
__________________________________________________________________
ਢ⭠__    NCPU   NCPU * NODE   㯥 ⮫쪮 
                                            

ਢ⭠__㧫    NODE     NODE        㯥 ᥬ 
                                            㧫  ⮫쪮 

_ࠧ塞                 㯥 ᥬ ,
                                           ࠧ饭  㧫 0

_ࠧ塞                 㯥 ᥬ ,

                                - 25 -

                                           ࠧ饭 ᥫ
筮_ࠧ塞                 㯥 ᥬ ,
                                           ࠧ饭 -
 NCPU - ᫮ CPU  㧫, NODE - ᫮ 㧫  롪.

                7. 祭 ᮢ 
     ᭮ ⨯ । : ᪮, 
஬    뤥  ᪥ ணࠬ  ⠥ ।-
    ᥬ 殮  ࠡ,   ᪮ ।-
,     뤥  ᢮   믮
ணࠬ. ᪮ ।  ந室   -
ࠧ,  ⥬ 뤠   뤥 ,   ,  
ࠢ     ணࠬ()  ணࠬ.
      ⨬쭮 ᯮ짮  ⥪  ᮡ⥩  -
,  뤥塞    ਫ,   ࠢ ࠧ饭
  .  ࠭ ।  ⢫ -
祭 ᮢ  ⠬ ,  祣 ᯮ ४-
 . ᭮ ଠ ४⨢ 祭 ᮢ (-
権 ᮢ )  : C$DIR class_name(namelist)
    namelist -  ᯨ᮪ ६,  ᨢ /    COMMON
,    㤥  祭   class_name.   ⢥
ࠧ⥫ ᯮ ,  COMMON    -
祭   (/COMMON_block_name/),  ⮫쪮  COMMON 
  祭 . 砥,   ᨢ   ६  
namelist     COMMON ,     -
   ꥪ   COMMON .
   class_name  ਭ ᫥騥 祭:
      THREAD_PRIVATE, NODE_PRIVATE,
      NODE_SHARED, NEAR_SHARED, FAR_SHARED, BLOCK_SHARED.
    BLOCK_SHARED ᯨ᮪ namelist   ⮫쪮 ।-
  ᨢ.  樨 ᮢ   ࠭  
  㣨 ப ᠭ ,       
ᯮ塞묨 ࠬ.
    ࠭ 祭         믮
,     .
    ਨ CONVEX SPP ন 堭 ᪮  
᪮  祭  ᮢ .᪨ 祭 
  ਢ ᮢ   "_ࠧ塞" , -

                                - 26 -

᪨  楫ᮮࠧ  "_ࠧ塞"  "筮_ࠧ-
塞" . ⠫쭮 㦤 ᪨    ᪨
祭 ᮢ .

                 7.1. ᪮ 祭
   ᪮ 祭   । 䨧᪮ ࠧ-
 ६ 室     ⨯,      室  ⥪
(। ).  ᪮ 祭 筮 ᯮ 
ꥪ⮢ ,  ࣠    ⮩ 
஭  ⥩ ( ࠢ,  ꥪ,  
 :"ਢ⭠__", "ਢ⭠__㧫", "_ࠧ-
塞").
           7.1.1.,"ਢ⭠__"
   , "ਢ__",  ਢ       
(..  ᯮ ⮩   ࠧ  㯭 㣨 -
 ).   ꥪ , "ਢ__",  ᢮
㭨 㠫   㧫.   ᪨ 
"ਢ__"   㧫 㡪  -
 த㡫஢   㧫. ᫨    뤥-
 ᪨,   㠫   㡫,  㠫
  㭨.
   㠫   ⮡ࠦ     㧫  㭨
䨧᪨  ,  "쭮__㧫".   ,
"ਢ__",    㠫   ࠧ-
 㧫,    㠫     ⮡ࠦ  
㭨  䨧᪨    㧫.   ਬ,   ⥬ 
4- 㧫,  8 CPU  , , ᪨ 뤥,
"ਢ__"     㯥  8- -
 ᠬ,  ⮡ࠦ  32 䨧᪨  ( 
  4- 㧫  8 㭨 䨧᪨ ᮢ). ⥬  7-
㧫,   8 CPU  , ⠪   㯥  8-
㠫 ᠬ,  ⮡ࠦ  56 䨧᪨ ᮢ.
     祢, ⠪ ⮡ࠦ  䨧᪨    -
稭 ⮣,       ⥫ ꥬ ,
 ,  祬,  ࠧ 㠫 ᮢ   -
   㬥襭 㠫쭮 ᭮ ࠭⢠, 㯭
 (⠥   饣 ᫠  4 ).
   ⭮ ᯮ짮(ࠧ) ﬨ ⮢ , "-

                                - 27 -

__",  (  , 饭     -
,  )   ᨭ஭஢ ஢  
 ࠧ塞 ६,    । ᮮ饭.
   ᪮ ६,  "ਢ__", 㡫  
   㧫, ᪮ 祭    -
訩 १. ࠭   "ਢ⭠__"  砥  
ᯮ짮  ४⨢   THREAD_PRIVATE,    
᫥饬 ਬ:
   REAL*8 TPX(1000)
   REAL*8 TPY(1000)
   REAL*8 TPZ(1000),X,Y
   COMMON /BLK1/ TPZ,X,Y
C$DIR TREAD_PRIVATE (TPX,TPY,/BLK1/)
    ᨢ,   ,  稭 8000 ,  -
  ६(X   Y)  8 ;  ꥬ   ⠢
24016  .  COMMON    BBK1  ࠧ饭    ,  "ਢ-
__",   TPX  TPY. ࠭⢮  த㡫-
஢     䨧᪮    "쭮__㧫"
 ᥬ 㧫.
   ६  ᨢ, "ਢ__",    樠-
஢ DATA ࠬ ࠭  ᠭ .
   ।,  ࠭ ணࠬ,   襮ᠭ  -
,  ᪠    4- 㧫 㡪( 8 CPU  
㧫). ,  "ਢ__",   㤥 ॡ-
  8  㠫  ᮢ,  ⮣        ਬ 
24016*8=192128  㠫쭮 ᭮ ࠭⢠. ᥬ -
  ᮢ       ⮡ࠦ  8 㭨-
 䨧᪨    4- 㧫,  .. ᥣ  32 䨧-
᪨  .  १  24016    24016*32=768512
 䨧᪮ .

              7.1.2. ,"ਢ⭠__㧫"
   , "ਢ__㧫",  ਢ  ⥩, 믮 
 㧫 (..  㯭  㣨  㧫).  
,  "ਢ__㧫",    㠫 ,   
 㧫     , ᯮ  . -
  ⮡ࠦ  㭨 䨧᪨  ,  "-
__㧫".  㧫 㡪 䨧᪠ 

                                - 28 -

  ᮤন , "쭮__㧫"  
㧫,    㯭    ⮬  㠫쭮 -
   㧫.
    䨧᪮ ࠧ 㤥 㢥稢 ꥬ ,  -
 ⮬ "ਢ__㧫" ,   ᮮ⢥⢨  ᫮
㧫  㡪.
    ᮢ⭮  ᯮ짮(ࠧ)  㧫  ⮢
,  "ਢ__㧫",    ᨭ஭஢  
஢  ࠧ塞 ६,  ।祩 ᮮ饭.
   ᪮ "ਢ__㧫" ६ 䨧᪨  㡫  
 㧫,  ᪮ 祭 ⠪    -
訩 १. ࠭   "ਢ⭠__㧫"  砥  
ᯮ짮  ४⨢    NODE_PRIVATE ,    
᫥饬 ਬ:
   REAL*8 XNP(1000)
   REAL*8 YNP(1000)
   REAL*8 ZNP(1000),X,Y
   COMMON /BLK1/ ZNP,X,Y
C$DIR NODE_PRIVATE(XNP,YNP,/BLK1/)
      ࠧ 24016 . ন  BLK1 -
   XNP  YNP   "ਢ__㧫".᪠ 
    ᮤন  "쭮__㧫" 
 㧫,     㯭    ⮬  㠫-
    㧫.
   ६  ᨢ,  "ਢ__㧫",   樠-
஢ DATA ࠬ ࠭  ᠭ .
   ᫨ ਢ  ਬ ᪠  ⥬  4- -
(  8 CPU),     㤥 ॡ ⢥-
 㠫쭮 ;   楫   24016  㠫쭮
࠭⢠.㠫       㤥 ⮡-
  4 㭨 䨧᪨ ,      -
. ࠧ    24016*4=96064  䨧᪮ -
.
   ᪮ , "ਢ__㧫", 䨧᪨ 㡫  -
㧫,    㡫  㠫쭮 ,  㧫
㡪     䥪⨢  䨧᪮ ࠭⢮,
㯭 . ਬ,  ᫨   2  "-
__㧫"  ,  㠫 ,  ᯮ㥬 ᮬ

                                - 29 -

 㯠  ⨬ , ⮡ࠦ  楫  16  䨧᪮
,  ᫨   㡪 8 㧫 ( 2    -
㧫).  ।,  "ਢ__㧫"  ।⠢ -
 ᨢ, ⮣   ࠧ   横, 騩 
ᨢ,   ᪠  ᪮쪨 㧫,  ⠪  ࠧ,  
  㧥  㤥 ࠡ  ᢮ 2  ᨢ. 
㧥 㤥 ࠡ뢠 ᢮ ਢ  ᨢ  ࠧ஬  2
,   ᯥ 楫⭮ ᨢ. ᪨ 㧫 ࠡ-
  ਢ묨 2 묨 ࠣ⠬,  騬  ,
 ᫥⥫쭮,    㠫 ,  ⠪ ᯥ-
 楫⭮ ᨢ. ⭮ 筮 ᨭ஭樨,  १-
  ⠪  ਢ  㧫 ᫥  ꥤ 
 "_ࠧ塞",   "_ࠧ塞" "㭨-
" ᨢ.
   ᠭ  室 ਡ  । ᮮ饭  ᯮ짮-
  権  ࠧ塞 ,     ,  
ᨢ ᮤঠ ꥬ ,  ॢ騥 ࠧ 㯭 㠫-
 .
               7.1.3. "_ࠧ塞" 
   "_ࠧ塞"  㯭  ,  믮饩  
  㧫 㡪.  䨧᪨ ࠭ 楫 
,  "쭮__㡪",      㧫,
  ,  믮騬   㧫,  ॥ -
⢫    㯮  .    "_ࠧ塞"
   ⢥ 㠫 ,   ஬  㯥
 . ᪮ ࠧ饭   쭮  -
  ࠭ 室  ࠧ,    砥  ਢ묨
묨.  ,  믮騥  㧫,  ஬ ࠭ "-
_ࠧ塞"  ,  ⢫     १ - 
প  60  ⠪⮢;  ,  饭  㣨 -
㧫 㡪  ⢫ ,  ᯮ ७ 
  CTI 栬  CTI- ᢮ 㧫.   -
  200  ⠪⮢, ᨬ  ⮣   -
- ७⭮  䫨       -
.
   - "_ࠧ塞"  筮 砥    ,
  ⨢ ᯮ ﬨ,  믮騬  㧫,  
஬  १,     ⥬   ᯮ  ﬨ,

                                - 30 -

饭묨  㣨 㧫.
    ᪮ 祭    "_ࠧ塞" ᯮ-
 ࠭祭,  ᪮  頥  ,    "-
_ࠧ塞",   㧫 0.   "_ࠧ塞"
  ࠧ饭  㧫 0 ,    
  頥  ணࠬ .   ᥪ ,   
⨬ ,  ᥣ   믮  㧥 0  -
  㧫 㡪.
    ࠭  "_ࠧ塞"  ᪨ 砥
  ᯮ짮  ४⨢   NEAR_SHARED,    
᫥饬 ਬ:
   SUBROUTINE FUNK()
   REAL*8 XNS(1000,1000)
C$DIR NEAR_SHARED(XNS)
   .
   .
    ᨢ XNS   FUNK().
   "_ࠧ塞" ६   ᨢ   樠-
 DATA ࠬ ࠭  ᠭ .
      ਬ    ᨢ  뤥 8*1000*1000=8000000 
㠫쭮 ᭮ ࠭⢠,   ⮡ࠦ   8000000
  䨧᪮    㧫 0.   ,  믮騥 
㣨 㧫  뢠 ६ প 㧫
㯠    饭  ⨬ .⮬,  ⠪ 祭 
  㧫 ⥬,    ணࠬ , 
ᥣ 㤥 믮 ⮫쪮  㧫 0.
   २⢮ "_ࠧ塞"  ॠ ⮫쪮  ⮣,
  室  ⮬ 㧫,       -
頥.⮬,  "_ࠧ塞"   䥪⨢-
  ᪨  ६ 믮 ணࠬ  ⮩ , -
 㤥   "_ࠧ塞"     .
  뤥   ⮬ 㧫,   ஬   믮.
 ᪮ 祭 㦤   ࠧ  "-
 祭".

               7.1.4. "_ࠧ塞" 
   "_ࠧ塞"  㯭  ,  믮饩  
 㧫 㡪. 䨧᪮ ࠧ饭  , "-

                                - 31 -

쭮__㡪",  ࠢ୮ ।  ᥬ -
㧫 㡪,  ᯥ稢 襥 । ६ 㯠,
   ᯮ  ࠢ  ᥬ ﬨ,  믮-
   㡪. "_ࠧ塞"   -
⢥ 㠫   ⢥ 䨧᪨, 㠫 -
  "_ࠧ塞"  ⮡ࠦ  ਭ樯 ᥫ 
䨧᪨ ࠭   㧫 㡪. ࠭-
 ⠢ 4.
    - "_ࠧ塞"  筮 ᯮ  ,
 ࠢ୮ ࠡ뢠 ᥬ 㧫 㡪.
    ,   ⭥ᥭ  ணࠬ  - ᯥ᪮
,    㬮砭  ਭ  "_ࠧ塞" 
(..   砥  㬮砭 ᥬ ).
   ᪮ "_ࠧ塞"  䨧᪨ ।  
ᥬ 㧫   䥪⨢ ᯮ,    -
㧫      ⮩,  ᪮  祭
  쬠 楫ᮮࠧ.
    ࠭  "_ࠧ塞"  ᪨ 砥
⠪,    ᫥饬 ਬ:
   SUBROUTINE FUNK()
   REAL*8 XFS(1000,1000)
C$DIR FAR_SHARED(XFS)
   .
   .
    ᨢ XFS   FUNK().
   "_ࠧ塞" ६   ᨢ   樠-
 DATA ࠬ ࠭  ᠭ .
       ਬ   ⠪     뤥    ᨢ  XFS
8*1000*1000=8000000  㠫쭮 ᭮ ࠭⢠,  
⮡ࠦ    䨧  4 묨 ࠭栬  ਭ樯
"ᥫ"  ᥬ 㧫 㡪, 稭  㧫0.
  㧫   "_ࠧ塞"   ⭮⥫쭮
 ⮩,  ᯥ稢 襥 । ६ 㯠.
, ᫨ ணࠬ   ⮫쪮  । ⢥
㧫 㡪,  "_ࠧ塞"  - 㤠  -
,  ᪮    ⠪ 㤥 ।  ᥬ 㧫
㡪,   맮 ६ প 㧫 -
  饭  .

                                - 32 -

   ᫨ ⭮,  ணࠬ 㤥   ⮫쪮   -
㧫, ᫥ ᯮ짮  "_ࠧ塞"  뤥
  ⮬  㧫.  ᫨  ணࠬ 㤥     
⢥  㧫  㡪,    饬  㧫,
᫥ ᯮ짮  "筮_ࠧ塞" ,   ᠭ 
ࠧ "᪮ 祭".

                7.1.5. "筮_ࠧ塞" 
    "筮_ࠧ塞"    㭨 㠫 
䨧᪨     㯥   ,  믮饩  
 㧫 㡪.   ᯮ  ࠭-
 ᨢ,  뤥塞 ᪨  ६ 믮,  ᫮
㧫,   믮 , ⭮.㠫 -
 ᨢ -  १  ᨢ  ࠣ    
ᯮ㥬 㧫.ࠣ ( ,  ⭮,  ᮤঠ -
⢮ ᫥⥫ ࠭ ᨢ ) ।   䨧-
᪨  ࠭栬  "쭮__㡪"   ᯮ㥬
㧫,    ࠣ   㧫.᫨ ᫮ ࠭
"筮_ࠧ塞"  ᨢ    楫  ᫮ 㧫,
 ࠧ ᨢ 㢥稢 ⠪, ⮡   楫.
   饭   "筮_ࠧ塞"  ᯮ ⮫쪮
 筮 ᯠࠫ 横,  ࠡ  ᨢ.   ⠪
砥  ᯠࠫ 横 ⠪,  ࠫ쭠 ᥪ, 믮-
  ஬ 㧫, 㤥 ᯮ짮  ᨢ, -
室   ⮣  㧫,  ᯥ 㬥襭 ६-
 . 㧫   ⠫ ⠬ ᨢ ⠪-
 .      "筮_ࠧ塞"    祭
⮫쪮 ᪨,   뢠  ࠧ "᪮  -
".
                7.2. ᪮ 祭

              8. । ணࠬ஢
     । ணࠬ஢  SPP    㭨஢ 
樨,   ꥤ   ࠧ塞  SM (Sha-
red Memory),  ⠪   । ᮮ饭   (Messanch  Passing),
 ਤ ᬥ .
     S  ᢮⢠ 筮, ᫥⥫쭮 ணࠬ஢-
,  ᯮ  ᯥ祭 ࠫ쭮 ணࠬ஢-

                                - 33 -

.  SM-ணࠬ -  -⥢ .
        ணࠬ   ⢮ ⥢ ᮢ,
믮 ࠫ쭮  न ᢮ 믮   
  묨   । ᮮ饭.
     ਤ  ᯥ稢 ⥫  믮-
 ⢠ SM ணࠬ,  ᯮ । ᮮ饭   -
न樨.  ਬ, SM    㦥  믮 
8   ⤥쭮 㧫,   㣮 SM   믮
 㣮 㧫  ।祩 ᮮ饭  ﬨ 㠫  -
ᮢ.  ணࠬ  ᯮ짮 ⥫ -
 ⮡ࠦ ,  ⮡ ࠧ  । ࠧ -
ᮢ, 믮  . ணࠬ   -
  ஬ ⢥  ஢,  筮  ᫮  
ᯥ  짮⥫   ᪥ ணࠬ  㯭 ண-
ࠬ १ ஥ 㭪樨.
    ணࠬ஢   SPP1000   ࠤ樮 -
ࠤ ணࠬ஢  ࠧ塞   몠   ࠭,
ন ᪮쪮 ⨫ ࠫ쭮 ணࠬ஢:
     - ⮬᪨,
     -  ࠢ ४⨢ 짮⥫,
     -  ᯮ짮   ।祩 ᮮ饭.

        8. ணࠬ஢  ࠧ塞 
     SM ணࠬ   ᯮ짮 樨  -03
(   ࠭   ,   ० 樨  ࠫ-
쭮  ꥪ⭮ ),   ⨬ ணࠬ  ࠫ-
쭮 믮.  㦠  ⢮ ஢  -
      .  0 稭 믮, 
  ६  㣨   ࠡ.  ,   㤥
⨢஢     0.  ( ⨬,      SPMD
( ணࠬ -  ).  SPMD    믮 -
 ,   ⮬  ᫥⥫ ⪨  믮-
 筮 ᥬ ﬨ.    ணࠬ 
 SPP 㤥 ন SPMD.)
     ᭮뢠    뫮   ᨢ, -
 ⠥ ᣥ஢ ᫥  ⥩ ⠪,  ⮡  ࠭-
஢ ""  ..  ⮡  뫪  ⥬  ᠬ
,       ,  ࠫ ᢮   襩

                                - 34 -

஢  易   ⥢ .  樮 ⥬
SPP1000 㤥 ᯥ稢 ண  ⥩  ஢,  
  믮﫨 ᫥ ࠧ,   ᯥ稢 ࠭ -
,  ⭮⥫쭮 ⨢    ஢  -
ࠬ   㧫  . ,    -
 ஢  㣨 㧫.    樮 ⥬  SPP1000
  ⨧筮,    ࠡ   ਢ  
.   㤥   । ⮢  믮, -
  㤥 ⨢஢.
     ᯮ짮 㪠  ⨯   ।⠢  ᫥-
饬 ࠧ  SM ணࠬ஢.
      㬮砭,      ணࠬ ᯮ  ࠧ塞
 (   ࠧ塞)  롮   -
祭 襩 ந⥫쭮.  ணࠬ  ⠪ 뢠
६,  ⮡ ᯥ஢  ᯮ  : "ਢ-
   ","ਢ⭠    㧫",  "-ࠧ塞"  "
ࠧ塞", ᯮ ᯥ-४⨢, 頥  室 ⥪ 
࠭:
C$DIR THREAD _PRIVATE namelist
C$DIR NODE _PRIVATE namelist
C$DIR NEAR _SHARED namelist
C$DIR FAR _SHARED namelist
      namelist - ᯨ᮪  ࠧ⥫ﬨ "," ,    ⢥ -
⮢ ᯮ  COMMON ,  ᨢ,᪠஢.   
   祭  ,  ਬ   /STUFF/,  -
  ᨢ   ६  namelist   ⠪  
ᠭ COMMON .   ,        
  ᠭ     . ਬ:
     REAL A(100),B(100),C(100)
     COMMON /STUFF/ BIG(10000),LITTLE(10)
C$DIR THREAD_PRIVATE A,B,C
C$DIR NEAR_SHARED /STUPH/
      㯭   ணࠬ.
     ணࠬ   ⠪  । ࠧ饭  
 ⨯   ६  믮  ணࠬ.  ᫨  ᯮ
⮫쪮 ࠧ塞 ६,    4 G  饣 -
쭮 ࠭⢠ . । ਢ   
ᯮ짮  ⮣,  ⮡ 㢥 饥 ᭮ ࠭⢮ 

                                - 35 -

4 G ,   㯭  ⮫쪮 ࠧ塞 .  ਬ,
᫨      । 2 G  ࠧ塞 ६,  
 :  2 G (ࠧ塞 )  2 * <⢮ -
⥩> G⮢ (ਢ⭮ ᭮ ࠭⢠).  ਢ -
 । ⥩    ⥬  ஢  ࠧ-
 ६.
      -03 ᯮ ⠪  ᮧ 襩 ࠭㫨㥬
⥩. ਬ  奬    浪  ᯮ ࠬ஢
横   横  ⮣,  ⮡  "訩"   ᤥ  
ᠬ  譨.  쪮 ᨬ   横 롨  -
ࠫ쭮 믮 ⮬᪨.  짮⥫   ॡ
ࠫ쭮 믮 横    ४⨢. 樨 -
ᨬ   横, ࠭ ⮬᪨    -
४⨢,  㯯    ⥩  ࠫ쭮 믮.  
㬮砭,  믮 ("᫮ 権 / ᫮  -
஢") 権.  ᫨    128 権 横  16 ⥩,   ࢠ
 믮 1-8 樨,   - 9-16  ⠪  .  ⨬
  ""  ॣ㫨஢   樨  㢥-
祭 ந⥫쭮.  樨 横,ᨬ   ,  
ᯠࠫ  짮⥫ﬨ,  ᢠ    ᥫ쭮
०  樨  浪,  ।塞 横 ⠪, ⮡ 
뫮 ᯮ짮 ᮮ⢥騥 ⪨ ᨭ஭樨.  , ᫨
 128 権  16 ⥩,    0 㤥 믮  1,17,...,113
樨,   1 - 2,18,114;  ⠪ .  짮⥫ ਭ㤨-
⥫쭮 ॡ ࠫ쭮 믮 横 ( ),   -
  ᯮ짮  ᨭ஭,  ⮡ ࠭஢ ண -
ନ஢     ࠧ塞  ,    ந
ᢠ.  ࠫ 横   ⮫쪮  0 믮-
 ⠪,   ॡ  ᯥ樠쭮 ᨭ஭樨  ࠧ-
 .
      ࠭    ந⥫쭮,  뢠  
ࠧ୮ ᨢ ⠪, ⮡  楫 ᫮ ப ⥢ 
(64 ).   㤥  ਢ   ࠧ୮  
⮬  ࠧ 直 ࠧ,     㤥 ⨢ ᥬ⨪
ணࠬ.
   ਢ ਬ ᯮ ࠭,   ᮮ⢥騥  ਥ
㯭   .  ࠧ,  뫪   ࠧ୮ -
    ᫥  몥 .   ࠧ୮ -

                                - 36 -

 ᯮ ⮢  .
      ਫ, 楤 ⨬ ( - APlica-
tion Compiler)    SPP 㤥 ᯮ짮  ᨬ  
ࠫ  横 ( 樥 -03) ணࠬ ⮬᪨,  . . 
㤥 ஢  横  ᨬ  ,  
横,    ணࠬ.   㤥 ⮬᪨ -
  ⠪ 横  ࠫ쭮 믮  㤥 
 ᪨ 롮,  ⮡ ।:    横 ⢨⥫쭮
믮 ࠫ쭮.

        8.2. ணࠬ஢   ।祩 ᮮ饭
     筮,  ணࠬ   ᯮ짮    権,
  ᪫祭  樨 -03.   㦠  ⤥ ⥢
     ⢠ ஢  ண  -
.    ணࠬ 稭 믮   -
 ६,   न ⥫쭮 ᮢ ᯥ-
 ࠬ । ᮮ饭,   砥  ⥪ -
⥫.     宦 ணࠬ 믮     -
 ⥢ ᮢ  ⤥  ࠭⢮,  -
 ࠧ   ᠬ ,  ⠪      १
뢠    । ६  ᯮ짮 ᯥ᪨
⨯ .
      SPP  ⥪ প 堭 । ᮮ饭,
  筮 , ⮡   ᭮ ந 
  ⥪ ᮪ ஢.  PVM (Parallel Virtual Mac-
hine)   ⠭ 䥩ᮬ 堭 । ᮮ饭,
 ন  ࠧ ਫ.  ମ,  ந饩
SPP,      ࠧࠡ⪥     ᯮ짮 
奬 ணࠬ஢   MPI.

           8.3. 襭  䥪⨢ ணࠬ SPP
       ⨯ ணࠬ  室  䥪⨢ 믮
 SPP. ᬠਢ ࠧ  ࠫ쭮,  
६ 믮    ஬  ⢥  ஢,
 ᫨ ᫮ ஢,  ᬮ  ᯮ짮-
,    ࠬ᪨ ஢   ਫ 
㣮.  ᫮ ஢  䥪⨢ ࠡ  ஢
   ਫ,    ࠧ୮  .  

                                - 37 -

㪠  ᭮ 䠪, 騥  䥪⨢ ணࠬ.
     ᨬ   -  ⢥,   䠪,
࠭稢騩 ࠫ쭮 믮.  ⪮ ,  -
 , ஥   ᫥  ⥬   ࠧ
  ࠫ묨  ﬨ  ࠫ묨 ᠬ ।⠢
ᨬ  .   ணࠬ஢   ࠧ塞 -
  ⠪     饭 ᥬࠬ ⠪,  ⮡
⮫쪮   믮         
  ६.   ணࠬ  ⠪   ࠧ 
 ᮮ饭,  ᯥ稢 न ࠫ ᮢ.
  堭      室,   
 ४ 䥪⨢ ࠫ쭮 믮,  ⮡ 
⢥  襭 ந⥫쭮  ࠢ  믮
 ୮ ०. ᨬ   㦤  ᫥-
饬 ࠧ.

             8.3.1. ࠫ  
     ࠫ     饥 ६   ᯮ-
  ࣠樨 ࠫ ᫥.   ⮩  ଥ  ࠫ-
  ᫥ ࠡ,    権 筮  -
୮ ⨯,    㯭묨 ࠬ. ⥩訬
⨯ ⬠,   ਢ   䥪⨢ ᫥,
 ࠫ  ,     ᨬ  
묨. ਬ, ᫥騩 横 ࠭:
      DO I =1, 1024
       A(I) = B(I) + C(I)
     ENDDO
   :
      A(1:1024) = B(1:1024) + (1:1024)
   ࠧ    ࠫ쭮 믮  
.
     ਬ, 1024  樨   ࠧ  128 -
ࠬ ⠪,   믮 ᥬ 権. ᫨ 
室  ࣠ ⠪ ᫥ ७० ,  ᫥-
  믮  128 ࠧ ॥,  祬 ᫥   -
.
     쭠 ࠫ쭠   ணࠬ  筮 ⠪ ,
 ਢ ,    祣;     ᪠ -

                                - 38 -

権, 権 /뢮, 䨪; 㣨 ᫮  ᮫⭮ -
ॠ쭠 ணࠬ.  饬 砥,  ணࠬ, 易  ᪠-
묨 ᫥ﬨ  /뢮,   믮    -
,  祬    "n" ,  ⠪    祭 
 ணࠬ,    믮 ࠫ쭮  ⮣,  ⮡
 ॡ㥬  த⢨.   襭 䥪⨢ ண-
ࠬ   ᯮ짮 ࠧ , ਬ. -
२ᯮ짮    横.  ⮬, ⠬   -
, 㯯 易  横  ᢠ ᨢ.
 蠥 ⭮ ⮣,  㧪 㤥 ந  -
,    . ਬ:
     DO I = 1,N
     A(I) = B(I) + C(I)
     ENDDO
     DO I = 1,N
     D(I) = D(I) + E(I)
     ENDDO
     DO I = 1,N
     F(I) = A(I) / B(I) * C(I)
     ENDDO
 ९ ⠪:
     DO I = 1,N
     A(I) = B(I) + C(I)
     ENDDO
     DO I = 1,N
     F(I) = A(I) / B(I) * C(I)
     ENDDO
     DO I = 1,N
     D(I) = D(I) + E(I)
     ENDDO
      ,  ᠭ ,       祭   
ࢮ 横   㯭  ᫥饬  ᫥ F.

             8.3.2. ﭨ ᫥⥫쭮 
      ⮣ ,  ⮡   ॠ쭮  ࠬ ࠫ 
,  室 뢠 । ஫ ᪠ ᫥ 
権 /뢮. ᬮਬ ᫥ :
     PI = 4.0 * ARCTAN(1.0)

                                - 39 -

     DO I = 1,N
       CIRCUM(I) = 2. * PI * R(I)
       AREA(I) = PI * R(I) ** 2
     ENDDO
     WRITE (10) R,CIRCUM,AREA
      襭 ᭮ (᫨ N ),   ࠡ  믮 横
  ࠧ  ࠬ,    㤥  PI? 
 㤥 믮 /뢮?    ࠧ塞  
᪮쪮 ⢥⮢.
     ᫨ PI  ⢨⥫쭮   ࠧ塞 ६,   
襭    ⮬,  ⮡       -
᫥  PI,   㣨     ,   ᫥ 㤥
祭,   ⥬ 㦠   ᥡ  .  祢,  
⮬    㧪  ૮    窠   - 祬 
஢ 祭  ,  ⥬  প  ६ -
,  ᫥   祭. ୠ⨢ 襭
 ᠭ PI  ⢥ ਢ⭮ ६   ஢
 ᫥ ⮣ 祭   .     
ࢮ 襭   ᫥,      ⠪    ᯥ宬
஢   ᫥ ᠬ.   ⮬  ⮫쪮  室 -
⥫쭮 ६,   PI   , ⠪    -
祩 窨  .  - ᪨ ਬ ஬  ६-
  ࠭⢮.   ⠪  襭 ॠ樨 /뢮-
.  ⥩襥 襭 - /뢮 믮  .  , 
  ⥫ 䥪,   ⮨   ⮬,    
      ᢮   ,  ⠪  ⮫쪮 
  뫠    .  ᫨  ,  ࠧ㬭
ᤥ ⠪ ,  ⮡   뢠 ᢮ 㭨 䠩  -
ﬨ,  㤥 ᮤঠ  ᨢ,    -
,    ᯥ稢  襭 த⢨   ࠧ蠥 
஢.   ᫥,  ⥫쭮 ९  -
/뢮    ᥩ  䠩.
     ,  ᡠ஢ ணࠬ  ࠧ塞  
     ᫥⥫쭮  ⭮⥫쭮 -
ࠫ .

                8.4. ஭
     ,   ᯠࠫ騩  ,  

                                - 40 -

 ⢥ ᨬ ,   ࠫ 設
  ॡ  饯 横,  ⮡ ஢ ᨬ.
ᬮਬ ਬ:
     DO I = 1,N
      A(I) = EXP(SIN(B(I))) * EXP(COS(B(I)))
      C(I) = (D(I) + E(I)) / F(I) * A(I)
      X(I) = S * X(I-1) + C(I)
      Z(I) = X(I) * Y(I) + EXP(Z(I))
     ENDDO
      ᢠ X(I) 砥 ४,   頥 -
ࠫ.  筮  ,  ணࠬ 뤥 
  ⤥ ᪠ 横,  ⮡  㣨 ६ -
ࠬ ᢠ 믮  ࠫ쭮 ०.
       ᥣ 室   ᯠࠫ  SPP. -
  筮 ࠡ  /      ᢠ
X(I)   N 筮 ,    䥪⨢ ࠫ쭮
믮 横 ⥬ 饭  ᢠ X(I)   㯮-
祭  ᥪ.   㤥 ᯥ稢  ⮫쪮 -
            (lock)  -
堭.    砥 ॡ 믮 樨  ⠪ -
,  ⮡ 㤮⢮ ॡ ४c  ᫥ X. -
騩 ⥪  ᥢ-ᨭ⠪ ᪠ ࠫ쭮 믮.

* 樠, ⠭ SEQ=0
     CALL SETSEQ (SEQ,0)
* 믮 横 ࠫ쭮, 樨 ࠧ ᥫ
$DIR DO_PARALLEL (ORDRED)
     DO I = 1,N
      A(I) = EXP(SIN(B(I))) * EXP(COS(B(I)))
      C(I) = (D(I) + E(I)) / F(I) * A(I)
     CALL WAITSEQ (SEQ,I-1)
* ,  SEQ 㤥 ࠢ  I-1
      X(I) = S * X(I-1) + C(I)
     CALL POSTSEQ (SEQ,I)
*  ⠭ SEQ  I
      Z(I) = X(I) * Y(I) + EXP(Z(I))
     ENDDO
   ⨪ 믮 横    :

                                - 41 -

     * 樠 ᫥    権  
 浪   ࠫ .
     *     ᢮ A(I),C(I) -
.
     *   믮  I=1 ᢠ X(1),  
 ६  㣨 .
     *    I=1  Z(1),    ६    X(2)
  ஬  I=2.
     *   稭      I=5,  
  ६  㣨   室 ᪢  ᥪ
⠪ 㯮冷祭.
     , ᫨  ࠡ    믮  横   ᡠ஢-
,   I=5 ⨣ 窨  WAITSEQ    ࠧ  ⮣,
  ⢥   I=4  POSTSEQ.   ⮩ 窨 
 ࠡ  ,    ⨣ ᫥ -
 樨 横.
     ⥪ ᨭ஭樨 SPP1000 ন ᪨   㯮-
冷祭 ᥪ樨, ᥬ, ᮡ  ᫥⥫쭮.

       8.5. 㭪樮 ࠫ
      㭪樮 ࠫ   ⬥,   믮-
 ࠧ ⮪   ࠧ묨 묨.  ⨯ ࠫ-
   뢠   (MIMD) 設   ।-
  ,     䥪⨢ ᯮ짮   ࠧ塞
.  SPP1000  ࠧ蠥 ᯮ짮 ᫥騥 ४⨢:
C$DIR BEGIN_TASKS
C$DIR NEXT_TASK
C$DIR END_TASKS
      ஢,  祭  ⠪ ४⨢ ᪮ (
ந ⢮ ४⨢:C$DIR NEXT_TASK),   믮
ࠫ쭮.  㦭,  筮,  ᮡ ஦, ⮡ 
ᢠ ࠧ塞 ६ 祭  祩 (TASK), -
  ᢠ  ᯮ짮 㣮 祩. ᫨ -
 ⠪ 室,  ᫥ ᯮ짮 ।⢠ ᨭ஭-
樨,    㦤 ,  ⮡ ࠭஢ ࠢ -
,  , 筮,  ᫥      -
  룮,  祭    ᯠࠫ  ᫥  
-  室, ॡ㥬  ᯥ祭 ᨭ஭樨.

                                - 42 -


       8.6.  ⥣  ⮡ࠦ ணࠬ  SPP1000....
     ⭮, ᥣ,     ᠬ 䥪⨢ ᯮᮡ ᮧ
ணࠬ,    ⮡ࠦ  SPP,   ᯮ짮
୮ .  , ᠭ ⠪ ணࠬ,  ࠧ-
  ⤥ , ।   ࠡ ⠭権  ᯮ-
  PVM     ⢨.      
 ணࠬ   ⠪, ⮡ SPP   ᯮᮡ
ॠ ࠫ쭮 믮  㧫,  ணࠬ 㤥
७  SPP.   ᮮࠦ,   -
 室,  ਢ . 䥪⨢ ⥣   
⮬,  ᭠砫 ணࠬ ⮢  믮   ࠡ-
 ⠭権  ᯮ짮  । ᮮ饭 (PVM)  ᨭ-
஭樨  ࠡ.   ᫥   ࠡ祩 ⠭樨  
 ᠭ  ਬ  ਥ,  㦤 ࠭, ⠪
   ࠡ祩 ⠭樨  ७  㧥 SPP1000,  -
஬  ⥬ 믮  樥⮬ ᯠࠫ,  ࠢ
쬨 [ ஢  㧫]. । ᮮ饭 㤥  ०-
 ᯥ稢 न 믮 ᥩ ணࠬ  㧫.
     ᬮਬ ࠣ    業 ணࠬ (笠ઠ)
SHALLOW,  ।  NCAR (樮  ᫥ ⬮-
):
     DIMENSION U(320,200),V(320,200),P(320,200),UNEW(320,200),
     PNEW(320,200),UOLD(320,200),VOLD(320,200),
     POLD(320,200),CU(320,200),CV(320,200),Z(320,200),
     H(320,200),PCI(320,200),VNEW(320,200)
     IMAX = 320
     JMAX = 320
     A = 1.E6
     DX = 1.E5
     DY = 1.E5
     M = IMAX - 1
     N = JMAX - 1
     MPI = M + 1
     NPI = N + 1
     PI = 4. * ATAN(1.)
     TPI = PI + PI
     DI = TPI / FLOAT(M)

                                - 43 -

     DJ = TPI / FLOAT(N)
     DO 50 J = 1,NPI
     DO 50 I = 1,MPI
50   PSI(I,J) = A* SIN((FLOAT(I) - .5) *DI)
                * SIN((FLOAT(J) - .5) *DJ
     DO 60 J = 1,N
     DO 60 I = 1,M
     U(I+1,J) = -(PSI(I+1,J+1) - PSI(I+1)) / DY
60   Y(I+1,J) = -(PSI(I+1,J+1) - PSI(I+1)) / DX
     横 ⨯    ணࠬ  (笠ઠ).  
  横  ᨬ,  騥 ࠫ.
 ⮣,  , ᫥    横, 筮 ᯮ-
  襬 ᫥饬 .     ᬥ饭 
ᠬ  ஬  横 - ⠪ ᬥ饭 ࠪ    -
⪮    笠થ.  ᬥ饭 -   -
,    㤥    ᯠࠫ  .
      -     ࠭ -
  ⮡ࠦ ணࠬ   ।.  ਥ ⮨ 
樨   ᪮쪮   .  ⢥-
 ᯮᮡ ᤥ , ࠧ ᨢ  ᨢ. 
⮩ 笠થ ᨢ  㬥묨,   㤨 ।
  ୮  ࠡ ⠭権.  ࠧ୮ ᨢ -
 ᨬ묨  , ⠪    ந쭮  
ࠧ୮.   ᬠਢ  ᨢ   -
 ⠭樨:
     DIMENSION U(0:81,200),V(0:81,200),P(0:81,200),UNEW(0:81,200),
     PNEW(0:81,200),UOLD(0:81,200),VOLD(0:81,200),
     POLD(0:81,200),CU(0:81,200),CV(0:81,200),Z(0:81,200),
     H(0:81,200),PCI(0:81,200),VNEW(0:81,200)
      㤥   1:80  ࢮ -
 ᨢ:  0  81     裡  -
ﬨ,     ᥤ ஢.    ࠡ
⠭ 㤥  筮 1/4 ᥩ ஡    । -
饭  न樨  ᨫ. 砫 뤥 ஥ -
 ᪠஢  ࠢ 묨 ᫥ﬨ:
     DIMENSION U(0:81,200),V(0:81,200),P(0:81,200),UNEW(0:81,200),
     PNEW(0:81,200),UOLD(0:81,200),VOLD(0:81,200),
     POLD(0:81,200),CU(0:81,200),CV(0:81,200),Z(0:81,200),

                                - 44 -

     H(0:81,200),PCI(0:81,200),VNEW(0:81,200)
     IMAX = 320
     locimax = 80
     JMAX = 200
     A = 1.E6
     DX = 1.E5
     DY = 1.E5
     M = IMAX - 1
     locm = locimax - 1
     N = JMAX - 1
     MPI = M + 1
     locmpl = locm + 1
     NPI = N + 1
     PI = 4. * ATAN(1.)
     TPI = PI + PI
     DI = TPI / FLOAT(M)
     DJ = TPI / FLOAT(N)
     id = myid()
     ।  ⢮ ஥ 㭪樨 myid(),  
頥 㭨 䨪   ࠡ祩 ⠭樨 ( -
  砥   0 - 3).   ᬮਬ ࢮ  横-
:

     DO 50 J = 1,NPI
     DO 50 I = 1,MPI
50   PSI(I,J) = A* SIN((FLOAT(I) - .5) *DI)
                * SIN((FLOAT(J) - .5) *DJ
           ᨢ PSI, । 横
 I   .   ⮣, ᫥ FLOAT(I)  
ᤥ ⠪, ⮡ ࠧ ࠢ 祭:

     DO 50 J = 1,NPI
     DO 50 I = 1,locmpl
50   PSI(I,J) = A* SIN((FLOAT(id*80+I) - .5) *DI)
                * SIN((FLOAT(J) - .5) *DJ
     ࠧ,   id=0  (ਣ)  I
 1  80; id=1  81 - 160 ; id=2  161 - 240 ; id=3 -
 241 - 320.

                                - 45 -

       ᫥饣  横:
     DO 60 J = 1,N
     DO 60 I = 1,M
     U(I+1,J) = -(PSI(I+1,J+1) - PSI(I+1,J)) / DY
60   V(I,J+1) = -(PSI(I+1,J+1) - PSI(I.J+1)) / DX
      襩 ᭮ ९襬   祭 権
 ᨢ:

  U(2:320,1:199) = -(PSI(2:320,2:200) - PSI(2:320,1:199)) / DY
  V(2:320,1:199) = -(PSI(2:320,2:200) - PSI(2:320,1:199)) / DX
    ᬠਢ ᫥ U,   ,    ࢮ -
७ ⠭,   ᪫祭 ࢮ.  ⮣,    -
   뫪  ࢮ ७ PSI ᨢ.    -
,   2 - 320 ᨢ U   ⠬ 2 - 320 -
ᨢ PSI.   砥,    , ஬ ࢮ,  -
  ᢮ .     ᫨ U(1,:).
᫥ V    -  ᫥ 祭    -
   ࢮ ७   뫠  ᨢ PSI   ⥬ 
ᠬ ᬥ饭  ⮬ ७, ⠪   ᬥ饭, ࠢ ⥪饬,
 .   ९ 横 60 ⠪,  ⮡ ਭ  
।騥 㦤:

     IF (id .GT.0) THEN
*  , ஬ ࢮ 
     DO 60 J = 1,N
     DO 60 I = 0,locm
* ᫨  
60   U(I+1,J) = -(PSI(I+1,J+1) - PSI(I+1,J)) / DY
     ELSE
*  ࢮ 
     DO 61 J = 1,N
     DO 61 I = 1,locm
* ᫨  , ஬ ࢮ
61   U(I+1,J) = -(PSI(I+1,J+1) - PSI(I+1,J)) / DY
     ENDIF
     ਬ砭:   ,  ஬ ᫥,-
室 祭 ᨢ PSI  ᫥饣 .


                                - 46 -

     IF (id .GT. 0) SEND (PSI(1,2:NP1), id-1)
*  ᥢ
     IF (id .LT. 3) RECV (PSI(81,2:NP1), id+1)
*  ᥢ
     IF (id .LT. 3) THEN
*  , ஬ ᫥ 
     DO 62 J = 1,N
     DO 62 I = I-1,locmp1
*   ᫨  
62   V(I,J+1) = -(PSI(I+1,J+1) - PSI(I.J+1)) / DX
     ELSE
*   ᫥ 
     DO 63 J = 1,N
     DO 63 I = 1,locm
*   ᫨  , ஬ ᫥
63   V(I,J+1) = -(PSI(I+1,J+1) - PSI(I,J+1)) / DX
     ENDIF
      横  ⪮ 60  ,    ,  ஬ ࢮ
(id=0),  ᢮  U(1:80,J),  横 61  
 U(2:80,J). ,  , ஬ ᫥ ,  -
᫥ ᢮ 祭 ᨢ V(80,J) ॡ PSI(1,J)  ᫥饣
,⠪  ᥢ SEND RECV 㪠뢠  室 .
    ᫥ 樨 ᨢ  81  ࢮ -
७,    ⢥   祭 ᥤ .
   横 62  63.  横 62  , ஬
᫥,  ⠭ ᢮  V(1:80,J+1);   横 63 -
      ᢠ      ,  ஬  ᫥,
V(1:79,J+1). , ⬥⨬,  ⠪  । ᮮ饭 
஥  ६,      ⨬樨  뫠  (ᥢ
SEND),  ⮫쪮  ,   (RECV),   室-
.   ஢ , ਢ :

     DIMENSION U(0:81,200),V(0:81,200),P(0:81,200),UNEW(0:81,200),
     PNEW(0:81,200),UOLD(0:81,200),VOLD(0:81,200),
     POLD(0:81,200),CU(0:81,200),CV(0:81,200),Z(0:81,200),
     H(0:81,200),PCI(0:81,200),VNEW(0:81,200)
     IMAX = 320
     locimax = 80

                                - 47 -

     JMAX = 200
     A = 1.E6
     DX = 1.E5
     DY = 1.E5
     M = IMAX - 1
     locm = locimax - 1
     N = JMAX - 1
     MPI = M + 1
     locmpl = locm + 1
     NPI = N + 1
     PI = 4. * ATAN(1.)
     TPI = PI + PI
     DI = TPI / FLOAT(M)
     DJ = TPI / FLOAT(N)
      id = myid()
     DO 50 J = 1,NPI
     DO 50 I = 1,locmpl
50   PSI(I,J) = A * SIN((FLOAT(id*80+I) - .5) *DI)
                * SIN((FLOAT(J) - .5) *DJ
     IF (id .GT.0) THEN SEND(PSI(1,2:NP1),id-1)
* ᥢ
     IF (id .GT.0) THEN
*   , ஬ ࢮ 
     DO 60 J = 1,N
     DO 60 I = 0,locm
* ᫥  ⮢
60   U(I+1,J) = -(PSI(I+1,J+1) - PSI(I+1,J)) / DY
     ELSE
*  ࢮ 
     DO 61 J = 1,N
     DO 61 I = 1,locm
*   ᫥ , ஬ ࢮ 
61   U(I+1,J) = -(PSI(I+1,J+1) - PSI(I+1,J)) / DY
     ENDIF

     ਬ砭:  ,  ஬ ᫥,  ॡ
祭 ᨢ PSI  ᫥饣 .
     IF (id .LT. 3) RECV (PSI(81,2:NP1), id+1)

                                - 48 -

* ᥢ
     IF (id .LT. 3) THEN
*  , ஬ ᫥ 
     DO 62 J = 1,N
     DO 62 I = I-1,locmp1
*   ᫥  ⮢
62   V(I,J+1) = -(PSI(I+1,J+1) - PSI(I.J+1)) / DX
     ELSE
*   ᫥ 
     DO 63 J = 1,N
     DO 63 I = 1,locm
*  ᫥ , ஬ ᫥ 
63   V(I,J+1) = -(PSI(I+1,J+1) - PSI(I,J+1)) / DX
     ENDIF
    ᠭ  ࠭ଠ樨 室,  ⮡  ७
   ࠡ ⠭権.

      ᬮਬ ७   SPP1000. ० ᥣ,  -
 砥 ࠫ 横 J ணࠬ.   룫廊 ᮢ襭
אַ    ,   SPP1000  ᤥ  
  ⮬᪨.  ।,    ॡ뢠 
,  ,   㧫 SPP1000, ⮣  㤥 -
।  ࠡ  横 J  ᥬ ஢ 㧫.  ।,
   ⠪ ࠫ樨       -
ࠫ 横.  砥,     㤥 -
 쭥 ࠡ,      ⨣ 窨  砭
横.   ।,  ਬ,      㤥
稭 믮 横 60   ,     -
 横 50,  ࠭,  室 祭 ᨢ PSI -
 ᫥.    ᫮   㤥 㦤 ᯮ짮
४⨢ ਭ㤨⥫쭮 ࠫ樨,  ,,  ਤ -
짮  , ⮡ ᯥ ࠢ १.
     ,   ணࠬ஢  SPP1000  ८ࠧ-
뢠 騥 ਫ   ᪮७   ࠫ-
  믮    .   䥪⨢  
 ࠫ । 믮   ᤥ ஢
ᯮᮡ,   ᯥ稢   ᯥਬ஢  -
ࠢ塞 ஢ ணࠬ,  ⮡ 㡥   ४⭮  -

                                - 49 -

⮢   ᨬ쭮 ந⥫쭮.  ஬ ⮣, -
 । ᮮ饭   ᯮ짮  짮⥫, -
      ⥫ 砣 ࠢ  ⨬樨
ਫ.    ᯮ짮    ணࠬ  :
ࠧ塞   । ᮮ饭 CONVEX ᯥ稢 砩訥
  ᮢ६ ਫ.

       9. ந⥫쭮  ⥬   SPP1000
       9. 䨪 ⥬    CONVEX  SPP1000/CD
       ᫨⥫쭠 ⥬   CONVEX   SPP1000/CD    (Scalable
Parallel Processor) - 楫 ࠫ ࢥ.
     ୠ ࠫ쭠 ᫨⥫쭠 ⥬;  -
  MIMD;  -஢  ७⭠ ;  ন 
ணࠬ஢ - ࠧ塞 㠫쭮     ।祩
ᮮ饭.
                                        ७
-------------------------------------------------------------
 ᫮ ஢      2          16          2
 ந⥫쭮    .4 GFLOPS   3.2 GF     .4 GF
 ⨢     128 B      4 GB        128 MB
  I/O          250 MB/sec  500 MB/sec  250 MB/sec
    
 ᫮              4           8           4
       32        512       32 
 ᫮             4           16          4
              60 ns       60 ns

                   
 TI  - ᪠, 墠뢠  ⥬ १-
 ;  ஢ 1 - 5*5 騩 -; 㧠-
  ᥭ ; ஢ 2 -  ࠢ
, 騢  16 ; 㧠  ᥭ -
.
  ⥢   64        2 GB        64 MB
               50 ns       2000 ns
                   
      : Hewlett-Packard PA-RISC 7100 CPUS;  稯-
 CMOS, 쬨஭; ᮤন: 550.000 ࠭஢, 504

                                - 50 -

⮢ PGA,    .
       :  16 - 32 ⮢ 楫 ᫠  /  ,
32 - 64 ⮢ ᫠  饩 ⮩ ଠ IEEE 754.
               0.4 GF       0.4 GF       0.4 GF
 ந⥫쭮
      :  1  [16 * 16 ], 9 ns SRAMS; ஫ 
⭮;  㠫쭠  ;  64-⮢  ।
;  800 /sec ᪮ ⥭;  400 /sec ᪮  -
.
      :  1  [16 * 16 ],  9ns SRAMS; ஫ 
⭮;㠫쭠  ;  64-⮢    ।
; 800 /sec ᪮ ⥭;
              1       16        1   .CPU
   饭   10 ns     10 ns        -
              1       16        1   .CPU
   饭   10 ns     10 ns         -

                 /뢮
      ⥪ /뢮:  ।,   -
騩 -, אַ   ⥬ 䨧᪮ .
      -設 IEEE 1496 SBUS, .
 /뢮   250 /sec  4 G/sec  250 /sec
                0            128       1-8
 ந⥫. 80  /sec  4 GB/sec   80 /sec
    ஢
  SCSI-2 Fast & Wide    20 /sec     -        20 /sec
  FDDI                  10 MB/sec              10 MB/sec

              ⨢ 믮
 ⨢ 믮: ࠧ - 18"*39"*35" ;
魮 -14 , 200-240 V, 50-60 Hz ;
⥬ ० - 15-27 ;
ਭ㤨⥫쭮 譮 嫠;
 - 3000 lb.

              ⨬  Convex .
                ⨬  
     ⨬樨 ணࠬ: 㯮冷祭   浪 -
権  㥬 ணࠬ  祭  䥪⨢ ꥪ-

                                - 51 -

 . 筮,  䥪⨢   ६
믮 ꥪ⭮ ணࠬ.    ⨬    ⮣ -
  ᯮ짮  㣨,  ਬ, 樮쭮 ᯮ짮-
 ᮢ, 묨 ᯮ 楫   㤮⢮ ⫠ 
.. ਭ ࠧ 設-ᨬ    設-ᨬ  
⨬樨;    몠,  ࠬ  ஢
⨬.
       楯  ⨬樨  Convex .
      (楤)  몮 ࠭     Con-
vex (   SPP ਩)   ஢ ⮬᪮  -
⨬樨,  ﬨ -0,-O1,-O2,-O3.   ।  -
 ⨬樨 砥  ⨬樨 । ஢.
    த pplication Compiler,  ⠢塞  Convex SPP ⤥-
, ॠ  ࠭   ணࠬ  楤୮ -
樨  -  ஢ ⮬᪮ ⨬樨.
     Convex  ᪠ ⨥ 짮⥫    ࠢ
⨬樥 ⠪ ⥬ ᯮ짮 ४⨢ 樨.  ४⨢
  ਥ ᯥ樠쭮  ( ࠭    :
C$DIR <४⨢>)       ⥪ 㥬 ணࠬ 
筥 ᥬ᪨ ᮡ,   奬  ⨬樨  
ࠣ ணࠬ, ᫥饣 ᫥ ४⨢.
      樨 ⨬樨  ⫨     㣠 ࠧࠧ 奬
⨬樨  ஢ ⪮ ணࠬ,     ਬ  
奬.
     ⢨  権 ⨬樨,  㬮砭,   
   樨 -no  ९ 믮 -
 ८ࠧ ࠭᫨㥬 ணࠬ, ਬ:
     1) ஢  ॢ  ᫥ (tree-height reduction or ba-
lancing) ࠦ,   ᯮ짮 ୮    -
᪠ ࠡ   ⠪⮢.  ,  ᫥  㬬  ⢥  ᥫ:
A+B+C+D+E+F+G+H, 㤥 ணࠬ஢  ᫥⥫쭮 -
権: (((A+B)+(C+D))+((E+F)+(G+H)));  蠥  -㬮砭
᫥⥫쭮 ᫥    ⭮ 㬬   -
   १.  浪 㬬஢  ࠢ, -
 ਭ樯 ࠭ ᪮:      ᫥-
⥫쭮 ᫥,  ।ᠭ 짮⥫. ਬ: -
 ࠦ  : (((((((A+B)+C)+D)+E)+F)+G)+H).
     2) ࠢ    (Data  aligment)  - ⠭ 浪

                                - 52 -

⥫  ⨬쭮 ࠧ饭   .

                     -0
      -0  ᭮ 設-ᨬ ᪠ ⨬-
  ஢  ணࠬ (  ⪠), ᯥ稢 ᫥-
騥  ⨬樨:
     1) ⠭ () ᢠ  (assignment  substitution):
ᯮ짮  ॣ஢  砫쭮 ᢠ  ᢠ-
 ६  ࠭ १⮢   ॣ    ६
 ⨬樨 饭  ,
     ᫥ 祭  ࠧ ᢠ ६,   -
  ॣ ,   ,   ॣ ᯮ 
 ࠦ  ६.
   室 ⥪                  ⨬஢ ⥪
     X = Y + C                         REG = Y + C
     X = X * 4                         REG = REG * 4
     T = X*B + 12                      T   = REG*B + 12
                                       X   = REG
     2) ᪫祭  ஢  ᢠ  (redundant-as-
signment  elimination).   ணࠬ ᪫  
ᢠ. .., ᫨ ६ ᢮ 祭  ⥬  -
६   ᯮ,   ⠪ ᢠ ⠥ -
.
     ࠭祭   ᯮᮡ ⨬樨  ᢠ -
६ 祭 㭪樨,ਬ,: Y = Func(X).
       ஢    । 稥  
䥪⮢,        ᪫祭 ⮣ ।.
  ।,   㭪 Func    ⢨, 
 ४⨢  C$DIR NO_SIDE_EFFECT <list funcs>,  
ᯮ짮 ⨬ ஢ .

      䥪⠬  ⠪  樨:
     - /뢮,
     -     ᪨ ६,
     - 맮 㣨 㭪権,
     -  祭 㬥⮢, ।  뫪.

     3) ᪫祭  ࠦ (Common subexpession elimination)

                                - 53 -

     ᫨  ᯮ  ࠦ 饥 ᫥,
  ᫥ ந  ࠧ,   १ ࠭ 
ॣ,   쭥襬 ᯮ  ॣ.  ᠬ ᪫-
 筮 ᫥.
     ਬ 1:
     X = A + B + C + D  ---->          REG = B + C
     Y = B + E + C                     X   = A + D + REG
                                       Y   = E + REG
     ਬ 2:
                                        T = J*B + SQRT(C)
     IF (K < L) THEN                    IF (K < L) THEN
        A = X/(J*B + SQRT(C))              A = X/T
     ELSE                               ELSE
        D = D/(J*B + SQRT(C))              D = D/T
     END                                END
     F = Y/(J*B + SQRT(C))              F = F/T
     ..........

     4) ᪫祭 筮 ᯮ짮 (redundant-use eliminati-
on).  ६,  ।祭   ࠧ饭 ஬
祭, ᯮ ॣ. ( ᯮᮡ ⨬樨  ⭥-
 ⠪  ⨬樨 ࠡ  ).  ⮬  -
 饭  ᭮ .

     DO I=1, N        ---->     REG = X
        A(I) = X                DO I=1, N
        ......                      A(I) = REG
     ENDDO                      ENDDO
     । ᪠      㬥⮢ 㭪権.   ᫨ 
㭪  ६ । ⠭,   室  -
ணࠬ    Run-time  訡   ⠭  -
஢. (. ਬ 6).

     5) ࠭ (propogation)  ᢥ⪠ (folding) ⠭,
           5.1.⪠ ⠭ (folding)
        ⠭ ࠦ   頥    
ꥪ .  ᫥ ࣠ ⠪  ⥬᪨
㭪樨, 室騥 㦥 ⥬᪨ ⥪.

                                - 54 -


     ਬ 1:      y = 5 + 7   ----->   y = 12
                    SIN(0.0)    ----->   0.0

     ਬ 2:
     A = 5                              A = 5
     B = 15                             B = 15
     ........
     IF (I) 10,10,15)                   IF (I) 10,10,15)
     10 A = 6                        10 A = 6
        C = A                           C = 6     ! A=6
        GOTO 20                         GOTO 20
     15 C = A+B                      15 C = 20    ! A=5, B=15
        GOTO 25                         GOTO 25
     20 B = A+C                      20 B = 12    ! A=6, C=6
        GOTO 30                         GOTO 30
     25 B = B+A+C                    25 B = 40    ! B=15, A=5, C=20

      5.2. ࠭ ⠭ (propagation)
     ᫨ ந室 ᢠ ६ ⠭⭮ 祭, 
,    砥  ६,   ந 
६   ⠭⭮ 祭.
     ਬ:
     I = 5      --------->              I = 5
     J = 0                               । ᪫砥
     ..........
     J = 2                              J = 2
     .........
     K = K + I*J                        K = K + 10

     6) 饭  ࠨ᪨   ਣ᪨ ࠦ
        (Algebraic and trigonometric simplification):

     X-X      ---> 0           1**X  ------>       1
     X/-1         -X           X/X                 1
     X+0           X           0/X                 0
     X*0           0           sin(X)*cos(X)       0.5*sin(2X)
     X**0          1           sin(X)/cos(X)       tn(X)

                                - 55 -


                    -1
     -1 ᯥ稢   ⨬    㯯
  ⪮    ணࠬ    ।
 ॣ:
     - ࠭  ᢥ⪠ ⠭,
     - ᪫祭  ஢ ᢠ,
     - ᪫祭 㯨 (⢮)  (dead-code elimination),
      ⠥ ,     믮,  ਬ
,  騥 ⮪   ।ﬨ GOTO  STOP.
       ⭮ 砨,    १ ᢥ⪨  -
࠭ ⠭   ࠦ  ⠭⮩.  
⠪ ࠦ ᯮ ⠭,   室   -
祭 ࠦ ᪫.
     - ࠭  (copy propagation),
     - ᪫祭  ࠦ,
     -   (code motion)- 뭮 ਠ ࠦ-
  横,
     ਠ (ᨬ   横) । 뭮
 ⥫ 横.  ᠬ  ६ 믮 横.

     DO I=1,N                                  A = B/(1-SQRT(C))
        A = B/(1-SQRT(C)) -    I    DO I=1,N
        D(I) = A+B+C                              D(I) = A+B+C
     ENDDO                                     ENDDO
      - ᨫ쭠 । (strength reduction): ᪮७ ।-
権  (  X**2 -> X+X ,  ⥭樠쭮 ᭠ ⨬,  ᫨
 X/C -> D=1/C D*C),
      뢠 ᯮᮡ ⨬樨,   䬥᪨ 樨
  㣨 樨  (    䬥᪨),  騥
 १  믮騥  .
       ६  ᫠ 2, 4, 8, 16   
       ᤢ: J*2  ---> hift(J,1)
               J*4       hift(J,2),  ..
        2  ᫮: X*2  ---> X+X
        ⠭  㬭  ⠭:
              X/C  ---> X*D,    D = 1/C
      ⨬  ਬ  ࠦ,  ᯮ騬 -

                                - 56 -

 ६ 横.
     ਬ,  ᫥饬 横  ᯮ,   ᭠
६ ᥣ 㢥稢  2,   ᫥⥫쭮,  横 
। ᢠ X = I*C ⠭      2*  
뭥   । 横.   ॠ樨 ॡ   -
 ६.
     void SR()     ------------>           void SR()
     {                                     {
       int i = 1; /* ६ 横 */     int i = 1;
       ........                              t1 = C;
       do {                                  t2 = C+C;
            x = i*C;                         do {
           .........                             x = t1;
            i += 2;                              ......
       } while( i <= 100);                       t1 += t2;
     }                                           i += 2;
                                             } while)i <= 100);
                                            }
      - ।  ॣ஢ GRA.

                    -2
     -2  設-ᨬ :  ⨬ -
 ,  ᯥ稢 襥 ᯮ짮 -
  饭    2 ஢  ;   ⮪
  쭮 ஢  ।  ॣ-
஢ (  ਨ  - ਧ):
     - १  (strip  mining) - 㭤⠫ -
 樨.   믮  横    ᥪ樨  -  -
 (strip), 믮塞   横.
     室 横                ࠭ନ஢ 横
     DO I=1,10000                 DO II=1,10000,1000
      A(I)=A(I)*B(I)                DO III=II,II=999
     ENDDO                            A(III)=A(III)*B(III)
                                    ENDDO
                                  ENDDO
     ᫮ 権  ७  横  뢠   ਯ 
䠪஬ ஢.  ஢  ᮮ⢥⢮ ࠧ-
 -,  , 㥬 ࠬ஬ 横.

                                - 57 -


     - । 横 (loop distribution) - 㭤⠫  -
 ࠭ଠ樨 横.   -  "訥" 横,  -
᫥ 室 横 믮﫨  ⨬樥.   ⮣ -
ࠧ  - ७  ஢ ᢠ  ᠬ ७
横 , ⥬ ᠬ, 祭 ᭮ 横.  ⠪ ८-
   ᯠ  室 横  ᪮쪮 -
 横.  । ᪠뢠  樨 饭   -
     "㯫⭥" - (cache crowding). (
㯫⭥  ᨬ쭮  ᯮ짮 , -
  ).
     室 横                ࠭ନ஢ 横
       DO I=1, N        ------->  DO I=1, N        DO I=1, N
         B(I,1) = 0                  B(I,1) = 0     D(I) = E(I) + A(I)
         DO J=1, M                ENDDO            ENDDO
          A(I) = A(I) + B(I,J)    DO I=1, N
         ENDO                        DO J=1, M
         D(I) = E(I) + A(I)            A(I) = A(I) + B(I,J)
       ENDDO                         ENDDO
                                  ENDDO

  DO I=1,N                        DO I=1,N
    B(I,J)=0                        B(I,J)=0
    DO J=1,M                      ENDDO
      A(I)=A(I)+B(I,J)*C(I,J)     DO I=1,N
    ENDDO                            DO J=1,M
    D(I)=E(I)+A(I)                     A(I)=A(I)+B(I,J)*C(I,J)
  ENDDO                              ENDDO
                                  ENDDO
                                  DO I=1,N
                                    D(I)=E(I)+A(I)
                                  ENDDO

     - loop interchange:  冷 믮 -
஢ 横       ᯥ祭 ⨬쭮 饭 
  ᠬ ७ 横  ᨫ 㣨 ࠭ଠ-
樨.  ⨬ 믮  ⮣, ⮡:
     - ⨬஢ ࠡ    ७ 横,

                                - 58 -

     - ᨫ 㣨 ८ࠧ,
     - ᤥ 横 㯭  ᯠࠫ.
      ८ࠧ ᮪頥 ⢮ 樠権   -
 横 (䨪 樮 ६,   믮 -
):

     DO I=1,200    - - 1 ࠧ   ----> DO K=1,50    -    1 ࠧ
       DO J=1,100  -       200 ࠧ          DO J=1,100  -   50 ࠧ
         DO K=1,50 -     20000 ࠧ           DO I=1,200 - 5000 ࠧ
           ....... - . 1 ࠧ            .......
         ENDDO                               ENDDO        ⮣:5051 ࠧ
       ENDDO         ⮣:20201 ࠧ        ENDDO
     ENDDO                                 ENDDO

      - loop  blocking;  ஢  横  -  
। ⬮  ᨬ쭮 樨 .
         - spatial reuse ࠭⢥ २ᯮ짮,
         - temporal reuse ६ २ᯮ짮.
     ।⠢ ᮡ   १    ⠭
஢   横.
     ।祭  ࠡ  祭 訬 ᨢ ,  -
  ᨢ  ࠧ -.
     १ ந   ࠧ஬, ࠢ 㦠 
-.   ⥬   㦥     㦭 ந-
    ᫥,  ⮡ ஢  饭  
᭮ .  ᫥  ந ⠭ ஢
 .
      ஢ 易 ⨥ ⭮ ᯮ짮  -
 (Data reuse).    ⭮ ᯮ짮:
     - ࠭⢥ ᯮ짮 (spatial reuse),
     - ६ ᯮ짮 (temporal reuse).

      spatial  reuse    ᯮ짮 
࠭⢥  , 㦥  .
     Temporal reuse 砥,    , 㦥 
,  ᯮ짮,   ࠩ ,  2-   
横.
      横:   DO J=1, M

                                - 59 -

                    DO I=1, N
                      A(I,J) = B(J,I) + C(I)
                    ENDO
                  ENDDO

        A(1,1)              B(1,1)      C(1)
        A(2,1)              B(2,1)      C(2)
        A(3,1)              B(3,1)      C(3)

     ----J----           ----I----      
                
                
                
    I      J    
                

       (line cache) -  , 㦠    -
 .  ⨬,   ࠧ  ࠢ 32  (4 
 8 ).
     ᨢ :   ᨢ 㦠     4-  ⮢  -
 ࠭⢥ ᯮ짮 .  A(1,1:4)
     ᨢ :    J=1   樨  I 㦠 ,  
ன ᯮ㥬 ⮫쪮  .   ⮬ 砥   -
࠭⢥,  ६ ᯮ짮.  㦥  室  J=2 
  室    Spatial reuse.
     ᨢ :   樨 J=1  ࠭⢥ ᯮ짮, 
 J=2,.. ६ ᯮ짮.
     ஢ 横  :
     DO IOUT=1,N,IBLOCK
       DO J=1,N
         DO I=IOUT, IOUT+IBLOCK-1
             A(I,J) = B(J,I) + C(I)
         ENDO
       ENDDO
     ENDDO
     ஢  ࠢ     ४⨢  ,
㪠뢠 䠪 ஢: C$DIR BLOCK_LOOP [(BLOCK_FACTOR=m)]


                                - 60 -

     - ꥤ  横 (loop fusion) 㦨  ⨬樨
饭     樨,
     - loop unrolling: ࠧ稢 横 - ᯨ뢠 横 -
⥫쭮 ஢ ᢠ:  ,  ࠧ-
 ⥫ 横   樥⮬ (䠪஬) ࠧ.
     ந 筮   ࠧ稢 横  ᫥-
⥫ ⮪ .   筮 ࠧ稢 ᯮ ⠪
뢠 䠪 ࠧ稢 (      ४⨢
).
     ४⨢ : C$DIR UNROLL [(UNROLL_FACTOR=m)]

     DO I=1,100                  DO I=1,100,4
       A(I) = B(I) + C(I)          A(I) = B(I) + C(I)
     ENDDO                         A(I+1) = B(I+1) + C(I+1)
                                   A(I+2) = B(I+2) + C(I+2)
                                   A(I+3) = B(I+3) + C(I+3)
                                 ENDDO
      ⮬  ८ࠧ ᭨ ⢮  樮-
 ६.

      - loop unroll and jam: ࠧ稢 横  ᡮ  
   稢 横  ᦠ⨥  ᭮ 
      ८ࠧ   । ࠢ   襭  -
䥪⨢ ࠡ    ॣࠬ  ( 樨 饭  ᭮
)   横.
       ᪮쪮 横, 譨  ⭮襭  ᠬ ७-
 横,  筮 ࠧ稢,   ⥬ 祭 横  ᭮
ᦨ.
      䥪⨢  ஢  ⮣  ८ࠧ 室 横
  ᭮   뫠    ,    
ਬ ६ ⭮ ᯮ짮 (temporal reuse). -
訬 ⠬  ⠪ ८ࠧ  ஢ 横,
..   㡮  ⠢  ꥪ⮢ (ᨢ) 
६ ᯮ짮  横,  譨 ⭮⥫쭮 ᠬ  -
७ 横. ਬ - ६ .

     REAL *8 A(1000,1000), B(1000,1000), C(1000,10000)
     COMMON A, B, C

                                - 61 -

     ...............
     DO I=1,1000                                     ENDDO
       DO J=1,1000                                 ENDDO
         DO K=1,1000                             ENDDO
            C(I,J) = C(I,J) + A(I,K)*B(K,J)
      ॠ樨  横    ⠪  ॡ  ॣ:  
C(I,J), A(I,K), B(K,J).
     -, ਬ   ⮬ 横 ८ࠧ ⨯ ஢-
.  ..,  ᭠砫 ०   ᠬ ७ 横,   ⥬
   塞 ⠬.

     १   ࠧ஬ KBLOCK:
     DO I=1, 1000
       DO J=1, 1000
         DO KOUT = 1, 1000, KBLOCK
           DO K=KOUT, KOUT+KBLOCK-1
              C(I,J) = C(I,J) + A(I,K)*B(K,J)
           ENDDO
         ENDDO
       ENDDO
     ENDDO

       J  KOUT 塞 ⠬,   ࠧ  ᯮ-
 ᨢ (,J):
                        DO I=1, 1000
                          DO KOUT = 1, 1000, KBLOCK
                            DO J=1, 1000
                              DO K=KOUT, KOUT+KBLOCK-1
                                 C(I,J) = C(I,J) + A(I,K)*B(K,J)
                              ENDDO
                            ENDDO
                          ENDDO
                        ENDDO

     ०   ᠬ 譨 横  I:
     DO IOUT=1, 1000, IBLOCK
       DO I=IOUT, IOUT+IBLOCK-1
         DO KOUT=1, 1000, KBLOCK

                                - 62 -

           DO J=1, 1000
             DO K=KOUT, KOUT+KBLOCK-1
               C(I,J) = C(I,J) + A(I,K)*B(K,J)
             ENDDO
           ENDDO
         ENDDO
       ENDDO
     ENDDO

     塞 ⠬     I,  KOUT,  J:
     DO IOUT=1, 1000, IBLOCK
       DO KOUT=1, 1000, KBLOCK
         DO J=1, 1000
           DO I=IOUT, IOUT+IBLOCK-1
             DO K=KOUT, KOUT+KBLOCK-1
               C(I,J) = C(I,J) + A(I,K)*B(K,J)
             ENDDO
           ENDDO
         ENDDO
       ENDDO
     ENDDO

     -,  祭 横 ਬ ८ࠧ  ⪠
 ᦠ⨥. ⪠  䠪஬ 2 横  J, I:

     DO IOUT=1, 1000, IBLOCK
       DO KOUT=1, 1000, KBLOCK
       DO J=1, 1000, 2
- DO I=IOUT, IOUT+IBLOCK-1, 2      ⪠ 横  I
⪠ -    DO K=KOUT, KOUT+KBLOCK-1
 J        C(I,J) = C(I,J) + A(I,K)*B(K,J)
           ENDDO
           DO K=KOUT, KOUT+KBLOCK-1
             C(I+1,J) = C(I+1,J) + A(I+1,K)*B(K,J)
           ENDDO
        ENDDO
        DO I=IOUT, IOUT+IBLOCK-1, 2
           DO K=KOUT, KOUT+KBLOCK-1

                                - 63 -

             C(I,J+1) = C(I,J+1) + A(I,K)*B(K,J+1)
           ENDDO
           DO K=KOUT, KOUT+KBLOCK-1
             C(I+1,J+1) = C(I+1,J+1) + A(I+1,K)*B(K,J+1)
           ENDDO
        ENDDO
       ENDDO
       ENDDO
     ENDDO

     ⨥ 横:

     DO IOUT=1, 1000, IBLOCK
       DO KOUT=1, 1000, KBLOCK
         DO J=1, 1000, 2
           DO I=IOUT, IOUT+IBLOCK-1, 2
             DO K=KOUT, KOUT+KBLOCK-1
               C(I,J) = C(I,J) + A(I,K)*B(K,J)
               C(I+1,J) = C(I+1,J) + A(I+1,K)*B(K,J)
               C(I,J+1) = C(I,J+1) + A(I,K)*B(K,J+1)
               C(I+1,J+1) = C(I+1,J+1) + A(I+1,K)*B(K,J+1)
             ENDDO
           ENDDO
         ENDDO
       ENDDO
     ENDDO

      ᫥  横   3- ॣ஢ ᯮ짮-
 8  ॣ஢    ᨢ  C(I,J),  A(I,K),  B(K,J),  C(I+1,J),
A(I+1,K), C(I,J+1), B(K,J+1), C(I+1,J+1).
      ࠩ ,  㦥   ࠧ 㬥蠥 饭  ᭮
, ..   ॣ ᮤঠ   ꥪ:  I, I+1  
J, J+1.
     ᫨ 㢥 䠪 ⪨,        
७ 横  (⢮  ஢  ᢠ),    ⮣
ॡ 襥 ⢮ ॣ஢.
     믮 ⮣  ८ࠧ  ࠢ,    -
४⨢  䠪 ⪨,   ⠪  ਬ  ४⨢  

                                - 64 -

⭮ 横: C$DIR UNROLL_AND_JAM [(UNROLL_FACTOR=m)]

     - IF-DO and IF-FOR  optimization:  ⨬  㪠
権   ८ࠧ 横, ᮤঠ 樨 IF (for)
      १ ८ࠧ  IF    뭥ᥭ  
। 横,   ஢.

     ८ࠧ ᯠ   ⥣ਨ:
     - ᪫祭 筮  (Redundan test elimination)
     - ⪠ 横 (loop boundary-value peeling)
     - ७  (test promotion)

     Redundan test elimination
     ᯮ,   ᥣ ਢ     १  
  ᪫  直  .
     DO I=1,N               ------->    DO I=1,N
       IF(I .GT. 0) THEN                   DO J=1,I
          DO J=1,I                           A(I,J) = 0
             A(I,J) = 0                    ENDDO
          ENDDO                         ENDDO
       ENDIF
     ENDDO

     Loop boundary-value peeling
     ந ⤥  横 ࠭ 祭.   ८-
ࠧ ਬ  ,   ⥫ 横  
( IF) 祭 ᭮ ६.  ⮬ , :
     - ࢠ / ᫥ 樨 뭮  横,
     -  ࠭ 横,
     -  ⮢ ஢ઠ.

      拉  砥    ८ࠧ  ਢ   㢥祭
ணࠬ ,  ⥬ ᠬ,  㢥祭 ᯮ塞 䠩.
     ᫨  横  ஢,  易  ࠭묨 祭ﬨ
᭮ ६,  ࠭   ࠧ  -
 ஢,         ਢ  ९
७ ⠡ .
     ਬ:

                                - 65 -

     DO I=1,100                       A(1) = B(1)
       IF (I .EQ. 1) THEN             DO I=2,99
          A(I) = B(I)                    A(I) = -A(I)
       ELSEIF (I .EQ. 100) THEN       ENDDO
          A(I) = C(I)                 A(100) = B(100)
       ELSE
          A(I) = -A(I)
       ENDIF
     ENDDO

     Test promotion - 뭮  IF  ⥫ 横
      IF 뭮  । 横,   横   -
 ⪥  IF.   ८ࠧ 易  ⥬,   横 
஢ ᫮ 믮 ॥.
     ᫨  横  ᪮쪮  ஢,  뭮 -
   ⠪ ,   ᮮ⢥⢥,   ⢥
 ⥫ 横.
     ਬ:
     DO I=1,N     ----------->    IF (A .EQ. B) THEN
        IF (A .EQ. B) THEN          DO I=1,N
          X(I) = Y(I)                 X(I) = Y(I)
        ELSE                        ENDDO
          X(I) = 0                ELSE
        ENDIF                       DO I=1,N
     ENDDO                            X(I) = 0
                                    ENDDO
                                  ENDIF

     - scalar replicement:  ࠭ ᪠஢, ᮪饭 ᫠
 饭  ஢ ६
      ⮢ ᨢ,  ਠ  ⭮⥫쭮  横,  
᪠ 祭,   ࠧ  ॣ,  ⥬
ᠬ 饭  ᭮   .

     DO I=1,N         ----------->       DO I= 1,N
       DO J=1,N                             REG = A(I)
         A(I) = A(I) + B(J)                 DO J=1,N
       ENDDO                                   REG = REG + B(J)

                                - 66 -

     ENDDO                                  ENDDO
                                            A(I) = REG
                                         ENDDO
     ୠ     ந,  ᫨  ᨢ   
뫪,   ᨢ ᮤঠ  ᫮ ࠦ.

     -    (inhibitors of localixation)  
横.
       ஢  横:
     -  ᨬ  ,
     - ᯮ ६  ᨢ  묨 ,
     - ᮤঠ  STOP, GOTO, RETURN,
     - ᮤঠ  /뢮

     ) 樮 ᨬ 横
        Loop  carried  dependencies (LCD)
      ᨬ    ,    樨
横 ᯮ (ᢠ) 祭, 砥  ᯮ
㣨 権.
     ਬ 横  樮 ᨬ  ᨢ :

     DO I=2,N
       DO J=1,N
         A(I,J) = A(I-1, J+1) + B(I,J)
       ENDDO
     ENDDO
      ⮣  横   樨 ᯮ  ।-
饩 ப  ᫥饣 ⮫:
     
        祭 ⮢  ।饩  ப 㦥
        ନ஢  ⮬ ,   
        ᯮ짮  ⥪饩 樨.
     

     ᫨  ⮬ 横 ਬ ८ࠧ ⠭ -
஢   (Intrchanging),     横     -
  ⮫栬,  ᯮ 祭 ᫥饣 ⮫.


                                - 67 -

         ᫥    ᯮ짮
        ,     뫨 ᫥.  
        ⮬ 砥 㤥 祭 १,  ⫨-
          १ 室 横,  -
         訡.
     



                    -3
     -3 ᯥ稢  ᯠࠫ.  ࠫ
ந । ࠡ ணࠬ   thread.
      ᪮쪮 ஢  প  ᯠࠫ  ண-
ࠬ:
     - ⮬᪨ (⨬   樥 -3),
     - ᯮ짮 ४⨢ 樨,
     - ᯮ짮 ⥪ প ஢  ࠫ
       ணࠬ Compiler Parallel Support Library - CPSLib.
        ஢ ⭮  ᮪஢ 䥩 ,  
,  ணࠬ  ७ ᯥ⮢ ᯠࠫ-
.  ᫥  ஢  ⭮  ஢ 䥩 
ॡ  ணࠬ  ७ ᯥ⮢  ᯠࠫ-
.
         ஢ ⮬᪮ ᯠࠫ
      ⮬  ᯮᮡ ⨬樨  ⮬᪨ ࠧ 
 (thread),     믮  ⤥쭮 .
⮬᪮  ᯠࠫ    ਬ ⮫쪮  横-
᪨  (DO - ENDDO).   ᫨ 㦥,   横᪨
  ᯠࠫ,  ନ ࠫ ,  -
 ᪠   㯭  .  ⢮  㯭
஢ ⠭  㬮砭,     ⠪ 
   ४⨢ 樨,  㪠뢠  MAX_TREAD: C$DIR
LOOP_PARALLEL [(MAX_TREAD=m)].
     ᯠࠫ 横᪨ 権 ⢫   -
 ४⨢  BEGIN_TASK - NEXT_TASK - END_TASK  㭪-
ﬨ CPSLib.
     ⮬᪮ ᯠࠫ    ⮫쪮   ⮬ 砥,
᫨  ᠭ ணࠬ ᯮ짮 ࠤ ணࠬ஢

                                - 68 -

   饩 .   砥 ᯮ짮  ணࠬ-
஢ " ᮮ饭ﬨ" ᯠࠫ ⢫  
ᯥ樠쭮 ।祭 PVM-㭪権.

     ࠢ ࠧ    祭 ThreadID
     ᯠࠫ  ஢ 横 砥  ࠧ 横
    樮 ࠭⢮ ࠧ஬ N/NPROC ( N - -
 権 横, NPROC - ⢮ 㯭 ஢)  ᪥
 ⥩.  ᫨ ᫮ 権   楫  ᫮  -
஢,     㦥  襩 ⥯.
      ᢠ     0  NPROC-1.
       ᪥  ,   ⮫쪮 ᠬ ࢠ  -
    ஬ 0 ⨢  ᪥.  ⠫  -
  饬 ﭨ (㦥  믮,   믮)
  ,    ᨣ  砫 ࠡ.  0 믮
 窨 ᯠࠫ  뫠 ᨣ 㣨 . ᫥ -
祭 ⠪ ᨣ  ॢ  ⨢ ﭨ,  믮
᢮ ࠡ,  ᭮ 室  饥 ﭨ.
     奬筮   ࠧ ⠪:
     :
     0       1       1     ....    N
           idle    idle          idle
     
     Ŀ    <--  ⮩ 窥  0 -
I=1-   I=129run    run           run      ᨣ
 -128    256                     
         <--  ⮩ 窥  
           idle    idle           idle      ᮡ, ०, 祬
                                              0 ᬮ த-
                                              
      ⠪ ᯠࠫ  ࠧ 横    
筮  ⮬,    ந १  ਯ  樨
.   ⫨稥  ⮩ ⨬樨,  ।筨⥫쭥 ᯠ-
ࠫ  ᠬ 譥 横.
      横   (strips)      ᫠  㯭
஢  稭 ᫥饬 ࠢ:
     FOR  㯭  믮
      DO I=ThreadID*(N/NumProc)+1, N/NumProc + ThreadID*(N/NumProc)

                                - 69 -

          A(I) = B(I) + C(I)
      ENDDO
     ENDDO
  NumProc  - ⢮ 㯭 ஢,
     ThreadID -  (䨪)  [0..NumProc],
     N        - ᫮ 権 横
      ࠧ 뢠 strip-based parallelism  (..  ᭮-
  ).

           뤥   ࠫ 
      㬮砭,     ஬ 0 (⢥  ᫥⥫쭮
ணࠬ)  ࠡ 뤥 䨧᪮  ࠭⢮  ⨢
   ࠧ襭 ணࠬ   ,  祬 䠪᪮ -
⠢  ந ᪨,   ७ -
 㠫 ᮢ  ࠡ ணࠬ.   ࠭⢮ -
,  祬 ᨬ쭮 ⨬ ꥬ 㠫쭮 .  ( SPP 
 ꥬ 業  128 ).  㢥祭 䨧᪮ -
࠭⢠   ᯮ짮 ४⨢ UNIX:
     $mpa -stack <n> a.out ,  n - ꥬ ॡ㥬   ,
a a.out -  ᪠  ᯮ ணࠬ.
    ࠡ ࠫ ⥩ (⥩  ࠬ >  0),  㬮砭
뤥 8   .     祭  ࠭    ६  ।:
CPS_STACK_SIZE .  ४஢  祭.
      csh 窥: setenv CPS_STACK_SIZE <n>
      ksh 窥:
          CPS_STACK_SIZE <n>
          export CPS_STACK_SIZE <n>
    । ⥪饩 窨 ( Shell )
 ᯮ짮 ४⨢: echo $SHELL

          ࠭祭  ᯠࠫ 横
     ᯠࠫ 横 ⨬, ᫨  横  ࣠-
     믮 樨     ᫮
᫥. 設⢮ ࠭祭,  뢠   -
, ⠪ ࠭稢  ᯠࠫ 横: LCD-ᨬ,
, 室  横  GOTO, 樨 /,  ..
     ) LCD-ᨬ
       ⥣ਨ ⮩ ᨬ:

                                - 70 -

     - ForwardLCD ("।" ᨬ)
     - BackwardLCD ("" ᨬ)
     - OutputLCD  ( /뢮)

     Forward LCD
     ,    樨  뫪  ६,  
祭   ᫥ : A(I) = A(I+1) + B(I)
     A(1) <-- A(2)   砫 .. ᢮ 祭 (1)  ⮫쪮
     A(2) <-- A(3)   ᫥ ⮣   祭 (2)
     ....
     ᫨  横  ࠫ쭮 ( ᨭ஭),   ࠭-
 樮 ࠭     樨,    
祭  ᢮ ६  ⮣,   뫨 ᯮ짮 
 祭:

                                    A(4),A(8),.... ..  ᫥-
        P1      P2      P3           - 樮  ࠭-
                                    ⢠ 㤥 :    1 -
         믮 ᢠ  (4) =
        (5),     ⮬   2 㦥
                                      (5)  祭(
                                     .. ).

     Backward LCD
      ⥪饩 樨  뫪  ६,  祭 ..
ନ஢  ।饩 樨: A(I) = A(I-1) + B(I)
      ࠫ쭮  ᪥: ᫨    ᢠ  (I)  祭
A(I-1)   뫮 ᫥,  A(I)   १.

         1     2      3            (஬ (1)) -
        樮 ࠭⢠  Pi
        㤥   १-.

     Output LCD
       筮 । 祭  ६:
                            A(J(I)) = B(I)
          祭 ᨢ J,   
 LCD ᨬ,    ।᪠㥬 १ 

                                - 71 -

⮬᪮ ᯠࠫ  ந.
     ᫨  ணࠬ ⭮ ࠭,    LCD 痢  
ᨢ J,   ४  ந ᯠࠫ-
,  ᮮ騢   ४⨢ NO_LOOP_DEPENDENCE (  ᨢ),
  ᮮ⢥饩 ᨬ.

              冷祭 ᥪ樨
      ⮬᪮ ᯠࠫ 横 DO  㬮砭 -
㬥,   믮 ࠫ쭮  ᨬ   -
, ࠡ   ᢮ ࠭⢮ .  ᫨  ⥫ 横-
    LCD-ᨬ,    ⮣   -
冷 믮 権.  ࣠樨 ࠡ  ⠪ ࠬ
।ᬠਢ ᯥ樠 ४⨢,  ।騥  ᫥⥫-
 믮 権.
     ४⨢:

     C$DIR LOOP_PARALLEL(ORDERED)  C$DIR BEGIN_TASK(ORDERED)
ᮮ ,     ⥩  믮 ᫥-
⥫쭮.  ⮬ 㤥 ᮡ ᫥饥 ࠢ ᪫ 横:
     DO I = MyThread +1, N, NThread
       .....
     ENDDO

    :   0             1             2    ........      7
     Ŀ Ŀ Ŀ     Ŀ
     DO I=1,100,8 DO I=2,100,8 DO I=2,100,8     DO I=8,100,8
            

     襯ਢ ४⨢  樥 ORDERED ࠭ ᫥-
⥫ 室   ,    ࠭ ᫥⥫ -
襭.   砥,   1    砭  0, 
..  ᫨      LCD-ᨬ,   
ਢ   १⠬. ⮡  ⮣, ⠪ 
 ࠧ  ⠪ 뢠 㯮冷祭 ᥪ樨.  冷祭-
 ᥪ  ࠭ ।饭 室 i-   ⮩ ᥪ-
樨   ,     믮 ⮩ ᥪ樨   (i-1)-
.
     冷祭 ᥪ 뤥 ४⨢:

                                - 72 -

     C$DIR ORDERED_SECTION(gts) - C$DIR END_ORDERED_SECTION
 gts -  ६,  믮 ஫ ᥬ  ࣠-
樨 㯮冷祭 室  ᪨ ⮪.   ६ -
⥫쭮   㯮  ४⨢ C$DIR GATE(gts).
     ⠫   㯮冷祭 ᪠   믮-
 ᨬ ࠫ쭮.  ⮡ ⠪ 横  䥪⨢, -
 ஢  ( LCD-ᬮ)   筮 -
, ⮡  믮﫨,   ⠫ .
     ᫨ ।⠢ 믮 横  ६:
               >   浪 権
     Ŀ
     
       >    浪

      ᫥⥫쭮 믮  㯮冷祭  ᥪ樨  
ࠧ ⠪:                 I=4
                                
                       I=3         3
                       
              I=2                  2
              
      I=1                         1
     
       0
                                   I=5

         ᪨ ᥪ樨
     ஬ 㯮冷祭 ᥪ権   ᪨ ᥪ樨,  室
  ..  ந쭮 浪. ᪨ ᥪ樨 ࠭稢
ࠣ ࠡ  ।樮묨 ६묨.
     樮 ६ - ᮡ  ᨬ  ।

            var = var op expr   op = +, -, *, /, and, or.

 㦠   १.

४⨢  祭 ᪮ ᥪ樨:


                                - 73 -

     C$DIR CRITICAL_SECTION - C$DIR END_CRITICAL_SECTION
     1.   横 ।,  㤥  䥪⨢ ॠ
஢?
     line cache = 32 

     REAL *8 A(1000,1000), B(1000,1000), C(1000,1000)
     COMMON A,B,C
     ..........
     DO I=1,1000
       DO J=1,1000
 C$DIR BLOCK_LOOP(BLOCK_FACTOR=112)
         DO K=1,1000
           C(I,J) = C(I,J) + A(I,K)*B(K,J)
         ENDDO
       ENDDO
     ENDDO

     ᨢ    ࠧ  ਯ ࠧ஬ 112*8=896 .  
稭  楫  ࠧ :  896/32 = 28,    ,
    ᯮ .

                         
     ६  ⨯       ᠭ  COMMON , 
 DIMENSION, 䠪᪨  ଠ묨 ࠬࠬ.
       樠஢   DATA.
   ਬ:
     C$DIR BARRIER (bar_arr)
           DIMENSION bar_arr(2:6)
     ᠭ   㬥,  㬮砭, ⭮ ४-
⨢: C$DIR BARRIER (my_barrier).
     
          祭 
     祭  ந ஬:
     intvar = ALLOC_BARRIER(barr-var),
      intvar 砥 祭 ⫨筮     barr-var,,
砥 祭 -1.
     
        ᢮ 

                                - 74 -

     ᢮  ந ஬:
     intvar = FREE_BARRIER(barr-var),
      intvar 砥 祭 ⫨筮     barr-var,,
砥 祭 -1.
     
         ஭ 믮 ⥩   ஢
 ணࠬ WAIT_BARRIER 㦨  ணࠬ஢ 㪠⥫ ᨭ-
樨     ᨭ஭樨 ⥩.
     
      :
     intvar = WAIT_BARRIER(barr-var,num),
      intvar 砥 祭 ⫨筮     barr-var,,
砥 祭 -1.
     num   ,    믮 । -
 ६ ࠡ ⠫ ⥩.
     ਬ,
     X = WAIT_BARRIER(my_barrier,3),
     
        
      㦠  ஢ ⪮    ६.
     ६  ⨯  GATE     ᠭ  COMMON , 
 DIMENSION, 䠪᪨  ଠ묨 ࠬࠬ.
       樠஢   DATA.
   ਬ:
     C$DIR GATE (gate_arr)
           DIMENSION gate_arr(10)
     ᠭ   㬥,  㬮砭, ⭮ ४-
⨢: C$DIR GATE (my_gate).
     
          祭 ᥬ
     祭 ᥬ ந ஬:
     intvar = ALLOC_GATE(gate-var),
      intvar 砥 祭 ⫨筮     gate-var,,
砥 祭 -1.
     
        ᢮ ᥬ
     ᢮  ந ஬:
     intvar = FREE_GATE(gate-var),

                                - 75 -

      intvar 砥 祭 ⫨筮     gate-var,,
砥 祭 -1.
     
         न 믮    ᥬ஢
       न  믮   ᥬ஢ 㦠 㭪樨
LOCK_GATE  UNLOCK
     
        ᥬ:
     intvar = LOCK_GATE (gate-var),
      intvar 砥 祭 ⫨筮     gate-var,,
砥 祭 -1.
        ᥬ:
     intvar = LOCK_GATE (gate-var),
      intvar 砥 祭 ⫨筮     gate-var,,
砥 祭 -1.
     ਬ ᯮ짮 ᥬ:
      INTEGER X
C$DIR GAME (my_gate)
      .
C$DIR LOOP_PARALLEL
      DO I = 1,N
      .
      X = LOCK_GAME(my_gate)
      TOT = TOT + A(I)
      X = UNLOCK_GAME(my_gate)
      .
      ENDDO
     
          ਭ樯  楯 pplication Compiler (APC)
     Convex   ஬   ࠧࠡ⪨  ॠ樨 -
⬮ 楤୮ ⨬樨 (),    ਨ   -
 ஥  ⥬ ணࠬ஢  뢠 ᮮ⢥-
騬 ﬨ ஢  몮 ࠭      (  㬥  
뫪   ).  ࠭ nvex S ᪠ ᯮ짮  -
権  樨 ணࠬ   ਨ    (  --
樨).⥬ APC,  뢠   pplication Compiler.  User's Guide,
⥣ ⥬ ணࠬ஢ ࠭, ,  , make.
     Convex pplication Compiler ।祭  ⨬樨 -

                                - 76 -

樨, ந ᨬ쭮 ⨬   쭮 ⥫-
⢥ ணࠬ.
      Convex ࠭  Convex  C  pplication  Compiler  ந
।⥫쭮  ⨬,   楤୮ 
 ஫ ᯮ짮 楤. ଠ, 㥬 pplicati-
on Compiler,     䥪⨢ ணࠬ,  祬 
ணࠬ஢ 楤 ⤥쭮.    ଠ樥  १-
  楤୮    ᯮ pplication Compiler 
祭 ⨬쭮 .
     ⠪, pplication Compiler, ᯥ稢  ⨬, -
 ந ⠭ 楤    맮    ஢
㣨  楤࣮ .

           
      㬮砭,   ᯥ稢 ᫥騥   楤
⨬樨:
     - ࠧ 楤 ⠭,
     - ⮬ ⠭ ⥪,
     - ஢ (ࠧ) 楤,
     - ⮬᪮ ᯠࠫ 横  맮 楤,
     - 襭 ஫ 訡,
     - ஢  ᥢ  㪠⥫,
     - ⨬ 㧪,
     - ᪫祭 䫨⮢  .

           楤 ⠭
     室 ⥪               ⨬ ⥪
   SUBROUTINE SB(AR)              SUBROUTINE SB(AR)
   REAL AR(*)                     REAL AR(*)
   INTEGER N                      INTEGER N
   N=128                           * ⠭ ⠭
   DO I=1,N                        DO I-1,128
     AR(I)=AR(I) / 3.1416            AR(I)=AR(I) / 3.1416
   ENDDO                            ENDDO
   END                              END

     pplication Compiler  ࠭ ⠪ ⨬ 
楤 ஢:

                                - 77 -

     室 ⥪               ⨬ ⥪
   PROGRAM MAIN                   PROGRAM MAIN
   REAL AR(128)                   REAL AR(128)
   N=128                          N=128
   CALL SB(AR,N)                  CALL SB(AR,N)
   END                            END
   SUBROUTINE SB(AR,N)            SUBROUTINE SB(AR,N)
   REAL AR(*)                     REAL AR(*)
   INTEGER N                      INTEGER N  ! N=128
   DO I=1,N                        DO I-1,128
     AR(I)=AR(I) / 3.1416            AR(I)=AR(I) / 3.1416
   ENDDO                            ENDDO
   END                            END

                   ४७⭮
     室 ⥪               ⨬஢ ⥪
     PROGRAM MAIN                 PROGRAM MAIN
     PARAMETER (M=200)            PARAMETER (M=200)
     REAL U(500)                  REAL U(500)
     CALL SB1(U,M)                CALL SB1(U,M)
     END                          END
     SUBROUTINE SB1(U,M)          SUBROUTINE SB1(U,M)
     REAL U(*)                    REAL U(*)
     INTEGER M                    INTEGER M   ! M=200
     DO I=1,100                   DO I=1,100
       U(I)=U(I+M)*4.0              U(I)=U(I+200)*4.0
     ENDDO                        ENDDO
     END                          END
   ᫥   , 横 ᪠ ਧ.  -
 樮 ᨬ⥩ 室  襭   
४⭮ ⠭ ஢ 横   横.

                 ࠬ  横
   室 ⥪                 ⨬ 
     PROGRAM MAIN                 PROGRAM MAIN
     PARAMETER (L=1)              PARAMETER (L=1)
     PARAMETER (M=200)            PARAMETER (M=200)
     PARAMETER (N=10)             PARAMETER (N=10)

                                - 78 -

     REAL A(500),B(500)           REAL A(500),B(500)
     CALL SB2(A,B,L,N,M)          CALL SB2(A,B,L,N,M)
     END                          END
     SUBROUTINE SB2(A,B,L,M,N)    SUBROUTINE SB2(A,B,L,M,N)
     REAL A(*),B(*)               REAL A(*),B(*)
     INTEGER L,M,N                INTEGER L,M,N
     DO I=L,M,N                   ! L=1,M=200,N=10
       A(I)=A(I+1)+B(I)           ! ⥭ 冷 ॡ
     ENDDO                        DO I=1,200,10
     END                            A(I)=A(I+1)+B(I)
                                  ENDDO
                                 END
   ⠪ ⠫ ⥭ 冷 ॡ ⮢ ᨢ .

                 横 
    室 ⥪                  ⠭
     PROGRAM MAIN                PROGRAM MAIN
     PARAMETER (N=8,M=200)       PARAMETER (N=8,M=200)
     REAL A(N,M),B(N,M)          REAL A(N,M),B(N,M)
     REAL C(N,M)                 REAL C(N,M)
     CALL SB2(A,B,C,N,M)         CALL SB2(A,B,C,N,M)
     END                         END
     SUBROUTINE SB2(A,B,C,M,N)   SUBROUTINE SB2(A,B,C,M,N)
     REAL A(N,M),B(N,M)          REAL A(8,200),B(8,200)
     REAL C(N,M)                 REAL C(8,200)
     INTEGER M,N                 INTEGER N,M ! N=8 ,M=200
     DO J=1,N                    DO J=1,8
      DO I=1,M                    DO I=1,200
      A(J,I)=B(J,I)+C(J,I)        A(J,I)=B(J,I)+C(J,I)
      ENDDO                       ENDDO
     ENDDO                       ENDDO
     END                         END

  筮 ஢ ⨬,  ᫨ N  M । १ COM-
MON ,  樠 ஢ ணࠬ, ਬ:
     SUBROUTINE INIT
     COMMON N,M
     N=8

                                - 79 -

     M=200
     END

         ᪫祭 ᨢ ࠣ⮢ 
   室 ⥪               ⨬ 
     PROGRAM MAIN               PROGRAM MAIN
     REAL A(500),B(500)         REAL A(500),B(500)
     INTEGER N,P                INTEGER N,P
     P=50                       P=50
     N=P*2  ! N=100             N=P*2  ! N=100
     CALL SB5(A,B,N)            CALL SB5(A,B,N)
     END                        END
     SUBROUTINE SB5(A,B,N)      SUBROUTINE SB5(A,B,N)
     REAL A(*),B(*)             REAL A(*),B(*)
     INTEGER N                  INTEGER N ! N=100
     DO I=1,N                   DO I=1,100
     IF (N.LT.100) THEN         B(I)=B(I)-A(I)*2.0
     A(I)=A(I)-B(I)*2.0         ENDDO
         ELSE                   END
     B(I)=B(I)-A(I)*2.0
     ENDDO
     END

                     ⮣
      ࠭ ⠭   ࠭
 ⠭,  頥 㭪ﬨ.  ࠭ 
⠭ 楤  ஢,   ஢ 뢠饣
    ࠭  ᪮쪮 ஢  १
஥ ⢮ 맮.   ࠭ ⠭
     冷  믮 横  ᪫
४७,  ⠪ ᪫ 㦭 .

             
   室 ⥪               ᫥ ⠭
     PROGRAM MAIN              PROGRAM MAIN
     REAL A(60,4)              REAL A(60,4)
     DO I=1,4                  DO I=1,4
     DO J=1,60                 DO J=1,60

                                - 80 -

     A(I,J)=J*I                A(I,J)=J*I
     ENDDO                     ENDDO
     ENDDO                     ENDDO
     CALL SUBA(A)              PRINT *,A(1,1)
     END                       END
     SUBROUTINE SUBA(B)
     REAL B(60,4)
     PRINT *,B(1,1)
     RETURN
     END

         襭 樨 
   室                     ᫥ ⠭
     PROGRAM MAIN                 PROGRAM MAIN
     REAL A(1000000),B(500)       REAL A(1000000),B(500)
     INTEGER N                    INTEGER N
     CALL INIT (A)                CALL INIT (A)
     CALL INIT (B)                CALL INIT (B)
     DO N=1,500                   DO N=1,500
     CALL SUBA(A,B,N)             DO I=1,99500
     ENDDO                        A(I)=A(I+N)*B(N)
     END                          ENDDO
     SUBROUTINE SUBA(A,B,M)       ENDDO
     REAL A(1000000),B(500)       END
     INTEGER N
     DO I=1,99500
     A(I)=A(I+N)*B(N)
     ENDDO
     END

         襭 ᯠࠫ 横
     室                 ᫥ ⠭
     PROGRAM MAIN                PROGRAM MAIN
     REAL A(10000),B(10000)      REAL A(10000),B(10000)
     INTEGER N                   INTEGER N
     CALL INIT (A)               CALL INIT (A)
     CALL INIT (B)               CALL INIT (B)
     DO N=1,10000                DO N=1,10000

                                - 81 -

     A(N)= F1(A,B,N)             F1$1= A(N)+B(N)*N
     ENDDO                       A(N)=F1$1
     END                         ENDDO
     REAL FUNCTION F1(A,B,N)     END
     REAL A(10000),B(10000)
     INTEGER I
     F1 = A(N)+B(N)*N
     END
    ⠭ 楤   ᠬ-ᨬ  -
  楤, ࣠ ࠫ쭮 ࠡ  -
  筮 ⥫⢠,  -ᨬ 楤 -
ঠ   ᪨  ᨢ   ᪠,  
।  ࢮ 맮      祭  ᯮ
 ᫥ 맮.

  ஢ (ࠧ, 㡫஢, ९) 楤
   室                ⨬ 
     PROGRAM MAIN             PROGRAM MAIN
     CALL SUB1 (1000)         CALL SUB1 (1000)
     CALL SUB1 (2000)         CALL SUB1$CLONE$1 (2000)
     END                      END
     SUBROUTINE SUB1(N)       SUBROUTINE SUB1(N)
     REAL R(2000)             REAL R(2000)
     INTEGER N                INTEGER N
     CALL SUB2 (N,R)          CALL SUB2 (N,R)
     ..............           ..............
     END                      END
     SUBROUTINE SUB2(N)       SUBROUTINE SUB2(N)
     REAL R(*)                REAL R(*)
     INTEGER N                INTEGER N
     DO I=1,N                 DO I=1,N
     R(I)-I+0.5               R(I)=I+0.5
     ENDDO                    ENDDO
     END                      END
                              SUBROUTINE SUB1$CLONE$1(N)
                              REAL R(2000)
                              INTEGER N   ! N=2000
                              CALL SUB2$CLONE$1 (2000,R)

                                - 82 -

                              ..............
                              END
                              SUBROUTINE SUB2$CLONE$1(N,R)
                              REAL R(*)
                              INTEGER N  ! N=2000
                              DO I=1,2000
                              R(I)=I+0.5
                              ENDDO
                              END

              
       :
     PROGRAM MAIN
     INTEGER A(1000),C(1000),I,J
      DO I=1,N
        DO J=1,M
         A(I) = ......
        ENDDO
        CALL LOOPK(A,M,C)
      ENDDO
     SUBROUTINE LOOPK(A,M,C)
     DO K=M,1
     C(K)=A(K) ....
     ENDDO
     RETURN
     END
     ᤥ   ணࠬ  ४⨢:
     PROGRAM MAIN
     INTEGER A(1000),C(1000),I,J
C$DIR LOOP_PRIVATE (A)
      DO I=1,N
         DO J=1,M
           A(I) = ......
         ENDDO
         CALL LOOPK(A,M,C)
      ENDDO
  ᯠࠫ 横  I


                                - 83 -

                    
       ஢  ⮭ ஫ ⥪,  
砥   ஢ન:
     -  ᮮ⢥⢨ ᫠,⨯   㬥⮢  楤,
     -  ᢮   樠樨  ᪠ࠬ  
ᨢ,
     - 室  ࠭ ᨢ   砥,
     - 稥 ᠭ 楤,   砥,
     - ४⭮ ᯮ짮  ,
     - 訡  ࠧ饭   COMMON ,
     - ᮮ⢥⢨  ⠭⠬ ANSI 77  ANSI 90.

       ४⭮ ᯮ짮  
  ࠫ,    横:
     DO I=2,N
       A(I) = A(I) + B(I-1)
     ENDDO
ᮤন ४७⭮, ᫨   aiias:
     EQUIVALENCE A,B
     DO I=2,N
       A(I) = A(I) + B(I-1)
     ENDDO

        (୮ ᯮ짮) 㪠⥫
   ணࠬ:
     PROGRAM NAIN
     REAL A(500),B(500)
     CALL CONF (X,Y,X,N)
     END
     SUBROUTINE CONF (X,Y,Z,N)
     REAL X(*),Y(*),Z,(*)
     INTERER N
     DO I=2,N
      Z(I)=Y(I)+X(I-1)
     ENDDO
     RETURN
     END
 横  楤 ணࠬ஢  ࠫ쭮 ࠡ,  -

                                - 84 -

  ⢨  㫥 宦 ६  .

                     
      ⨬ 믮塞 , ࠢ 浪 㧪 -
楤   .  ਮ    㧪  楤 
襩 ⮩ 饭   訬 ६ ࠡ.  ଠ 
ࠬ ࠢ          䨫஢
ணࠬ  ᯮ짮 ४⨢ -pdf.

1

1



