
Unified Parallel CïŒUPCïŒã¯ã倧èŠæš¡ãªäžŠåãã·ã³ã§ã®é«æ§èœã³ã³ãã¥ãŒãã£ã³ã°çšã«èšèšãããCèšèªæ¡åŒµã§ãã ãã®èšèªã¯ãå
±æã¡ã¢ãªãšå
±æã¡ã¢ãªãåããã·ã¹ãã ã®åäžã®ããã°ã©ãã³ã°ã¢ãã«ãè¡šããŸãã 䞊ååŠçã®éã¯ãããã°ã©ã ã®éå§æã«åºå®ãããéåžžã¯ããã»ããµã³ã¢ããšã«1ã€ã®ã¹ã¬ããã䜿çšãããŸãã
»
UPCã®å
¬åŒãŠã§ããµã€ã»
ããŒã¯ã¬ãŒUPCå
¬åŒãŠã§ããµã€ã
ãã€ãŠã¯ãUPCã®å±éã«åé¡ããããã€ã³ã¿ãŒãããã®ãã·ã¢èªã»ã°ã¡ã³ããŸãã¯è±èªã»ã°ã¡ã³ãã®æåã®ã¹ãããã«é¢ãããã³ãããããŸããã§ããããã ããå
¬åŒã®INSTALL.TXTåœä»€ã¯æ¶åããå¿
èŠããããŸããã
ãã®çµéšãç¡é§ã«ãªããªãããã«ãããŸããŸãªç°å¢ã§ã®UPCã®ã€ã³ã¹ããŒã«ã«é¢ããèšäºãæžãããšã«ããŸããã
åé¡ã質åãããå Žåã¯ãã¯ãªãšã€ã¿ãŒã«æè¡ãµããŒããäŸé Œã§ããŸãã 圌ãã¯ããªãè¿
éã«å¿çããŸãïŒåœŒããææã®å察åŽã«ãããšããäºå®ãèãããšïŒã ãããç解ããã®ãæäŒã£ãŠãããPaul HargroveãšDan Bonacheaã«æè¬ããŸãã
Windowsã«Berkeley UPCãã€ã³ã¹ããŒã«ãã
ç°å¢ã®æºå
åºæ¬çã«ãUPCã¯Linuxã®äžã§åŒ·åãããŠãããããæåã«è¡ãããšã¯ãLinuxã«äŒŒãã³ã³ãœãŒã«ãšå¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããããšã§ãã
1. Cygwinãã€ã³ã¹ããŒã«ããŸãïŒCïŒ\ Programs \ Cygwin64ãªã©ãã¹ããŒã¹ã®ãªãååã®ãã©ã«ããŒã«ã€ã³ã¹ããŒã«ããã®ãæãŸããïŒ
â www.cygwin.com/setup-x86.exe
â www.cygwin.com/setup-x86_64.exe
ããã©ã«ãã®ã€ã³ã¹ããŒã«ã«å ããŠãgccããã±ãŒãžïŒgcc-coreãgcc-g ++ïŒãè¿œå ããå¿
èŠããããŸãã 次ã®ã³ãã³ãã§ã€ã³ã¹ããŒã«ã確èªã§ããŸãã
cygcheck -s
2. Perlãã€ã³ã¹ããŒã«ããããCygwinããã±ãŒãžããããŠã³ããŒãããŸã
Berkeley UPCãã€ã³ã¹ããŒã«ãã
1. Berkeley UPCãããŠã³ããŒãããŸã ïŒCïŒ\ Programs \ berkeley_upc-2.22.3 \ setupïŒ
2.ãã«ãã®ãµããã£ã¬ã¯ããªãäœæããŸãïŒCïŒ\ Programs \ berkeley_upc-2.22.3 \ setup \ buildïŒ
3. Cygwinãèµ·åããŸã
4. configureã¹ã¯ãªãããå®è¡ããŸãã ã€ã³ã¹ããŒã«ãã£ã¬ã¯ããªãæå®ããã«ã¯ã --prefix=dir
ãªãã·ã§ã³ã䜿çšããŠãããã©ã«ãã®ãããã¯ãŒã¯ãæå®ããŸã--with-default-network=smp
ïŒå¯Ÿç§°åãã«ãããã»ãã·ã³ã°ãããŒã«ã«ãã«ãã³ã¢ãã·ã³ïŒïŒ
cd /cygdrive/c/Programs/berkeley_upc-2.22.3/setup/build ../configure --prefix=/cygdrive/c/Programs/berkeley_upc-2.22.3 --with-default-network=smp
æåïŒ ããã§æ§ææé ãå®äºããŸããã 次ã®æé ã«é²ãå¿
èŠããããŸãã
gmake gmakeã€ã³ã¹ããŒã«
5. UPCã®ã³ã³ãã€ã«ïŒ
make
6. UPCãã€ã³ã¹ããŒã«ããŸãã
make install
optãdbgãã©ã«ããŒã«ã¯ãUPCã³ãŒãã§äœ¿çšãããã©ã³ã¿ã€ã ã©ã€ãã©ãªã®ããŸããŸãªãã«ããå«ãŸããŠããŸãã optãã©ã«ããŒã«ã¯æé©åãå«ãŸããããã©ã«ãã§äœ¿çšãããŸãã dbgãã©ã«ããŒã¯ãupccã§-gãªãã·ã§ã³ã䜿çšããå Žåã®ãããã°ã«äœ¿çšãããŸãã ãããã®ãã©ã«ããŒã®å
容ãçŽæ¥äœ¿çšããªãã§ãã ããã ãã«ããã©ã«ããŒã®upccããã³upcrunãŠãŒãã£ãªãã£ããŸãã¯ã€ã³ã¹ããŒã«ãã©ã«ããŒã®binãµããã©ã«ããŒã䜿çšããå¿
èŠããããŸãã
æ¯åãŠãŒãã£ãªãã£ãžã®ãã¹ãæå®ããªãããã«ããããã«ãPATHç°å¢å€æ°ã«ãã³ãã¹ãè¿œå ã§ããŸãïŒã³ã³ãã¥ãŒã¿ãŒã®ããããã£->ã·ã¹ãã ã®è©³çŽ°èšå®->ç°å¢èšå®ïŒã
UPCæ§æãã¹ãïŒãªãã·ã§ã³ïŒ
0.åãã«ããµããã©ã«ããŒã«ã¯ãupcc.confæ§æãã¡ã€ã«ãå«ãŸããŠããŸãã 確èªããŠãå¿
èŠã«å¿ããŠç·šéããŸãã
1.æå°æ§æãã¹ãïŒãã«ããã©ã«ããŒããïŒïŒ
env UPCC_FLAGS= ./upcc --norc --version
ããã¯upccïŒBerkeley Unified Parallel Cã³ã³ãã€ã©ïŒãvã§ãã 2.22.3
ïŒãªã¢ãŒããã©ã³ã¹ã¬ãŒã¿ãŒèšå®ã®ååŸ...ïŒ
---------------------- + --------------------------- ------------------------------
UPCã©ã³ã¿ã€ã | vã 2.22.3ã2016幎10æ26æ¥10:22:58ã«äœæ
---------------------- + --------------------------- ------------------------------
UPC-to-Cãã©ã³ã¹ã¬ãŒã¿ãŒ| vã 2.22.2ã2016幎5æ12æ¥15:50:34ã«äœæ
| ãã¹ãã¢ãã©ã ã·linux-x86_64 / 64
| gcc v4.2.4ïŒUbuntu 4.2.4-1ubuntu4ïŒ
---------------------- + --------------------------- ------------------------------
翻蚳è
ã®å Žæ| upc-translator.lbl.gov/upcc-2.22.2.cgi
---------------------- + --------------------------- ------------------------------
ãµããŒããããŠãããããã¯ãŒã¯| udp smp
---------------------- + --------------------------- ------------------------------
ããã©ã«ããããã¯ãŒã¯| smp
---------------------- + --------------------------- ------------------------------
pthreadsãµããŒã| 䜿çšå¯èœïŒäœ¿çšããå Žåãããã©ã«ãã¯ããã»ã¹ããšã«2 pthreadïŒ
---------------------- + --------------------------- ------------------------------
2.ãã¹ããã³ã³ãã€ã«ããŸãã
make tests-hello
==== UPCãHELLO WORLDããã¹ããæ£åžžã«çµäºããŸãã====
UPCã³ã³ãã€ã«ã®ã»ããã¢ããã¯ãæ€åºããããã¹ãŠã®ãããã¯ãŒã¯ã§æ©èœããŠããããã§ãïŒudp smp
ããã§ã察象ã®åãããã¯ãŒã¯ã®UPCã©ã³ã¿ã€ã æäœããã¹ãããå¿
èŠããããŸãã
次ã®ãããªã³ãã³ãã䜿çšããŠãåäžããŒãã®smp / pthreadedãããã¯ãŒã¯ããã¹ãããããšããå§ããŸãã
./upcrun -n 2 libupcr-smp-par-test
3.åã¿ã€ãã®ãããã¯ãŒã¯ã®çµæã確èªããŸãã
./upcrun -n 2 ./opt/libupcr-smp-par-test
UPCRïŒSERAVKIN-PCã®UPCã¹ã¬ãã0..1ïŒããã»ã¹0 of 1ãpid = 17100ïŒ
ããŒã¯ã¬ãŒUPCãžããããïŒ
-ã¹ã¬ãã0ããããã«ã¡ã¯
-ã¹ã¬ãã1ããããã«ã¡ã¯
./upcrun -n 2 ./opt/libupcr-udp-par-test
upcrunïŒããŒããæå®ãããŠããŸããïŒ ãman upcrunãã®UDPããŒã¹ã®UPCãžã§ãã®å®è¡ãåç
§ããŠãã ããã
äŸ
cd /cygdrive/c/Programs/berkeley_upc-2.22.3/bin ./upcc /cygdrive/c/Programs/berkeley_upc-2.22.3/upc-examples/hello.upc -o hello -pthreads ./upcrun -n 4 hello
UPCRïŒSERAVKIN-PCã®4ã®UPCã¹ã¬ãã0..3ïŒããã»ã¹0ã®1ãpid = 32016ïŒ
ããŒã¯ã¬ãŒUPCãžããããïŒ
-ã¹ã¬ãã2ããããã«ã¡ã¯!!!
-ã¹ã¬ãã1ããããã«ã¡ã¯!!!
-ã¹ã¬ãã3ããããã«ã¡ã¯!!!
-ã¹ã¬ãã0ããããã«ã¡ã¯!!!
äžå¿«ãªå¶é
Windowsç°å¢ã§ã¯ããªã³ã©ã€ã³ã®UPC-to-Cãã©ã³ã¹ã¬ãŒã¿ãŒïŒããã©ã«ãã§äœ¿çšïŒã®ã¿ã䜿çšã§ããŸãã ãããã£ãŠããªã³ã©ã€ã³ã§ããå¿
èŠããããåäœãé
ããªããŸãã ããããæãã¹ãã¬ã¹ã®å€ãã®ã¯ãããŒã¯ã¬ãŒããã¹ãŠã®ããã°ã©ã ãååããå¯èœæ§ãããããšã§ãã ã¿ã¹ã¯ãæè²çãªãã®ã§ããã°å€§äžå€«ã§ãããäœãæ·±å»ãªãã®ã§ããã°ããªããšãªãäžå¿«ã§ãã ããã«ããããã°ã¯Linuxã§ã®ã¿æ©èœãããšããæžå¿µããããŸãã ãã®ãã¹ãŠãWindowsã§éå§ããã«ã¯ãä»®æ³ãã·ã³ãã€ã³ã¹ããŒã«ã§ããŸã
ããŒãã£ã«ROSAãã¬ãã·ã¥
1.æåã«ã Oracle VM VirtualBoxãªã©ã®ä»®æ³ãããŒãžã£ãŒãã€ã³ã¹ããŒã«ããå¿
èŠããããŸã ã
2. Linuxã€ã¡ãŒãžãããŠã³ããŒãããŸãã ROSA Fresh KDEã®éžæãäžãã£ãã®ã¯ã ããã¯åœå
ã®éçºã§ãã
3.æ°ãããã·ã³Other Linuxãè¿œå ããRAMãåæ
ããªãéãå²ãåœãŠãŸãã
4.èšå®ïŒ
ã·ã¹ãã -ããã»ããµïŒããã»ããµ-ãã¹ãŠã®ã³ã¢ã90ïŒ
å¶éïŒããã§ãªãå Žåãã¡ã€ã³ã·ã¹ãã ã¯é«è² è·ã§å¿çãåæ¢ããŸãïŒã
ãã£ã¹ãã¬ã€-ç»é¢ïŒ96 MBã®ãããªã¡ã¢ãª
ã¡ãã£ã¢-Linuxã§ç»åãè¿œå ãã
ãããã¯ãŒã¯ã¯ãããã¯ãŒã¯ããªããžã§ãã
5.ä»®æ³ãã·ã³ãèµ·åããŸãã [ROSAãã¹ã¯ãããã®ã€ã³ã¹ããŒã«]ãéžæããã·ã¹ãã ã®ããã³ããã«åŸããŸãã 第äžå°è±¡ã¯ããžãã£ãã§ãã
Linuxã€ã³ã¹ããŒã«
ç°å¢ã®æºå
ããŒã¶
1.ã¿ãŒããã«ã§ã³ãã³ããå®è¡ããŠg ++ãã€ã³ã¹ããŒã«ããŸãã
urpmi gcc-c++
Alt Linux
1. g ++ãã€ã³ã¹ããŒã«ããŸãïŒãªããžããªããããŸãã¯ææ°ããŒãžã§ã³ãèŠã€ããŸãïŒïŒ
apt-cache search gcc-c++ apt-get install gcc5-c++
2. perl-Term-ReadLine-Gnuãã€ã³ã¹ããŒã«ããŸã
apt-get install perl-Term-ReadLine-Gnu
Berkeley UPC-to-Cãã©ã³ã¹ã¬ãŒã¿ãŒãã€ã³ã¹ããŒã«ãã
1. Berkeley UPC-to-Cãã©ã³ã¹ã¬ãŒã¿ãŒãããŠã³ããŒããããã©ã«ããŒå
ã®ã¿ãŒããã«ãéããŸãïŒã³ã³ããã¹ãã¡ãã¥ãŒã䜿çšïŒã
2. makeã³ãã³ããå®è¡ããŸãã
make
-***ãã«ãå®äºïŒ ***
ããã§ã³ã³ãã€ã©ãã€ã³ã¹ããŒã«ã§ããŸãïŒ
make prefix = / prefix / to / useãã€ã³ã¹ããŒã«ããŸã
3.ææ Œãããæš©éã§ã€ã³ã¹ããŒã«ãå®è¡ããŸãã
sudo make install
-***ã€ã³ã¹ããŒã«å®äºïŒ ***
ãã®ãã©ã³ã¹ã¬ãŒã¿ãŒãããŒã«ã«ã§äœ¿çšããã«ã¯ã次ã®ãã¹åãæ¿å
¥ããŸãã
/ usr / local / bupc_translator / targ
upcc.confãŸãã¯ã/ .upccrcã®ãtranslatorãèšå®ã§ã
ãŸãã¯upcc -translator = pathã«æž¡ããŸã
Bukeley UPC Build
1. Berkeley UPCã®ããŠã³ããŒã
2.ãµããã©ã«ããŒãã«ããäœæãããã©ã«ããŒå
ã®ã¿ãŒããã«ãéããŸãïŒã³ã³ããã¹ãã¡ãã¥ãŒã䜿çšïŒ
3.ããŒã«ã«ãã©ã³ã¹ã¬ãŒã¿ãŒãšããã©ã«ãã®ãããã¯ãŒã¯smpïŒå¯Ÿç§°åãã«ãããã»ãã·ã³ã°ãããŒã«ã«ãã«ãã³ã¢ãã·ã³ïŒã§æ§æãã¡ã€ã«ãå®è¡ããŸãã
../configure BUPC_TRANS=/usr/local/bupc_translator/targ --with-default-network=smp
æåïŒ ããã§æ§ææé ãå®äºããŸããã 次ã®æé ã«é²ãå¿
èŠããããŸãã
gmake gmakeã€ã³ã¹ããŒã«
4. UPCã®ã³ã³ãã€ã«ïŒ
make
UPCæ§æãã¹ãïŒãªãã·ã§ã³ïŒ
0.åãã«ããµããã©ã«ããŒã«ã¯ãupcc.confæ§æãã¡ã€ã«ãå«ãŸããŠããŸãã 確èªããŠãå¿
èŠã«å¿ããŠç·šéããŸãã
1.ãã«ããã©ã«ããŒããæ§æãã¹ããå®è¡ããŸãã
env UPCC_FLAGS= ./upcc --norc --version
ããã¯upccïŒBerkeley Unified Parallel Cã³ã³ãã€ã©ïŒãvã§ãã 2.22.3
---------------------- + --------------------------- ------------------------------
UPCã©ã³ã¿ã€ã | vã 2.22.3ã2016幎10æ26æ¥14:01:01ã«äœæ
---------------------- + --------------------------- ------------------------------
UPC-to-Cãã©ã³ã¹ã¬ãŒã¿ãŒ| vã 2.22.2ã2016幎10æ25æ¥16:22:01ã«äœæ
| ãã¹ãRosa-VB linux-x86_64 / 64
| gcc v4.9.2 20140811ïŒROSAïŒ
---------------------- + --------------------------- ------------------------------
翻蚳è
ã®å Žæ| / usr / local / bupc_translator / targ
---------------------- + --------------------------- ------------------------------
ãµããŒããããŠãããããã¯ãŒã¯| udp smp
---------------------- + --------------------------- ------------------------------
ããã©ã«ããããã¯ãŒã¯| smp
---------------------- + --------------------------- ------------------------------
pthreadsãµããŒã| 䜿çšå¯èœïŒäœ¿çšããå Žåãããã©ã«ãã¯ããã»ã¹ããšã«2 pthreadïŒ
---------------------- + --------------------------- ------------------------------
2.ãã¹ãã®ã³ã³ãã€ã«ãéå§ããŸãã
make tests-hello
==== UPCãHELLO WORLDããã¹ããæ£åžžã«çµäºããŸãã====
UPCã³ã³ãã€ã«ã®ã»ããã¢ããã¯ãæ€åºããããã¹ãŠã®ãããã¯ãŒã¯ã§æ©èœããŠããããã§ãïŒudp smp
ããã§ã察象ã®åãããã¯ãŒã¯ã®UPCã©ã³ã¿ã€ã æäœããã¹ãããå¿
èŠããããŸãã
次ã®ãããªã³ãã³ãã䜿çšããŠãåäžããŒãã®smp / pthreadedãããã¯ãŒã¯ããã¹ãããããšããå§ããŸãã
./upcrun -n 2 libupcr-smp-par-test
3.åã¿ã€ãã®ãããã¯ãŒã¯ã®çµæã確èªããŸãã
./upcrun -n 2 ./opt/libupcr-smp-par-test
UPCRïŒRosa-VBã®UPCã¹ã¬ãã0..1 of 2ïŒpshmããŒã0 of 1ãããã»ã¹0 of 1ãpid = 12494ïŒ
ããŒã¯ã¬ãŒUPCãžããããïŒ
-ã¹ã¬ãã1ããããã«ã¡ã¯
-ã¹ã¬ãã0ããããã«ã¡ã¯
./upcrun -n 2 ./opt/libupcr-udp-par-test
upcrunïŒããŒããæå®ãããŠããŸããïŒ ãman upcrunãã®UDPããŒã¹ã®UPCãžã§ãã®å®è¡ãåç
§ããŠãã ããã
Berkeley UPCãã€ã³ã¹ããŒã«ãã
1.ææ Œããæš©éã§ãã«ãããmake installã³ãã³ããå®è¡ããŸãã ããã©ã«ãã§ã¯ãã€ã³ã¹ããŒã«ã¯/ usr / local / berkeley_upcãã£ã¬ã¯ããªã§è¡ãããŸãã ãã£ã¬ã¯ããªãå€æŽããã«ã¯ããªãã·ã§ã³--prefix=dir
䜿çšã§ããŸã
sudo make install
2.ç°å¢å€æ°ã«ãã¹ãè¿œå ããŸãã ãããè¡ãã«ã¯ããã¡ã€ã«/home/user/.bashrcã«è¡ãè¿œå ããïŒã¿ãŒããã«ãéãããšãã«èªåçã«éå§ããïŒããçŸåšã®ã»ãã·ã§ã³ã«é©çšããŸãã
export PATH=$PATH:/usr/local/berkeley_upc/bin
3.éå§ã確èªããŸãã
upcc --version
ããã¯upccïŒBerkeley Unified Parallel Cã³ã³ãã€ã©ïŒãvã§ãã 2.22.3
äŸ
1. upc-examplesãã©ã«ããŒã§ã¿ãŒããã«ãéããŸãã
2.ã³ãã³ããå®è¡ããŸãã
upcc ./hello.upc -o hello -pthreads upcrun -n 4 hello
UPCRïŒRosa-VBã®UPCã¹ã¬ãã0..1 of 4ïŒpshmããŒã0 of 1ãããã»ã¹0 of 2ãpid = 13295ïŒ
UPCRïŒRosa-VBã®UPCã¹ã¬ãã2..3 of 4ïŒpshmããŒã0 of 1ãããã»ã¹1 of 2ãpid = 13320ïŒ
ããŒã¯ã¬ãŒUPCãžããããïŒ
-ã¹ã¬ãã1ããããã«ã¡ã¯
-ã¹ã¬ãã3ããããã«ã¡ã¯
-ã¹ã¬ãã0ããããã«ã¡ã¯
-ã¹ã¬ãã2ããããã«ã¡ã¯
Eclipseéçºç°å¢
Eclipseéçºç°å¢ã¯ãBerkeley UPCèšèªããµããŒãããŠããŸãã Eclipse for Parallel Application Developersã¢ãŒã«ã€ããã解åããã ãã§ãã Eclipse Parallel Tools PlatformïŒPTPïŒãããžã§ã¯ãã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
é梱åŸã次ã®èšå®ãè¡ãå¿
èŠããããŸãã
0. Javaã©ã³ã¿ã€ã ç°å¢ã®ã€ã³ã¹ããŒã«
1.æŽæ°ã®ç¢ºèªïŒã¡ãã¥ãŒã®ãã«ãâæŽæ°ã®ç¢ºèªãéããŸãã C / C ++ Berkeley UPCïŒUnified Parallel CïŒããŒã«ãã§ãŒã³ãµããŒãã®æŽæ°
2.æ°ãããHello World UPCãããžã§ã¯ãããããžã§ã¯ããããŒã«ãã§ãŒã³ïŒLinux Berkeley UPCïŒå€ãã®äŸ¿å©ãªããã©ã«ãèšå®ïŒãäœæããŸã
3.次ãå«ããã¹ãæå®ããŸãããããžã§ã¯ãã®ããããã£âC / C ++äžè¬âãã¹ãšã·ã³ãã«ãéããŸãã UPCã®å Žåãã€ã³ã¯ã«ãŒããã¹ãè¿œå ããŸãã
ãªãªãŒã¹æ§æïŒ
/usr/local/berkeley_upc/opt/include/upcr_preinclude /usr/include
ãããã°æ§æïŒ
/usr/local/berkeley_upc/dbg/include/upcr_preinclude /usr/include
4.ãã·ã¢èªã®ã³ã¡ã³ãã®ã¹ãã«ãã§ãã¯ãç¡å¹ã«ããŸãã ã³ã¡ã³ããå³ã¯ãªãã¯ããŠã[ã¹ãã«ãã§ãã¯ãç¡å¹ã«ãã]ãéžæããŸãã
5.ãã·ã¢èªã®ã¬ã€ã¢ãŠãã«ã¯ã€ãã¯ãã¿ã³ãè¿œå ããŸãã ã¡ãã¥ãŒãŠã£ã³ããŠ-èšå®-äžè¬-ãšãã£ã¿-ããŒã é
ç®ãã³ããŒãããã«ããããã貌ãä»ãããã³ããŒããããã€ã³ãããã£ãŒã«ãã«ç¬èªã®çµã¿åãããè¿œå ããŸã
泚é
䜿çšãã
å€ãã®çµã¿èŸŒã¿ããã¥ã¢ã«ïŒ
man upcc man upcrun
ãããã°
æŽæ°ïŒ ããŒã¯ã¬ãŒçµ±å䞊åCïŒUPCïŒã GNU gdb C debbugerã䜿çšãããããã°ã åŒã³åºãå±¥æŽ
ãæž
èŽããããšãããããŸããïŒ èª°ãã圹ã«ç«ã€ãšãããª