   HOWTO
  Ͻ : 1999 5 ??
   : Jacek Radajewski  Douglas Eadline
   : 缺, ospace@chollian.net, kida@inet.cheju.ac.kr

  Beowulf HOWTO
  Jacek Radajewski  Douglas Eadline
  v1.1.1, 22 November 1998

     ǻ  Ұϰ  α׷ֿ 
  ⺻  ϴ  ܿ ٸ Ư   ũ 
  ϰ ִ.
  ______________________________________________________________________

  

  1. Ӹ

     1.1 Disclaimer
     1.2 Ǳ
     1.3   
     1.4 ڵ鿡 ؼ
     1.5  

  2. 

     2.1   HOWTO о ϴ°?
     2.2 ̿?
     2.3 з

  3.  

     3.1  ó ̴°?
     3.2 ٸ   ϴ°?
     3.3  COW ٸ ?

  4. ý 

     4.1  꿡 ־  .
     4.2   .
        4.2.1  ϳ ̻ CPU ʿѰ?
        4.2.2  ó ȭ
           4.2.2.1 Single-tasking Operating System
           4.2.2.2 Multi-tasking Operating System:
           4.2.2.3 Multitasking Operating Systems with Multiple CPUs:
           4.2.2.4 Threads on a Multitasking Operating Systems extra CPUs
           4.2.2.5 Sending Messages on Multitasking Operating Systems with extra CPUs:
     4.3    
        4.3.1 ϵ 
        4.3.2 Ʈ API 
           4.3.2.1 ޽
           4.3.2.2 
        4.3.3  α׷ 
     4.4 ռ
     4.5  Ʈ ۼϰ 
        4.5.1 α׷  ϴ κ ϱ
        4.5.2  ȿ 
        4.5.3 α׷   κ 
           4.5.3.1  
           4.5.3.2 Ͻ 

  5.  ڿ

     5.1 ϴ 
     5.2 
     5.3 
     5.4 Ʈ
     5.5  ӽŵ
     5.6 ٸ ִ Ʈ
     5.7 

  6. ر׸

     6.1 sum.c
     6.2 sigmasqrt.c
     6.3 prun.sh


  ______________________________________________________________________



  1.  Ӹ

  1.1.  Disclaimer

  츮    Ȯ  , Ȥ ̸ μ
  Ͼ ִ  ؿ  å  ʴ´.
  We will not accept any responsibility for any incorrect information
  within this document, nor for any damage it might cause when applied.


  1.2.  Ǳ

  Copyright ? 1997 - 1998 Jacek Radajewski and Douglas Eadline.
       GNU General Public Licence .

  1.3.    

  Jacek Radajewski 1997⿡    ۾ Ͽ, 
   Douglas Eadline  Ͽ.     HOWTO
     þ , 1998 8 ޾ HOWTO,  
    HOWTO, ׸  ġ  HOWTO   
    .  HOWTO  1.0.0 1998 11 
   Linux Documentation Project(LDP) ǥ Ǿ. 츮  ۾ 
  Ϻ  ȭ Ʈ  ʼ Ǳ⸦ ٶ̴.


  1.4.  ڵ鿡 


     Jacek Radajewski Ʈũ ڷμ ϰ ְ, Ʈ
     Southern Queensland п ǻ ко߿  (?) 
     ް ִ. Jacek  ù  1995̰, ù  
     ߴٰ Ѵ. Jacek ù  Ŭ͸ 1997 5 , 
      ķ    ϰ ִ. ׻, Ӱ   ġ 
      ã ִ. jacek@usq.edu.au e-mail  Jacek  
       ִ.

     Douglas Eadline ̱ ҽǺϾ(PA?) 巹 Paralogic 
     Principal Scientist President Ph.D̴. ״ Physical/Analytical
     Chemistμ ؿԾ, 1978⿡ ȭ ġ  ̱  ǻ͸
     ó ϸ鼭  ɷ  Դ. Eadline ڻ  оߴ
     ,  Ŭ͵, ׸  ˰  Ű ̴.
     Eadline ڻ  ϰ ʹٸ deadline@plogic.com email
      ȴ. 


  1.5.   

   HOWTO ۿ ־  ð ɷȰ, ᱹ ϼ ߴ. ̿
  ֽ е鿡 縦 帰.  HOWTO    ⿩ 
  帮 ʹ.

     Becky ׳ ,  .

     Tom Sterling, Don Becker, ׸ NASA ִ ٸ , ̵ 
      Ʈ ۵Ǿ.

     Thanh Tran-Cong Faculty of Engineering and Surverying, topcat
      ӽ   ְ ־.

      supervisor CHristopher Vance,  ֵ  ־.

      ģ Russell Waldron Ǹ α׷ ,  Ʈ
       ɰ  ־.
  ?  My friend Russell Waldron for great programming ideas, his general
     interest in the project, and support.

      ģ David Smith,    ־.

      ϸ Ʈ   ,  ǵ 
     ־.

      ü, ׸  topcat ٸ  ӽŵ ϰ ִ 
      Ʈ Ű ϴ  е鿡 縦 帰.


  2.  

  ǻͿ Ʈũ ϵ    ̵ ݵ ϰ
  ǰ, ſ  ǻ͵ CPU ð    Ư ֹ ƴ
   ҵ   꿡  ý۵   ǿ 
  Ǿ . ,   ӽ ɺ   
  ǻ  3-10   ϴ.   Ը ϴ. 
     ,  ϵ 븸 ϰ κ Ʈ 
   ̴.


  2.1.    HOWTO  о ϴ°?

    ּ  ü ִ    . 
  ̿  ̳   ü ؿ Ʈŷ  
  ʼ  ƴϴ. ׷, İ   ִ  
  Ȳ Ǿ ־ Ѵ(ᱹ   ̵    ). 
             , 
  ߸ Ǹ,  ְ ùٸ   ̴.    
  ⺻ , ũ     ϴµ ִ.


  2.2.  ?

  : far flew the boast of him, son of Scyld, in the Scandian lands.
  So becomes it a youth to quit him well with his father's friends, by fee 
  and gift, that to aid him, aged, in after days, come warriors willing, 
  should war draw nigh, liegemen loyal: by lauded deeds shall an earl have 
  honor in every clan. (:̺κ  κ,  Ѱ谡~ ^^;) 
       ̴. Grerdel̶  
  Ƴ ſ  , 밨   ̴̾߱.   
    ˰  ""κ ã ƶ.

   ǻ ü ų ϴ  ŭ̳ 
   ǰ  ̴.   NASA  ӽŰ 
    ׵ ý۸ ̿ Ѵ. ش ٸ
    ڵ ϴ  ũ̼ǵ ̿ ϱ⵵
  Ѵ.   Ǵ   ΰ  ö, 
   ϸ Ʈ õ   ϸ:


       ִ  ǻ ̴. ̴
  ̴̳ ٸ Ʈũ    ϳ   ϳ 
  ̻ Ŭ̾Ʈ  Ǿ ý̴. ̴    
  ִ PC  Ϲ ϵ , ǥ ̴ ͵, ׸ 
  ġ ̷. ̴  ֹ ϵ ҿ trivially 
  reproducible  ʴ´. ,   ü, Parallel 
  Virtual Machine (PVM) Message Passing Interface (MPI)  Ϲ 
  Ʈ  Ѵ.    Ŭ͵ ϰ Ŭ̾Ʈ 
  忡  Ѵ. , Ŭ ְܼ ܺη ϴ 
  Ʈ̵  Ѵ. Ŵ  ӽ ϳ ̻  带 
   ϴٸ ٸ  ܼ̳ ͸ ̼ǰ  Ư 
  ۾ þƼ óϰ Ѵ. κ   ýۿ Ŭ̾Ʈ
   ̰, ̵  ϼ  .   忡
   ǰ ȴ. ׸,  ׵  ҷ ϴ ϱ⸸
  ϸ ȴ. ũ  Ŭ̾Ʈ  Ŭ̾Ʈ  ̵ 
  IP ּҿ ̸  ˸  ̰͵  ʿ䰡 . 
   Cluster of Workstations (COM)  ū   
    ũ̼ǵ  ϳ ӽ · ۵Ѵٴ ̴. 
    Ŭ̾Ʈ  Ű峪 ͸   ʰ, 
   α̳ ϴٸ  ͹̳θ ؼ   ִ.
    忡 CPU ޸  ȾƳִ ó 
  ŬͿ ȾƳ  ִ CPU + ޸ Ű  ̶   ִ. 


   Ư Ʈ Ű, ο Ʈũ ̳ ֽ
  Ŀ ģ͵ ƴϴ.    ǻͷ 
   ǻ͵ Ŭ͸ ̴. ,   ,
    ϰ,  ϰ  Ŀ , PVM MPI ̺귯, 
  ׸     Ʈ Ű  ̴.  
  ߰ Ʈ  ̸ ̿ؼ ǥ   Ͽ
   Ŭ ӽ   ִ.  Ʈũ   
   Ŀǻ͵  ְ, ּ /home  ý NFS Ͽ 
  ϰ ְ,  (rsh)    ŭ ſϰ ְ ִٸ,
   ϳ  2   ӽ  ִٰ   ִ.



  2.3.  з

   ý۵ پ κе Ǿ Դ.   
    -Ϲ  ( ϳ ڰ   )
  鵵  Դ. ý۵ ٸ ŸԵ鸦 ϰų    ӽſ
   ϱ ؼ, 츮    з Ѵ:

  CLASS I :

   ӽ Ŭ Ϲ "Ư ֹ ƴ" κ ȴ. Ϲ
  "Ư ֹ ƴ" κе ϱ  "Computer Shopper"  ˻縦
   ̴. (Computer Shopper PC ý۵ ҿ  1ġ
  β  / Ѵ.)    :

  CLASS I  ּ   / ε 
  ϵ鿡 ߰  ִ ǰ    ӽ Ѵ.

  CLASS I ý :

      ǰ ̿Ͽ   ִ ϵ (  , 
     )

     ϳ ϵ ȸ翡  

      commodity Ǵ ̹

     Ϲ ǥؾ ⺻   (SCSI, ̴, .)

  CLASS I ý :

     ְ  ؼ CLASS II ϵ 䱸

  CLASS II 

  CLASS II Ʈ ٸ  Computer Shopper  迡  
   ӽ̶ ȴ. ̴  ͸ ƴϴ. δ,  ӽ 
  зϻ ̴.

  CLASS II ý :

     ſ   !

  CLASS II ý :

     ̹  

     ϳ ϵ ȸ翡 

     CLASS I ý۵麸 

  ϳ CLASS ٸ    ʿ . ̴  ʿ 
   ̴. ̷ з ý  ý۵鿡  Ǹ 
  ϰ ϱ ̴. "ý "κп  䱸 
   ý   ϴµ   ̴.





  3.   



  3.1.   ó ̴°?

     ǻ  ϱ   
    ſ    ̴. ׷, κ ý
  ڵ鿡 ͼ ̾ Ѵ.  ,  ý۰  
    ϳ   ŬƮ  н ǻ 
   ̴.   ü ϸ,    USQ Faculty of
  Sciences ǻ ǿ ߿ DEC Alpah ϷѴٰ .
    ǻʹ beldin̶ ϰ Ŭ̾Ʈ ӽŵ scilab01, scilab02,
  scilab03 scilab20 ִٰ .  Ŭ̾Ʈ Digital
  Unix 4.0 ü  īǺ ġǾ,   
  (/home) /usr/local NFS (Network File System) ؼ Ǿ .
   Ŭ̾Ʈ  /etc/hosts.equiv Ͽ  ٸ  Ŭ̾Ʈ
   Ʈ ԵǾ ־,  Ŭ̾Ʈ ٸ   
  (rsh)   ִ.  ӽ  ǿ  NIS μ,
  ٸ ӽŵ    Ѵ.   scilab02 ֿܼ
  ɾƼ, αϸ, װ  scilab15 Ѵ ص  ȯ
   ȴ. ̷   Ŭ̾Ʈ Ȱ   
  .    ӽſ   ü ġǾ 
  Ǿְ,  /home /usr/local  Ѵ δ 
   Ŭ̾Ʈ NFS ļ    ֱ ̴. NIS 
  NFS     ϸ NIS NFS HOWTO о ٶ.



  3.2.  ٸ 带  ̿ ΰ?

  ݺ 츮 ý      ְ, ǻ ǿ 
  ִ ӽ 밡 CPU Ŭ   ִ  ãƺ .
     ӽſ α   ְ, ׵ Ȩ 丮
  α׷   ,        
  Ҽ ִ.  , 츮 1 10     
   ҷ Ѵ. ̸ Ϻ  sigmasqrt("ҽ ڵ" κ 
  ƶ)  α׷ ۼ Ѵ. 1 10    
  ϴ  ϸ:

  [jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 10
  22.468278

  real    0m0.029s
  user    0m0.001s
  sys     0m0.024s


  time ɾ  ۾ ϴ wall-clock(ġ ð) Ȯ 
  ִ.  ̵,   ϵ   ð(0.029)
  ɸ. ׷, 1 1 000 000 000    ҷ
  ϴٸ  ɱ? ̰  wall-clock ð ٽ غ.


  [jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 1000000000
  21081851083600.559000

  real    16m45.937s
  user    16m43.527s
  sys     0m0.108s



   α׷  ð  . ׷,  ϸ  
  ϴ ð      °ϴ  ϰԵ ̴. 
   ٲپ wall-clock ð ּҷ ɱ? Ȯ  
     ϵ    ϵ  ǻ͵鿡
  ķ ϴ ̴. 츮 ۾ ũ 20 κ ,
     ؼ  忡   ϰ ߴ. 
  尡 ۾ ġ  ȯҶ, 20   ؼ 
  ظ Եȴ.  ϱ   μ   
  (named pipe) ״.


  [jacek@beldin sigmasqrt]$ mkfifo output
  [jacek@beldin sigmasqrt]$ ./prun.sh & time cat output | ./sum
  [1] 5085
  21081851083600.941000
  [1]+  Done                    ./prun.sh

  real    0m58.539s
  user    0m0.061s
  sys     0m0.206s



   58.5  ð .  ð  Ҷ   鰡
   ġ    ϴ ð Ѵ.  ð
   20   ʾ, ſ  ð̹Ƿ  
  ִ. 츮 ķ  Կ ǹ̽  ־  
   ̴.      ȭǴ  ڵ 
  ڴµ ִ.  ̿   ſ 幰 ٸ  (PVM
  PMI API) ༺ ̷µ  Ѵ.



  3.3.   COW  ٸ?

  տ  ǻ  Cluster of Workstations(COW) Ϻ
  ̴. ׷,  Ư¡ ̰ COW  ٸ? ˾
  . ׷ ٸ  , Ʈ ణ Ư Ư¡ 
  . ,  ŬͿ  Ŭ̾Ʈ  쿡 
  Ű, 콺,  ī, ׸   .  , ܼ 
   , Ǵ ø ֿܼ Ŭ̾Ʈ    
   ؼ ̷. Ŭ̾Ʈ 尡 Ŭ ܺ ӽ 
  ϰų, Ŭ ܺ ӽ Ŭ̾Ʈ 带   
  ʿ䰡  , Ŭ̾Ʈ  10.0.0.0/8 ̳ 192.168.0.0/13 
  ּ  ((RFC 1918 http://www.alternic.net/rfcs/1900/rfc1918.txt.html) 
   缳 IP ּҵ Ϲ  Ѵ.   ° Ʈũ ī
  ܺη Ǵ ӽ  常   ִ. ý ϴ 
  Ϲ   ֿܼ  ϰų,  ũ̼ǿ
  ڳ̳  α  带 Ѵ.   󿡼
  ڰ ڵ带 ϰ  ϰ, ŬͿ ִ  鿡
   Ű ȴ. κ  COW 㿡  ϴµ ǰϰ,
    ָ Ǳ⵵ Ѵ. ׷Ƿ,  
  CPU ð ̿ϴ ̴. ٸ   Ϲ  
   ϱ   ӽ̰ ̷  ° ȭǾ. , 
   off-the-shelf ҵ ̷ ַ  Ʈ 
  ϱ 빮 /  ſ .  ý  ִ 
   ڰ  Ŭ ٶ󺼶 ϳ  ũ̼ 
   ̴ Ư¡  ִ.
 


  4.  ý 

  ϵ ϱ  ý  غ  .
   ý  ϱ  ⺻ 2 ϵ δ: 
   峪 ǻ ; ǻ  ϱ . ϵ
  ϴµ ־  ġ Ʈ   ̺귯 API
  ̴. Ʈ  ڼ    Ĺݺο ٷ ϰڴ.

    ׷   ݸ鿡,  ý Ҷ
    ߿   ִ.   (Ǵ ) 
  ٸ ؼ   ֱ⶧,    ϰڴ.(?)
   Ǵ Ҹ а  ,   پ Ѿ , 
  ϵ  ϱ  "ռ"̶  д  ϴ ̴. 


  4.1.   꿡־  .

      信    ̴.   а 
   Ϻ ٷ  ̴.  ̳ʿ ڿ 
  ߿      ̴.   ϰ 
  Կ ־,   ־     ߿
  ϰ ǰ  ̴.   Ư ؼ  
  ǻʹ  ڵ  Ͽ ֱ  ɽ 
  ϴ  䱸Ѵ. 
  Ϲ,   õ  ϱ  ͸ ƴϴ. 
  ,  ϱ⸸ ϸ,    ̰ ǰ  
   ǰ   ̴.  ߿  μ ӵ 
  " "ʹ ޶, " " μ ӵ ü ý 
  ɰ ȿ ϴ  ߿ ϳ̴.



  4.2.    

     ¸  ִ.    
    غ  ߿ϴ.     
    ϰ, ӽ Ϸ ߿    ӽ
  Ͽ ġ Ѵ.


  4.2.1.     ̻ CPU ʿѰ?

     ߿ϴ. 8 CPU  μ Ѵٰ
  ϸ "over-kill"ó 鸮,  ׷.  , ͺ̽,
   α׷, Ǵ Ʈ ǥ ؼ Ѱ?  CPU
  ִٸ   ̴.  ùķ̼, ü ڵ, Ǵ Ÿ
  ̴ Ǯ׸ Ѱ? ̷ Ȳ  CPU ¥ 
  ȴ. ,  CPU    Ǯ  Ѵ:

     : "   Ǵ   CPU ʿѰ,  986
  ͺ- Ĩ ⸦ ٸ Ѵ." ̷ δ:
 
  1. Ƽ ׽ŷ  ü ,  ͵    
      ִ. ϳ ̻  CPU     ִ 
     "ļ" Ѵ.

  2. μ ӵ  18     Ǿ Դ. ׷, ޸
     ӵ ϵ ũ ӵ Ѱ? ϰԵ ̷ ӵ CPU ӵ 
     ŭ̳   ߴ. ָ    Ǯ׸ "out of
     cache memory access" ϵ ũ  䱸Ѵٴ ̴. ࿡
     ־ ̷  ϱ ؼ   ȸϴ  
     ؾ Ѵ.

  3. ϱ⸦ μ ӵ 2005 ķδ 18  2 
       ̶ Ѵ. ̷  غϱؼ ſ ɰ 
     ֹ ִ. 

  4. Ǯ׸ ,   2 500   ӵ 
     ų  ִ(    ). ̿    μ
     ϴ  Ұϴ. ǻ  ſ  ֹ
     μ ϴ Ϳ  "commodity-off-the-shelf" CPU
       ִ.

   Ѱ  ̳ I/O Ѱ  ؼ ӵ Ѵٸ,
   غ  ٶϴ.   ٴ  
  ϱ  ķ  ذϴ  ſ ߿  ؾ
  ̴. ̷  ޴뼮, , ׸ Ǯ׸ ݿ  ȿ
  شȭ  ִ.

    , ģ    þ ٿ 
  ⸦   "  "  ٷ ڴ.


  4.2.2.   ó 

   ū  տ 8   Բ ִٰ . 
   ϳ CPṴ   ǻ α׷̶ .
  ǻ α׷ ũ( )   䱸 ũ̴. 
  analogy    Ҷ ǰ Ѵ.

  4.2.2.1.  Single-tasking Operating System

  ϳ   ̰() ѹ ϳ  óѴ.

  : MS DOS


  4.2.2.2.  Multi-tasking Operating System:

  ϳ    ,  ѹ  䱸 κи ó
  Ѱ   䱸 Ϻθ óѴ. ΰ   
   ó , ƹ ٿ ٸ,     ̴.

  : UNIX, NT using a single CPU


  4.2.2.3.  Multitasking Operating Systems with Multiple CPUs:

   Կ   밡 ִ.  䱸 ε 
  밡 óϰ    ̵ϰ ȴ. ̸ SMP (Symetric Multi-
  processing) Ѵ.      , Ѱ
   븦 ϴ      Ѵ.

  : UNIX and NT with multiple CPUs



  4.2.2.4.  Threads on a Multitasking Operating Systems extra CPUs

  䱸 ߿ "break-up"̶  ִٸ, ѹ   븦
  Ͽ    ̵  ִ. ,   븦
  ҷ " 䱸 "ð 鿩 ϱ    
    ִٰ . ̷δ  "n"   
     ִ(⼭ "n"   ). ⳳ  հ踦
   Ҷ, ٸ ""  븦 ų  Ͽ   ȯ
  Ѵ. ׵  ã  ٸ  븦 Ÿ , ׵
     óϱ⸦ Ѵ.(?) ׷ 󸶳   밡
  迡 ־ ϰ  ҿ ġؾ ȿΰϴ ѿ εġ
  ȴ.

  Amdals Ģ Ǯ׸ ӵ α׷   Ϸ κ
  ؾ ȴٴ ̴.

  :  忡  CPU  UNIX  NT  ȭ α׷ .


  4.2.2.5. Sending Messages on Multitasking Operating Systems with extra CPUs:

    ־,  ڿ 8 븦 ߰Ͽ. ο 
     ʹ  ֱ , ⳳ ̵ 
  հ    ؼ ȭ Ͽ Ѵ. ̷ Ÿ
  ⳳ  ſ ־ ߰ (ð)  ,
   Ѵٸ, ̰  ƴϴ.  븦 ʿ  ŭ
  ¥ ū 䱸 ִٸ,  ð   븦 Ͽ ӵ
  Ű  ߰ 尡 ߻   ؾ Ѵ.
   쿡   Ʋ Ѱ  (Ǵ  
  )  ִٰ  ִ(  (Ǵ ) ȭ
  ؼ ؾ Ѵ).  뿡 ۾ϴ  ⳳ ȭ
  ؼ  ⸦   ִٸ, ׵  ֵ  .

  : One or several copies of UNIX or NT with extra CPUs
  on the same or different motherboard communicating through messages.

   ó Ȯ    ý   ǥ
  ϰ ִ. Ѱ CPU(Ǵ  ) ŵ ٸ ̴.


  4.3.     

        Ÿ ִ. ϰ 
   ,  ο õ ⺻  ϴµ
  ϴ.

  4.3.1.  ϵ 

     ϴ ⺻  ǻ:

  1. ޽  ϴ  ޸ ӽ( Ŭ͵)

  2. ޸𸮸  ϴ  ޸ ӽŵ(SMP ӽŵ)

     ̴ Ͽ  CPU ӽ 
  ̱⿡  ޸ ӽ̱⵵ ϴ. 4 way SMP ڽ  ޸
  ӽ̰    ִ. -  Ǯ׸  ޸𸮸
  ̿Ͽ Ѵ. ǻ 迡 Ѵٸ,  ޸ ӽŵ
  (  )   CPU ȮҼ ִ ݸ鿡 
  ޸ ӽŵ CPU ޸  Ͽ ̴.

  ׷, "ȥ"  ޸ ӽ     ޸
  ӽŵ   ִ. ̷ ȥ ӽ ڿԴ Ѱ Ŵ
  SMP ӽ ̰, ۷ι ޸𸮴 α׷ӿ   
  CPU鿡 Ǿ ٸ Ͻõ  ֱ  NUMA
  (non uniform memory access) ӽ̶
  Ѵ. ׷,  ܰ迡 NUSA ӽ  ޸ Ǯ ̿
  ޽ Ͽ߸ Ѵ.

  ,  ϴ  ҷμ SMP ӽ  ϴ.
   CLASS I  2  4  CPU   ý 
   ϴµ ȴ.   ٷ  CPU 
  Ѵ. ڴ ( ) Ư SMP μ Ư  Ҵ
   . ׷, ڴ ΰ  μ  μ
    ְ, Ѱ CPU ýۿ     ִ.

  4.3.2.  Ʈ API 

  α׷ ༺ ǥϴ ⺻ ǥ   :

  1. μ鰣 ޽  

  2. ü  

  ٸ  ,  2  а ȴ.  ǥ
  ϵ ʷ  ʿ ٴ  ϴ  ߿ϴ.
  ޽  Ѵٴ SMP, NUMA-SMP, ׸ ŬͿ  Ǿ
  ִ. - ߿ ȿ̰ ޴뼺 ϰڰ ̴ ߿ 
  ̴.(?) 

  4.3.2.1.  ޽

  , ޽   ʱ  ޸  ǻ ο
  Դ.   ҿ ͸ ϴ ݸ鿡 ޽
   縦  . Ǿ  ִ ޽鿡 ð 
  ӵ ޽  𵨿   ڰ ִ. ޽  ϴ.
  :  Ϳ  μ.  ޽  API PVMǴ MPI̴.
  ޽   ޽ ȿ ȴ. Ѵ SMP ӽŰ
  ӽŵ Ŭ ̿  ۵Ѵ. SMP ӽſ ޽ 
  μ    ݴ  Ŭ͵  
  ߴٸ ӽŵ ߰ Ǯ׸ Ȯ    ִ.

  4.3.2.2.  

   ü   ޸ SMP (Symmetrical Multiprocessing)
  α׷  κе ̿    ޸ Ű ȭ
   ϰ  ϱ Ͽ ߵ.   ޸𸮸
  Ͽ  ϱ  SMP ý۵鿡  ۵Ѵ. ̷ 
  ڴ ۷ι Ϳ  ͸ иؾ Ѵ. ׷ ,
  α׷  ۵ ʴ´. ޽ ϸ, μ()
   ͸ ϱ    簡 ȴ. ׷,
  cache coherence ̶ 尡 ̰ Ǿ.  SMP
    Ǵ NUMA  Ѵ.   ġ 
     ȾҾ. ޽  带   
  ((http://syntron.com/ptools/ptools_pg.htm)), 尡 ޽ ̿Ͽ
  Ͽ   ȿ̰ ȴ. 

   ɿ  ¸ ְ ִ:


              SMP ӽ       ӽŵ Ŭ     Ȯ强
                              
            -----------     -------------------  -----------
  ޽                    ſ          ſ 

      ſ              *             *

  * ġ NUMA  䱸.




  4.3.3.  Ǯ׸ 

   CPU ķ Ǯ׸ ϱ ؼ  κ 
  Ȯ ɰ Ѵ. ǥ  CPU Ǯ׸  μ  CPU
  Ǯ׸     ̴. α׷ ɰ   
  ,  ڵ "plug and play" ۵  ʴ´. Ǯ׸
    ڵ , ص ưų, ˰  
  Ұ 쵵   ִ.

  Ʈ   ʿ ռ  ¤.

  4.4.  ռ

   꿡  κ   亯 :

  "  Ǯ׸ ޷ִ."

    ,  ʿ䰡 ִ°  ſ ߿
   ϳ ִ -  Ļ . ̷ Ǹ    
      ϱ ؼ ̴:

  α׷  κ   Ǵ ̴.

  α׷  κе ׵  κ  ð и ó
   ȴ.

  ̷  ſ ߿ϴ. ֳϸ, ༺ α׷ Ӽ̰
  ȿ PARALLELISH ӽ Ӽ̱ ̴. ̻,  
     ľ Ѵ.  ɿ    ӵ
     ð̴. (, ð cache coherency 
  ȭ SMP Ǯ׸ ִ.)  Ϲ   ׽Ʈ 
  , , ׸ ð,   ʴ. ̷  
  "obviously parallel"̶ Ѵ. ٸ Ǯ׸ Ŀ α׷ 
  κ ׷ ϰ   ִ  ƴϱ⿡  α׷  
   ϴ  Ǳ⵵ Ѵ. ׷  α׷ ٸ 
  κп    ߸ ȴ. ª Ⱓ 
  ð   ð ؾ Ѵ. ׷ ,  κ 
    ȿ̴.

  α׷ ӹ α׷  κе ķ ؾ
  ϴ Ͱ  ƾ   ϴ ̴.   Ǯ׸
  ȿ   ִ.  ׷ α׷ Ȳ  ְ
  ִ.

           | *
           | *
           | *
   % of    | *
   appli-  |  *
   cations |  *
           |  *
           |  *
           |    *
           |     *
           |      *
           |        ****
           |            ****
           |                ********************
           +-----------------------------------
            communication time/processing time



  Ϻ  ǻͿ /ó    ̰,  ̵
  ķ  Ǿ .  ޸𸮸  ִ   
  ǻͿ  ׷ ִ ȿ  ȴ.
     ,  ȿ Ư  ǻͿ   ð 
  ó ð  ̱    ׷  ܵα 
  ٶ. Ǯ׸  ǻ͵ ̿ ̵  ־ , ٸ 
  ÷ ȿ   .

  Ϲ ̵  ְ ȿ  α׷   .

   ׷  ٸ   ִ. ȿ /ó 
  ޷ ķ,   ϳ ȭϴٰ ص Ư Ǯ׸ 
  ȴٴ  ʿ ʴ.  ӵ  ݸ鿡 μ 
  ӵ Ѵٴ  α׷  ȿ  ִٴ ǹ̴.
   , CPU ӵ ι Ǵ   Ͽ  ӵ ϰ
  α׷  ȿ PARALLEL κ SEQUENTIALLY Ѵٸ
   ȿ̰ ȴ. ̸  SEQUENTIALμ PARALLEL κ 
   ȴٴ ̴. , Ŀ ȿ κ  
  Ǯ׸ ִ  ӵ ϵ ش. ׷Ƿ,   μ
  ߰  Ǯ׸ ʾ ȴ ( Ǯ׷  ִ ӵ ۵ϰ
   CPU ؾ Ѵ).(?)

  ο CPU ׷̵ ϴ  δ Ǯ׸ ʾ Ѵ.

  ׷,   ϵ ȯ ؾ   ƾ 
  ˰ ־ Ѵ. ׷ ,  ӽ ռ Ǯ׸ ´ 
  ؾ ʿ䰡 ִ. CPU ӵ, Ϸ, ޽  API, Ʈũ 
      캼 ʿ䰡 ִ. Ǯ׸   
  ü ̾߱⸦ ִ  ƴ ϶. α׷ ߿ κ 
    ,  κп       . ־ 
  ý۴ؼ,   ڵ ȿ ȭ  .

   Ϲ ظ  .  "ȭ α׷"̶ ,
  δ α׷ CONCURRENT κθ ġϰ ִ. ȿ 
  PARALLELIZATION ӽ Ӽ̴.

  4.5.   Ʈ ۼ 

    ʿѴٰ ߰  ϰ ϱ⸦
  Ѵٸ,   ǵ       .

  Ϲ    ؾ Ѵ:

  1. CLASS I  غ Ŀ  Ǯ׸ װͿ °
     ۼ . ƴϸ  ۵ϴ  Ǯ׸ ຸ 
     (׷ տ ߴ ̵ ȿ  ض)

  2.   Ǯ׸ 캸 ʿ ϴ ϵ
     Ʈ ¿  򰡸 غƶ.

  ̷  ,   ȿ   캼 ʿ䰡 ִ. 
  Ϲ     غ ʿ䰡 ִ:

  1. α׷  κ 

  2.  ȿ 

  3. α׷  κ 

  ! ݺ ̵ 캸.


  4.5.1.  α׷  κ 

   ܰ ϰ "α׷ ȭϱ"̶ ϱ⵵ Ѵ.
  Parallelization   ° ܰ迡  ̴.  ܰ迡
     ʿ䰡 ִ.

  > 忡, Ǯ׸    ¸ ̰ ִ: 
  (number crunching) I/O (ͺ̽).  쿡  I/O
  ༺ orthogonal, Ǯ׸  ٸ 䱸Ѵ.  Ǯ׸
    м   ִ  ִ. ̵ κ 
  Ʈ  ۼǾ. Ʈ ϴ ֵ   : κ
  crunching Ǯ׸ Ʈ ۼǾ мϱⰡ . 
  ٸ,  ܰ  Ǯ׸  ټ  ̴. 


  4.5.2.   ȿ 

    ,  ġų  Ŀ  
   ؾ ̴. Ư Ǯ׸ ϰ  CPU Ѱ( )
  ϵ ũ Ѱ(I/O ) غƶ.  䱸  
  䱸  ſ پϴ.  ,  Ѱ迡   ſ 
   CPU    ð Ʈũ ʿ Ѵ. ݸ鿡 I/O Ѱ
     CPU  ̴  ȿ ۵ Ѵ.

  ̷ ǰ  κ   Ѵ. ֳϸ, 
  δ   μ ׻  ٶ  ̴.
   Ѱ谡 ٸ ´  ,  ý 뿡 ־
   ִ. I/O Ѱ  ؼ  ˷ Ģ(Eadline-Dekov
  Ģ̶ Ҹ) ִµ   ȴ:

     CPU    ־    ǻͿ, 
  μ(׸ Ƹ μ  Ʈũ ̴) I/O
   Ǯ׸ ؼ     ̴.

  ̷ Ģ    ߿  , ̰ ִٸ
  Performance Considerations
  for I/O-Dominant Applications on Parallel Computers (Postscript format
  109K ) (ftp://www.plogic.com/pub/papers/exs-pap6.ps)  ޾Ƽ
   ȴ. 

   Ǯ׸  ¸   ߾ٸ, ķ
    󸶳 ȿ ִ  ʿ䰡 ִ. Ʈ 
    "Ʈ" ƶ.

       ܰ踦 ġ  ؾ ̴.  
  Ѱ  д ϰ ʴ   ߴٸ, 
  parallelization   Ŀڰ Ǿ Ѵ.(?) ׷ ؾ   
  16 ɸ 32 κ иϿٸ, ׸  κ   ϴµ  
  ð ɸٸ,        ̴. ϱ 
  ȯ  ̴.


  4.5.3.  α׷  κ 

  α׷  κ ϱ    ִ:

  1.   

  2. Ͻ  

  ̵  ֿ   ļ ڿ   ǰ,
  Ͻ ļ Ϸ   ȴ.


  4.5.3.1.   

  ⺻   ǻ͸  ر׸ Ư κ ڰ 
  ؾ߸ Ѵ. ڴ ݵ PVM̳ MPI ߰ϰų POSIX 带
  ϴ 带 ߰ؾѴ. (׷  صξ  
   SMP  ̷ ̵  .) 

     Ⱑ ſ   ִ. 
  ڰ ǥ Ʈ 77̳ C/C++ ر׸  Լ Ҹ 
  ؾ Ѵ.  MPI ̺귯  ǥ    
   ִ  Լ  ִ.(, ִ/ Լ).
  ߰  ǻ   ǥ ̺귯 ̿ϴ ͵
  ϴ. ׷, ָ  ̵ ȿ ̴.

   ؼ   cruching ڵ FORTRAN ۼǾ
   ִ. ̷ ؼ FORTRAN  꿡 ־   
  (, ̺귯, )  ִ.  C ϰ ִ
   α׷ӵ C  Ŵٴ   FORTRAN Ǯ׸ 
  C ۼϰ ִ. ̷   ӽ ڵ忡 C  
   ,  ֿ   ִ. C  
    ϴµ ־ ص ư .  ڵ
  м ص ƴ.  Ʈ α׷  ְ  ķ
  óҷ Ѵٸ, C ٲ .


  4.5.3.2.  Ͻ 

  Ͻ  ڰ ϱ  ȭ  Ϻ(Ǵ )
  ؾ Ѵ. Ʈ 90   Ʈ(High Performance FORTRAN:
  HPF), Bluk Bynchronous Parallel (BSP), ׸ ٸ  ü ӵ
   ߿ ִ.

  Ͻ  ڰ ׵ Ǯ׸       
  䱸, Ϸ    ķ ϴ°  
      ̴.   ̵ ȿ  ܰ踦
  ,  ǻͿ     ϴ "  "
   ƴϴ.


  5.   ڿ

  5.1.  

      ϸ Ʈ. beowulf-request@cesdis.gsfc.nasa.gov
     ޽ subscribe ־    ȴ.

      Ȩ http://www.beowulf.org

  ?  Extreme Linux http://www.extremelinux.org

  ?  Extreme Linux Software from Red Hat http://www.redhat.com/extreme



  5.2.  


      HOWTO ֱ 
  ?  The latest version of the Beowulf HOWTO
     http://www.sci.usq.edu.au/staff/jacek/beowulf.

      ý 
  ?  Building a Beowulf System
     http://www.cacr.caltech.edu/beowulf/tutorial/building.html

     Jacek  
  ?  Jacek's Beowulf Links
     http://www.sci.usq.edu.au/staff/jacek/beowulf.

      ġ  HOWTO (DRAFT)
  ?  Beowulf Installation and Administration HOWTO (DRAFT)
     http://www.sci.usq.edu.au/staff/jacek/beowulf.

       ó HOWTO
  ?  Linux Parallel Processing HOWTO
     http://yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html



  5.3.  



  ?  Chance Reschke, Thomas Sterling, Daniel Ridge, Daniel Savarese,
     Donald Becker, and Phillip Merkey A Design Study of Alternative
     Network Topologies for the Beowulf Parallel Workstation.
     Proceedings Fifth IEEE International Symposium on High Performance
     Distributed Computing, 1996.
     http://www.beowulf.org/papers/HPDC96/hpdc96.html
  ?  Daniel Ridge, Donald Becker, Phillip Merkey, Thomas Sterling
     Becker, and Phillip Merkey. Harnessing the Power of Parallelism in
     a Pile-of-PCs.  Proceedings, IEEE Aerospace, 1997.
     http://www.beowulf.org/papers/AA97/aa97.ps


  ?  Thomas Sterling, Donald J. Becker, Daniel Savarese, Michael R.
     Berry, and Chance Res. Achieving a Balanced Low-Cost Architecture
     for Mass Storage Management through Multiple Fast Ethernet Channels
     on the Beowulf Parallel Workstation.  Proceedings, International
     Parallel Processing Symposium, 1996.
     http://www.beowulf.org/papers/IPPS96/ipps96.html


  ?  Donald J. Becker, Thomas Sterling, Daniel Savarese, Bruce Fryxell,
     Kevin Olson. Communication Overhead for Space Science Applications
     on the Beowulf Parallel Workstation.  Proceedings,High Performance
     and Distributed Computing, 1995.
     http://www.beowulf.org/papers/HPDC95/hpdc95.html



  ?  Donald J. Becker, Thomas Sterling, Daniel Savarese, John E.
     Dorband, Udaya A. Ranawak, Charles V.  Packer. BEOWULF: A PARALLEL
     WORKSTATION FOR SCIENTIFIC COMPUTATION.  Proceedings, International
     Conference on Parallel Processing, 95.
     http://www.beowulf.org/papers/ICPP95/icpp95.html

  ?   Ʈ ִ 
     http://www.beowulf.org/papers/papers.html




  5.4.  Ʈ


  ?  PVM - Parallel Virtual Machine
     http://www.epm.ornl.gov/pvm/pvm_home.html



  ?  LAM/MPI (Local Area Multicomputer / Message Passing Interface)
     http://www.mpi.nd.edu/lam

  ?  BERT77 - FORTRAN conversion tool http://www.plogic.com/bert.html

      Ʈ  ִ  Ʈ
     http://beowulf.gsfc.nasa.gov/software/software.html

     Jacek -ƿ
  ?  ftp://ftp.sci.usq.edu.au/pub/jacek/beowulf-utils

     bWatch - Ŭ  
  ?  bWatch - cluster monitoring tool
     http://www.sci.usq.edu.au/staff/jacek/bWatch




  5.5.   ӽŵ


  ?  ƹ߷ 140  μ, 36GB ޸𸮷  Ǿ, Top 150 Ͽ
     144° ϸ, Ƹ 迡    ӽ ̴.
     http://swift.lanl.gov/avalon/

  ?  MPACTR 14 4 CPU Ƽ  200 14GM ޸𸮷 ̷.
     http://megalon.ca.sandia.gov/description.html

     theHIVE ٸ    ǻ̴. theHIVE 64 
     128 CPU ӽŰ 4GB ޸𸮷 .
     http://www.sci.usq.edu.au/staff/jacek/topcat

     MAGI Ŭ - ſ ִ Ʈ   .
     http://noel.feld.cvut.cz/magi/




  5.6.  ٸ ִ Ʈ



  ?  SMP Linux http://www.linux.org.uk/SMP/title.html

  ?  Paralogic - Buy a Beowulf http://www.plogic.com


  5.7.  


  ?   -   http://legends.dm.net/beowulf/index.html

  ?   
     http://www.lnstar.com/literature/beowulf/beowulf.html


  6.  ر׸


  6.1.  sum.c


  /* Jacek Radajewski jacek@usq.edu.au */
  /* 21/08/1998 */

  #include <stdio.h>
  #include <math.h>

  int main (void) {

    double result = 0.0;
    double number = 0.0;
    char string[80];


    while (scanf("%s", string) != EOF) {

      number = atof(string);
      result = result + number;
    }

    printf("%lf\n", result);

    return 0;

  }

  6.2.  sigmasqrt.c

  /* Jacek Radajewski jacek@usq.edu.au */
  /* 21/08/1998 */

  #include <stdio.h>
  #include <math.h>

  int main (int argc, char** argv) {

    long number1, number2, counter;
    double result;

    if (argc < 3) {
      printf ("usage : %s number1 number2\n",argv[0]);
      exit(1);
    } else {
      number1 = atol (argv[1]);
      number2 = atol (argv[2]);
      result = 0.0;
    }

    for (counter = number1; counter <= number2; counter++) {
      result = result + sqrt((double)counter);
    }

    printf("%lf\n", result);

    return 0;

  }





  6.3.  prun.sh

  #!/bin/bash
  # Jacek Radajewski jacek@usq.edu.au
  # 21/08/1998

  export SIGMASQRT=/home/staff/jacek/beowulf/HOWTO/example1/sigmasqrt

  # $OUTPUT must be a named pipe
  # mkfifo output

  export OUTPUT=/home/staff/jacek/beowulf/HOWTO/example1/output

  rsh scilab01 $SIGMASQRT         1  50000000 > $OUTPUT < /dev/null&
  rsh scilab02 $SIGMASQRT  50000001 100000000 > $OUTPUT < /dev/null&
  rsh scilab03 $SIGMASQRT 100000001 150000000 > $OUTPUT < /dev/null&
  rsh scilab04 $SIGMASQRT 150000001 200000000 > $OUTPUT < /dev/null&
  rsh scilab05 $SIGMASQRT 200000001 250000000 > $OUTPUT < /dev/null&
  rsh scilab06 $SIGMASQRT 250000001 300000000 > $OUTPUT < /dev/null&
  rsh scilab07 $SIGMASQRT 300000001 350000000 > $OUTPUT < /dev/null&
  rsh scilab08 $SIGMASQRT 350000001 400000000 > $OUTPUT < /dev/null&
  rsh scilab09 $SIGMASQRT 400000001 450000000 > $OUTPUT < /dev/null&
  rsh scilab10 $SIGMASQRT 450000001 500000000 > $OUTPUT < /dev/null&
  rsh scilab11 $SIGMASQRT 500000001 550000000 > $OUTPUT < /dev/null&
  rsh scilab12 $SIGMASQRT 550000001 600000000 > $OUTPUT < /dev/null&
  rsh scilab13 $SIGMASQRT 600000001 650000000 > $OUTPUT < /dev/null&
  rsh scilab14 $SIGMASQRT 650000001 700000000 > $OUTPUT < /dev/null&
  rsh scilab15 $SIGMASQRT 700000001 750000000 > $OUTPUT < /dev/null&
  rsh scilab16 $SIGMASQRT 750000001 800000000 > $OUTPUT < /dev/null&
  rsh scilab17 $SIGMASQRT 800000001 850000000 > $OUTPUT < /dev/null&
  rsh scilab18 $SIGMASQRT 850000001 900000000 > $OUTPUT < /dev/null&
  rsh scilab19 $SIGMASQRT 900000001 950000000 > $OUTPUT < /dev/null&
  rsh scilab20 $SIGMASQRT 950000001 1000000000 > $OUTPUT < /dev/null&

