Scientific System$B8&5f2q(BHome SMP$B%/%i%9%?(BWG $B!A%A%e!<%K%s%0%,%$%I!A(B
SMP$B%/%i%9%?(BWG TOP$B$KLa$k(B

$B%9%+%i(BSMP$B7W;;5!(B($BIY;NDL(BPRIMEPOWER$B%7%j!<%:(B)$B>e$G%W%m%0%i%`$N@-G=I>2A:n6H$*$h$S%A%e!<%K%s%0$r9T$&:]$N%,%$%I$G$9!#!X(BSMP$B%/%i%9%?(BWG$B!Y$N@.2L$H$7$F:n@.$5$l$^$7$?!#(B

  • SS$B8&2q0w8BDj>pJs$G$9!#$BFbMF$K$D$$$F$*5$$E$-$NE@$d$4MWK>$,$"$l$P!"(BSS$B8&;vL36I(B $B$^$G$*CN$i$;$/$@$5$$!#(B
$B%9%+%iJBNs%W%m%0%i%_%s%0(B $B%A%e!<%K%s%0!&%,%$%I(B
     $BBh0lHG(B(2003/12/25$BH/9T(B)
$B!ZL\ $BK\J8(Breportkey [1093KB]
$BJL:}(B  MPI$BJBNs%W%m%0%i%_%s%0(B $B!ZL\ $BK\J8(Breportkey [585KB]
$BJL:}(B  XPFortran$B%A%e!<%K%s%0%,%$%I(B $B!ZL\ $BK\J8(Breportkey [1396KB]
$BJL:}(B  $BIUO?!'(BOpenMP Fortran V2.0 $B!ZL\ $BK\J8(Breportkey [244KB]


$B%9%+%iJBNs%W%m%0%i%_%s%0(B $B%A%e!<%K%s%0!&%,%$%I(B $B!ZL\
$BBh(B1$B>O(B $B$O$8$a$K(B
1.1 $BK\%,%$%I$NHO0O$HMxMQJ}K!(B
1.2 $B@-G=%A%e!<%K%s%0:n6H$N$J$,$l(B
$BBh(B2$B>O(B $B%O!<%I%&%'%"$NFCD'(B
2.1 PRIMEPOWER$B$N9=@.(B
2.2 $B9bB.2=!JJBNs2=!K$NJ}<0(B
2.3 $BCN$C$F$*$-$?$$4pAC@-G=(B
$BBh(B3$B>O(B $B@-G=J,@O(B
3.1 $B@-G=J,@O$N35MW(B
3.2 $B3.3 $B%A%e!<%K%s%0%D!<%k$N3hMQ(B
$BBh(B4$B>O(B $B9bB.2=$rAK32$9$kMW0x(B
4.1 $B%9%+%i@-G=$NAK32MW0x(B
4.2 $BJBNs@-G=$NAK32MW0x(B
4.3 $B%A%e!<%K%s%0$NL\0B(B
$BBh(B5$B>O(B $B%9%+%i@-G=$N%A%e!<%K%s%0(B
5.1 $B%3%s%Q%$%i$K$h$k:GE,2=(B
5.2 $B%*%W%7%g%s$K$h$k%A%e!<%K%s%0(B
5.3 OCL$B$K$h$k%A%e!<%K%s%0(B
5.4 $B%=!<%9%A%e!<%K%s%0(B
5.5 $B%i!<%8%Z!<%85!G=(B
$BBh(B6$B>O(B $BJBNs2=!J<+F0JBNs2=!K(B
6.1 $B<+F0JBNs2=$H$O(B
6.2 $B<+F0JBNs2=!J%k!<%W%9%i%$%9!K$NNc(B
6.3 $BJBNs2=$N%*!<%P!<%X%C%I(B
6.4 $B<+F0%Y%/%H%k2=$H$N0c$$(B
6.5 $B<+F0JBNs2=$N%A%e!<%K%s%0(B
6.6 $B%*%W%7%g%s$K$h$k%A%e!<%K%s%0(B
6.7 OCL$B$K$h$k%A%e!<%K%s%0(B
6.8 $B!](BQm$B%*%W%7%g%s$K$h$k%A%e!<%K%s%0(B
$BBh(B7$B>O(B $BJBNs2=!J#O#p#e#n#M#P(B $B!K(B
7.1 OpenMP$B$N(BAPI$B2r@b(B
7.2 OpenMP$B$N;H$$J}(B
7.3 Openmp$B$N;HMQ;vNc(B
7.4 $B%A%e!<%K%s%0(B
$BBh(B8$B>O(B $B?t3X%i%$%V%i%j$K$h$k@-G=$N0z$-=P$7(B
8.1 SMP$B8~$1$N9b@-G=!&%9%1!<%i%V%k$JJBNs%"%k%4%j%:%`$r<+8.2 SSL$B-6%9%l%C%IJBNs5!G=$N%5%]!<%H5!G=(B
8.3 SMP$B$G@-G=0z=P$9$?$a$N4pK\E*$JJ}K!$NNc(B
8.4 $B6qBNNc>\:Y(B
8.5 $BJBNs%"%k%4%j%:%`$N%9%1!<%i%S%j%F%#(B
8.6 $B?t3X%i%$%V%i%j$N7k9gJ}K!(B
$BBh(B9$B>O(B $B%a%C%;!<%8%,%$%@%s%9(B
  • $BJL:}!V(BMPI$BJT!W(B
  • $BJL:}!V(BXPFortran$BJT!W(B
  • $BJL:}!VIUO?!'(BOpenMP Fortran V2.0$B!W(B
  • MPI$BJBNs%W%m%0%i%_%s%0(B $B!ZL\
    $BBh(B1$B>O(B $B$O$8$a$K(B
    $BBh(B2$B>O(B MPI$B$H$O(B
    2.1 MPI
    2.2 MPI $B5,3JF08~(B
    2.3 MPI $B4X?t$N2.4 $B$b$C$H$bC1=c$J(BMPI$B%W%m%0%i%`(B
    2.5 MPI $B%W%m%0%i%`$N%U%l!<%`(B
    2.6 $B%a%C%;!<%8Aw$BBh(B3$B>O(B MPI$B$NMxMQJ}K!(B
    3.1 $BMxMQ4D6-$N@_Dj(B.... 15
    3.2 MPI $B%W%m%0%i%`$NK]Lu!&7k9g(B
    3.3 MPI $B%W%m%0%i%`$N3.4 Fortran $B8@8l!"(BC $B8@8l!"(BC++$B8@8l$NMxMQNc(B
    $BBh(B4$B>O(B MPI$B$N;H$$J}(B($B4pACJT(B)
    4.1 $B#1BP#1DL?.(B($B%W%m%0%i%`Nc(B)
    4.1.1 PingPong $BE>Aw(B..... 19
    4.1.2 $BAw?.85!"%a%C%;!<%8%?%0$,ITDj$N$H$-(B
    4.1.3 $BAw?.$7$F$/$k%a%C%;!<%8$NMWAG?t$,ITDj$N$H$-(B
    4.1.4 $B%N%s%V%m%C%-%s%0(B
    4.1.5 $BAw4.2 $B=8CDDL?.(B ($B%W%m%0%i%`Nc(B)
    4.2.1 $B%V%m!<%I%-%c%9%H(B
    4.2.2 $B%9%-%c%?!"%.%c%6(B
    4.2.3 $B9-0h1i;;(B
    4.2.4 $B2DJQ8D$N%G!<%?$N=8CDDL?.(B
    4.3 $BGI@87?(B($B%W%m%0%i%`Nc(B)
    4.4 $B%3%_%e%K%1!<%?(B($B%W%m%0%i%`Nc(B)
    4.4.1 $BJ,3d(B
    4.5 $B%H%]%m%8!<(B ($B%W%m%0%i%`Nc(B)
    4.5.1 $B%+%k%F%7%"%s!&%H%]%m%8!<(B
    $BBh(B5$B>O(B MPI$B%W%m%0%i%`$N%G%P%C%0(B
    5.1 $B%G%C%I%m%C%/$H0BA4$G$J$$%W%m%0%i%`(B
    5.2 $BJBNsl9g(B
    $B!Z;29M![(BMPICH-Score $B$G$N(BMPI $B%W%m%0%i%`$N%G%P%C%0(B
      [1] $BK]Lu;~%*%W%7%g%s(B-mpitrace
      [2] $B$BBh(B6$B>O(B MPI$B%W%m%0%i%`$N%A%e!<%K%s%0(B
    6.1 MPI $BDL?.$N4pAC@-G=(B
    6.2 PMB(Pallas MPI Benchmark program)
    $B!Z;29M![(BMPICH $B$N(BMPE $B%m%0%U%!%$%k(B
    $BBh(B7$B>O(B MPI-1.2 $B4X?t0lMw(B
    XPFortran$B%A%e!<%K%s%0%,%$%I(B $B!ZL\
    $B$O$8$a$K(B
    $BBh(B1$B>O(B XPFortran $B$N35MW(B
    1.1 $B%7%9%F%`%"!<%-%F%/%A%c(B
    1.2 XPFortran $B$N5!G=(B
    1.2.1 $B%0%m!<%P%k6u4V(B
    1.2.2 $BJBNs1.2.3 $BF14|!&GSB>@)8f5!G=(B
    1.2.4 $B%G!<%?E>Aw5!G=(B
    1.3 $BJBNs2=$N35MW(B
    1.3.1 $B%$%s%G%C%/%9=89g$NJ,3d(B
    1.3.2 $B=hM}$NJ,3d(B
    1.3.3 $B%G!<%?$NJ,3dG[CV(B
    1.3.4 $B%"%/%;%9$N9bB.2=(B
    1.3.4.1 $B%m!<%+%k6u4V$X$N%3%T!<$K$h$k%"%/%;%9$N9bB.2=(B
    1.3.4.2 $B%0%m!<%P%k6u4V$ND>@\%"%/%;%9$K$h$k%G!<%?%"%/%;%9$N9bB.2=(B
    1.3.5 $BJBNs=hM}%W%m%0%i%`$N1.3.6 $BJBNs=hM}%W%m%0%i%`$N8z2L$H@-G=(B
    1.3.7 $BC`1.4 $B%b%G%k%W%m%0%i%`$NJBNs2=(B
    1.4.1 $B%9%F%C%W(B1 $B!J%W%m%;%9?t$N;XDj$H(Bparallel region $BJ8$N;XDj!K(B
    1.4.2 $B%9%F%C%W(B2 $B!J%0%m!<%P%kG[Ns$N;XDj$H=hM}$NJ,3d!K(B
    1.4.3 $B%9%F%C%W(B3 $B!J%G!<%?J,3d$H=hM}$NJ,3d$N0lCW!K(B
    1.4.4 $B%9%F%C%W(B4 $B!J%m!<%+%kJQ?t$X$N%3%T!1.4.5 $B%9%F%C%W(B5 $B!J%0%m!<%P%kG[Ns$ND>@\%"%/%;%9!K(B
    $BBh(B2$B>O!!JBNs2=%A%e!<%H%j%"%k(B
    2.1 $BJBNs=hM}$K$h$k@-G=8~>e$N;X?K(B
    2.2 $B4J0WJBNs2=J}K!(B
    2.2.1 unify $BJ}<0$N4pK\(B
    2.2.2 $BJBNs2=$G$-$k(Bdo $B%k!<%W$N8+J,$1J}(B
    2.2.3 $B4J0WJBNs2=J}K!$N2.3 $B%G!<%?J,3dJBNs2=J}K!(B
    2.3.1 $B%G!<%?J,3dJBNs2=$N2.3.2 $B%G!<%?J,3dJBNs2=J}K!$NE,MQNc(B
    2.4 $BF~=PNO(B
    2.4.1 $B@lM-AuCV$H6&M-AuCV(B
    2.4.2 $BF~=PNO$N4pK\F0:n(B
    2.4.2.1 $B%0%m!<%P%kG[Ns(B/$BJQ?t(B
    2.4.2.2 $B%m!<%+%kG[Ns(B/$BJQ?t(B
    2.4.3 $BF~=PNO$N%A%e!<%K%s%0(B
    2.4.3.1 $B%0%m!<%P%kG[Ns(B/$BJQ?t$KBP$9$kF~=PNO(B
    2.4.3.2 $BJ,3d%m!<%+%kG[Ns$H$7$F$NF~=PNO(B
    $BBh(B3$B>O(B $B%W%m%0%i%_%s%0;vNc(B
    3.1 $B3.1.1 $B4pACJT(B
    3.1.1.1 $B:G$b4JC1$J3.1.1.2 $B%$%s%G%C%/%9%Q!<%F%#%7%g%s$N;HMQ(B
    3.1.1.3 $BB?=E(Bdo $B%k!<%W$NJ,3d(B
    3.1.1.4 $B%0%m!<%P%k4X?t(B
    3.1.2 $B1~MQJT(B
    3.1.2.1 $B%Q%i%a%H%j%C%/%9%?%G%#(B
    3.1.2.2 $BJ,3dCf$N7W;;7k2L$N=PNOJ}K!(B
    3.1.2.3 $B=[4DJ,3d$K$h$k%m!<%I%P%i%s%9$N:GE,2=(B
    3.1.2.4 $BFCDj%W%m%;%9$N=EJ#%m!<%+%kJQ?t$KFCDj$NCM$r;}$?$;$kJ}K!(B
    3.2 $B%G!<%?J,3d(B
    3.2.1 $B4pACJT(B
    3.2.1.1 $B%0%m!<%P%k@k8@$rMQ$$$?%G!<%?J,3d(B
    3.2.1.2 $B%m!<%+%k@k8@$rMQ$$$?%G!<%?J,3d(B
    3.2.1.3 $B0lHLE*$J%G!<%?J,3dJ}K!(B
    3.2.1.4 $Bl9g(B
    3.2.2 $B1~MQJT(B
    3.2.2.1 $BJ,3d%m!<%+%kG[Ns$H=EJ#%m!<%+%kG[Ns$N0z?t7k9g(B
    3.3 $B%G!<%?E>Aw(B
    3.3.1 $B4pACJT(B
    3.3.1.1 $B0l3gE>Aw(B
    3.3.1.2 $BB5E>Aw(B
    3.3.1.3 $B%V%m!<%I%-%c%9%H(B
    3.3.1.4 unify $BE>Aw(B
    3.3.2 $B1~MQJT(B
    3.3.2.1 $BE>Aw$H1i;;$N=E$M9g$o$;(B
    3.3.2.2 spread move $BE>Aw$K(B1 $B3.3.2.3 $BG$0U$N%W%m%;%94V$NE>Aw(B
    3.3.2.4 $B<~4|6-3&>r7o$NE>Aw$N3.3.2.5 $B%a%C%;!<%8%Q%C%7%s%0E*$JE>Aw$N$BBh(B4$B>O(B $BJBNs%W%m%0%i%`$N%G%P%C%0(B
    4.1 $BK]Lu;~%(%i!<(B
    4.2 $B7k9g;~%(%i!<(B
    4.3 $BK]Lu;~0[>o=*N;(B
    4.4 $Bo(B
    4.4.1 $B=EJ#%m!<%+%kJQ?t$NIT0lCW(B
    4.4.2 $BJ,3d%m!<%+%kG[Ns$NNN0h30%"%/%;%9(B
    4.4.3 $B2>%W%m%;%C%5%0%k!<%W$H4.4.4 $BB5E>Aw$N7gG!(B
    4.4.5 movewait $B$N%?%$%_%s%0(B
    4.4.6 $B8m$C$?%0%m!<%P%k4X?t(Bsum $B$N;H$$J}(B
    4.4.7 $B@:EY:9$NLdBj$K$D$$$F(B
    4.5 $B%G%C%I%m%C%/(B
    4.5.1 $B%G%C%I%m%C%/$NNc(B
    $BBh(B5$B>O(B $BJBNs%W%m%0%i%`$N%A%e!<%K%s%0(B
    5.1 $B%W%m%U%!%$%i$N;HMQJ}K!(B
    5.1.1 $B%m!<%I%P%i%s%9(B
    5.1.2 $BDL?.(B
    $BBh(B6$B>O(B $BJBNs%W%m%0%i%_%s%0$N%R%s%H(B
    6.1 $BLr$KN)$DK]Lu%*%W%7%g%s(B
    6.1.1 $BDj?tCV49(B
    6.1.2 $BJ,3d$5$l$F$$$J$$%0%m!<%P%kJQ?t$N8!=PJ}K!(B
    6.1.3 $B<+F0JBNs$H$NAH$_9g$o$;(B
    6.2 $BLr$KN)$D4D6-JQ?t(B
    6.3 $BLr$KN)$D%3%^%s%I(B
    6.3.1 $B%0%m!<%P%kJQ?t$NJ,3dIT0lCW$N8!=P(B
    6.4 $BJBNs%W%m%0%i%`$N6.4.1 gettod $B%5!<%S%9%5%V%k!<%A%s$N;HMQJ}K!(B
    6.5 $BLr$KN)$D5-=RJ}K!(B
    6.5.1 resident
    6.5.2 spread assignment
    6.5.3 OpenMP
    6.6 $BJ,3d%m!<%+%kG[Ns$N6.6.1 $B3dIU$1J}K!(B
    6.6.2 $B%"%/%;%9J}K!(B
    6.6.3 $B0z?t$G$N6.7 $B%W%m%;%9?tL50MB8JBNs6.7.1 $BJ,3d%m!<%+%kG[Ns$N;HMQJ}K!(B
    6.7.2 $B%W%m%;%94V$N%G!<%?E>Aw$N5-=RJ}K!(B
    $BIUO?(B $B8@8l;EMM$N:90[(B
    A $B8@8l;EMM(B
      A.1 Fortran $B%7%9%F%`$N8@8l;EMM$H$N:90[(B
    B VPP $B%7%j!<%:$+$i$N0\9T(B
      B.1 VX/VPP300/VPP700 $B%7%j!<%:$H$N8@8l;EMM$N:90[(B
      B.2 VPP5000 $B%7%j!<%:$H$N8@8l;EMM$N:90[(B
      B.3 $B0\9T>e$NCm0U(B
    $BIUO?!'(BOpenMP Fortran V2.0 $B!ZL\
    1.$B$O$8$a$K(B
    1.1 $B;HMQ$NHO0O(B
    1.2 $BMQ8l(B
    1.3 $B1.4 $B5,3J=`5r(B
    1.5 $B9=@.(B
    2.$B;X<(J8(B
    2.1 OpenMP $B;X<(J8$N7A<0(B
    2.1.1 $B;X<(J8@\F,<-(B
    2.1.1.1 $B8GDj%=!<%97A<0$N;X<(J8@\F,<-(B
    2.1.1.2 $B<+M3%=!<%97A<0$N;X<(J8@\F,<-(B
    2.1.2 $B;X<(J8Cf$N%3%a%s%H(B
    2.1.2.1 $B8GDj%=!<%97A<0$G$N;X<(J8Cf$N%3%a%s%H(B
    2.1.2.2 $B<+M3%=!<%97A<0$G$N;X<(J8Cf$N%3%a%s%H(B
    2.1.3 $B>r7oIU$-K]Lu(B
    2.1.3.1 $B8GDj%=!<%97A<0$N>r7oIU$-K]Lu@\F,<-(B
    2.1.3.2 $B<+M3%=!<%97A<0$N>r7oIU$-K]Lu@\F,<-(B
    2.2 $B%Q%i%l%k%j!<%8%g%s9=J8(B
    2.3 Work-sharing $B9=J8(B
    2.3.1 DO $B;X<(J8(B
    2.3.2 SECTIONS $B;X<(J8(B
    2.3.3 SINGLE $B;X<(J8(B
    2.3.4 WORKSHARE $B;X<(J8(B
    2.4 $BJ#9g%Q%i%l%k(BWork-sharing $B9=J8(B
    2.4.1 PARALLEL DO $B;X<(J8(B
    2.4.2 PARALLEL SECTIONS $B;X<(J8(B
    2.4.3 PARALLEL WORKSHARE $B;X<(J8(B
    2.5 $BF14|9=J8$H(BMASTER $B;X<(J8(B
    2.5.1 MASTER $B;X<(J8(B
    2.5.2 CRITICAL $B;X<(J8(B
    2.5.3 BARRIER $B;X<(J8(B
    2.5.4 ATOMIC $B;X<(J8(B
    2.5.5 FLUSH $B;X<(J8(B
    2.5.6 ORDERED $B;X<(J8(B
    2.6 $B%G!<%?4D6-9=J8(B
    2.6.1 THREADPRIVATE $B;X<(J8(B
    2.6.2 $B%G!<%?%9%3!<%WB0@-@a(B
    2.6.2.1 PRIVATE $B@a(B
    2.6.2.2 SHARED $B@a(B
    2.6.2.3 DEFAULT $B@a(B
    2.6.2.4 FIRSTPRIVATE $B@a(B
    2.6.2.5 LASTPRIVATE $B@a(B
    2.6.2.6 REDUCTION $B@a(B
    2.6.2.7 COPYIN $B@a(B
    2.6.2.8 COPYPRIVATE $B@a(B
    2.6.3 $B%G!<%?4D6-5,B'(B
    2.7 $B;X<(J8$N7k9g(B
    2.8 $B;X<(J8$N%M%9%H(B
    3.$B3.1 $B3.1.1 OMP_SET_NUM_THREADS $B%5%V%k!<%A%s(B
    3.1.2 OMP_GET_NUM_THREADS $B4X?t(B
    3.1.3 OMP_GET_MAX_THREADS $B4X?t(B
    3.1.4 OMP_GET_THREAD_NUM $B4X?t(B
    3.1.5 OMP_GET_NUM_PROCS $B4X?t(B
    3.1.6 OMP_IN_PARALLEL $B4X?t(B
    3.1.7 OMP_SET_DYNAMIC $B%5%V%k!<%A%s(B
    3.1.8 OMP_GET_DYNAMIC $B4X?t(B
    3.1.9 OMP_SET_NESTED $B%5%V%k!<%A%s(B
    3.1.10 OMP_GET_NESTED $B4X?t(B
    3.2 Lock $B%k!<%A%s(B
    3.2.1 OMP_INIT_LOCK $B!"(BOMP_INIT_NEST_LOCK $B%5%V%k!<%A%s(B
    3.2.2 OMP_DESTROY_LOCK $B!"(BOMP_DESTROY_NEST_LOCK $B%5%V%k!<%A%s(B
    3.2.3 OMP_SET_LOCK $B!"(BOMP_SET_NEST_LOCK $B%5%V%k!<%A%s(B
    3.2.4 OMP_UNSET_LOCK $B!"(BOMP_UNSET_NEST_LOCK $B%5%V%k!<%A%s(B
    3.2.5 OMP_TEST_LOCK $B!"(BOMP_TEST_NEST_LOCK $B4X?t(B
    3.3 Timing $B%k!<%A%s(B
    3.3.1 OMP_GET_WTIME $B4X?t(B
    3.3.2 OMP_GET_WTICK $B4X?t(B
    4.$B4D6-JQ?t(B
    4.1 OMP_SCHEDULE $B4D6-JQ?t(B
    4.2 OMP_NUM_THREADS $B4D6-JQ?t(B
    4.3 OMP_DYNAMIC $B4D6-JQ?t(B
    4.4 OMP_NESTED $B4D6-JQ?t(B
    A.
    A.1 $B4JC1$J%k!<%W$NJBNsA.2 $B>r7oIU$-K]Lu$N;XDj(B
    A.3 $B%Q%i%l%k%j!<%8%g%s$N;HMQ(B
    A.4 NOWAIT $B@a$N;HMQ(B
    A.5 CRITICAL $B;X<(J8$N;HMQ(B
    A.6 LASTPRIVATE $B@a$N;HMQ(B
    A.7 REDUCTION $B@a$N;HMQ(B
    A.8 $B%Q%i%l%k%;%/%7%g%s$N;XDj(B
    A.9 SINGLE $B;X<(J8$N;HMQ(B
    A.10 $BC`A.11 $B8GDj$7$?%9%l%C%I?t$N;XDj(B
    A.12 ATOMIC $B;X<(J8$N;HMQ(B
    A.13 FLUSH $B;X<(J8$N;HMQ(B
    A.14 $B;HMQ$5$l$k%9%l%C%I?t$N7hDj(B
    A.15 $B%m%C%/$N;HMQ(B
    A.16 $B%M%9%H$7$?%m%C%/$N;HMQ(B
    A.17 $B%M%9%H$7$?(BDO $B;X<(J8(B
    A.18 Work-sharing $B;X<(J8$NITEv$J%M%9%H$r<($9Nc(B
    A.19 BARRIER $B;X<(J8$N7k9g(B
    A.20 PRIVATE $B@a$K$h$k%9%3!<%W2=JQ?t(B
    A.21 $BITEv$J5-21Ns7k9g$NNc(B
    A.22 $B%Q%i%l%k(BDO $B%k!<%W$NJ8K!$NNc(B
    A.23 ATOMIC $B;X<(J8$NNc(B
    A.24 ORDERED $B;X<(J8$NNc(B
    A.25 THREADPRIVATE COMMON $B%G!<%?$NNc(B
    A.26 $B%G!<%?B0@-@a$NNc!'(BSHARED $B$H(BPRIVATE
    A.27 $B%G!<%?B0@-@a$NNc!'(BCOPYPRIVATE
    A.28 WORKSHARE $B;X<(J8$NNc(B
    SMP$B%/%i%9%?(BWG TOP$B$KLa$k(B

    All Rights Reserved, Copyright©$B%5%$%(%s%F%#%U%#%C%/!&%7%9%F%`8&5f2q(B 2003-2004