锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 2 閽堝璁$畻鏈轟綋緋葷粨鏋勭殑浼樺寲 a 騫惰鎬?/p>
b 鍐呭瓨灞傛緇撴瀯 3 鏂拌綆楁満浣撶郴緇撴瀯鐨勮璁?/p>
a RISC b 涓撶敤浣撶郴緇撴瀯 4 紼嬪簭緲昏瘧 a 浜岃繘鍒剁炕璇?/p>
b 紜歡鍚堟垚 c 鏁版嵁鏌ヨ瑙i噴鍣?/p>
d 緙栬瘧鐒跺悗妯℃嫙 5 杞歡鐢熶駭鐜囧伐鍏?/p>
a 綾誨瀷媯鏌?/p>
b 杈圭晫媯鏌?/p>
c 鍐呭瓨綆$悊宸ュ叿 PGI 鎻愪緵鍘熺敓鐨勬爣閲忓拰騫惰緙栬瘧鍣ㄤ駭鍝侊紝鐢ㄤ簬浠ヤ笅楂樼駭璇█錛?/strong> PGI緙栬瘧鍣ㄤ駭鍝佺嚎鍖呮嫭錛?/strong>
]]>
澧炲己鐨凱GI Fortran 緙栬瘧鍣ㄥ彲浠ユ敮鎸佺敱 NVIDIA 鍜?PGI 鍏卞悓瀹氫箟鐨?CUDA Fortran 鎵╁睍銆侰UDA Fortran 綾諱技浜?NVIDIA CUDA C錛岃屼笖閫氳繃鐩存帴鎺у埗鏁版嵁縐誨姩鐨勫悇鏂瑰悇闈㈡敮鎸佹樉寮?GPU Accelerator緙栫▼錛屽茍鍑忚交榪愮畻瀵嗛泦鍑芥暟鐨勮礋鑽楓?br />
澧炲己鐨凱GI Fortran 鍜?C 緙栬瘧鍣ㄤ篃鏀寔 PGI Accelerator緙栫▼妯″瀷錛岃繖縐嶉珮綰х殑闅愬紡妯″瀷鍏佽鍥懼艦鍔犻熷櫒錛坅ccelerator錛変嬌鐢‵ortran 鎸囦護(hù)鎴?C 緙栬瘧鎸囩ず浠庤屽噺杞諱富鏈篊PU涓婅繍綆楀瘑闆嗙殑浠g爜孌電殑璐熻嵎銆?br />
鍙皢榪欎簺紼嬪簭榪佺Щ鑷沖叾浠栧鉤鍙板拰緙栬瘧鍣ㄣ?/font>
Fortran 95 甯︽湁 Fortran 2003 鎵╁睍錛岀鍚?OpenMP 3.0錛屾敮鎸?GPU
ANSI C99 鎵╁睍錛岀鍚?OpenMP 3.0錛屾敮鎸?GPU
ANSI/ISO C++銆佺鍚?OpenMP 3.0
PGI Workstation – 鍗曠敤鎴瘋妭鐐歸攣瀹氳鍙瘉
PGI Server – 澶氱敤鎴風(fēng)綉緇滄誕鍔ㄨ鍙瘉
PGI CDK Cluster Development Kit – 澶氱敤鎴風(fēng)綉緇滄誕鍔ㄨ鍙瘉錛屽甫鏈夊彲鎵╁睍鐨?MPI 紼嬪簭璋冭瘯鍣ㄤ笌紼嬪簭鍒嗘瀽鍣?br />PGI Visual Fortran – 涓?Microsoft Visual Studio 闆嗘垚鐨?PGI Fortran錛涙彁渚涘崟鐢ㄦ埛涓庡鐢ㄦ埛璁稿彲璇侊紝騫朵笖鍖呭惈浜?PGI CDK for Windows 涓?br />
紼嬪簭璋冭瘯鍣ㄣ佺▼搴忓垎鏋愬櫒涓庡叾浠栧伐鍏?/strong>
闄や簡鏁村騫惰璇█緙栬瘧鍣ㄤ互澶栵紝鎵鏈夌殑 PGI 浜у搧榪樺寘鍚?PGDBG ? OpenMP/MPI 鍥懼艦鍖栧茍琛岀▼搴忚皟璇曞櫒鍜?PGPROF ? OpenMP/MPI 紼嬪簭鎬ц兘鍒嗘瀽鍣ㄣ?br />
PGI鎻愪緵甯傞潰涓婂敮涓鐨勫鏍?x64 騫惰緙栬瘧鍣ㄣ佽皟璇曞櫒鍜岀▼搴忓垎鏋愬櫒錛屼互鍙?qiáng)涓帢q欎簺緙栬瘧鍣ㄣ佽皟璇曞櫒涓庡垎鏋愬櫒鐩存帴闆嗘垚鐨勫茍琛屾敮鎸併傝繖鏈夊姪浜庣紪紼嬩漢鍛樿繘琛屾洿蹇殑寮鍙戙佽幏寰楁洿楂樼殑鎬ц兘涓庢洿鍑鴻壊鐨勭ǔ瀹氭с?br />
涓轟綍閫夋嫨 PGI錛?br />鐢ㄤ簬 Intel 鍜?AMD x64 澶勭悊鍣?GPU 鐨?PGI Unified Binary
PGI Unified Binary 鎶鏈氳繃鏁村悎鎴愪竴涓彲鎵ц鏂囦歡錛屽茍涓?Intel 鍜?AMD 鐨勫鏍?x64 澶勭悊鍣ㄧ郴鍒椾互鍙?NVIDIA 鐨?GPU Accelerator浼樺寲浠g爜欏哄簭錛岀畝鍖栦簡璺ㄥ鉤鍙版敮鎸併侾GI Unified Binary 鎻愪緵 x64 騫沖彴鐨勬墍鏈変紭鍔匡紝甯姪鎮(zhèn)ㄥ厖鍒嗗埄鐢ㄦ渶鏂扮殑紜歡闈╂柊鎶鏈?br />
鐢ㄤ簬楂樻ц兘搴旂敤紼嬪簭鐨勭紪璇戝櫒瑙e喅鏂規(guī)
PGI 緙栬瘧鍣ㄤ負(fù)騫挎硾鐨勫簲鐢ㄧ▼搴忎笌鍩哄噯嫻嬭瘯鎻愪緵涓栫晫綰х殑鎬ц兘銆侾GI 緙栬瘧鍣ㄦ槸澶ч噺娉ㄩ噸鎬ц兘鐨勫簲鐢ㄧ▼搴忕殑緇濅匠閫夋嫨錛岃繖浜涘簲鐢ㄧ▼搴忕殑棰嗗煙鍖呮嫭鍦扮悊寤烘ā銆佹満姊板伐紼嬨佽綆楀寲瀛︺佸ぉ姘旈鎶ヤ笌楂樿兘鐗╃悊瀛︺侾GI 緙栬瘧鍣ㄨ繛緇湪 SPECfp2006銆丼PECint2006銆丼PECompM2001 涓?NAS 騫惰鍩哄噯嫻嬭瘯涓綅灞呮棣栥?br />
璺ㄥ鉤鍙伴珮鎬ц兘璁$畻寮鍙戠幆澧?br />PGI 緙栬瘧鍣ㄧ敓鎴愮殑浠g爜涓鴻涓氭渶嫻佽鐨勯珮鎬ц兘璁$畻錛圚PC錛夊鉤鍙拌繘琛屼簡浼樺寲錛岃屼笖鍙互鐩存帴浠庢渶涓繪祦鐨勭郴緇熷埗閫犲晢閭i噷鑾峰彇瀹冧滑銆侾GI 浜у搧鍙互鍦ㄥ箍娉涚殑64浣嶄笌32浣嶆闈㈠拰鏈嶅姟鍣ㄦ搷浣滅郴緇熶笅榪愯錛屽寘鎷?0澶氱嫻佽鐨?Linux 鐗堟湰銆丮ac OS X 浠ュ強(qiáng) Microsoft Windows 鐨勫ぇ澶氭暟鐗堟湰錛堝寘鎷?HPC Server 2008錛夈?br />
鐢ㄤ簬Accelerator緙栫▼鐨勫叏鏂逛綅妯″瀷
PGI Accelerator緙栫▼妯″瀷鍙渶閫氳繃灝嗗彲榪佺Щ鐨勭紪璇戝櫒鎸囦護(hù)娣誨姞鍒扮幇鏈夌殑絎﹀悎鏍囧噯鐨凪PI銆丱penMP Fortran 鍜?C 紼嬪簭涓紝鍗沖彲甯姪寮鍙戜漢鍛樺湪 x64+GPU 騫沖彴涓婁笉鏂姞閫熷簲鐢ㄧ▼搴忋侰UDA Fortran 鍏佽涓撲笟鐨勭紪紼嬩漢鍛樼洿鎺ユ帶鍒?GPGPU 緙栫▼鐨勫悇涓柟闈€?br />
騫惰緙栬瘧鍣ㄤ笌宸ュ叿鐨勯泦鎴愬浠?/strong>
PGI 鎻愪緵涓濂楀畬鏁寸殑緙栬瘧鍣ㄤ笌宸ュ叿闆嗘垚濂椾歡錛岀敤浜庡紑鍙戦珮鎬ц兘騫惰搴旂敤紼嬪簭錛屽寘鎷畬鍏ㄩ泦鎴愮殑鍥懼艦 PGDBG? 涓?PGPROF? 騫惰 MPI/OpenMP 搴旂敤紼嬪簭璋冭瘯鍜屽垎鏋愬伐鍏楓侾GI 緙栬瘧鍣ㄤ笌宸ュ叿鍦ㄦ墍鏈夋敮鎸佺殑鎿嶄綔緋葷粺涓婃彁渚涚粺涓鐨勭敤鎴風(fēng)晫闈紝綆鍖栦簡璁捐銆佺紪鍐欍佽皟璇曚笌寰皟楂樻ц兘榪愮畻搴旂敤紼嬪簭鐨勬祦紼嬨?br />
涓濂楅傜敤浜庝笘鐣屼笂瑕佹眰鏈涓ヨ嫑搴旂敤紼嬪簭鐨勮В鍐蟲柟妗?br />鍒╃敤 PGI 緙栬瘧鍣ㄤ笌宸ュ叿鏋勫緩鑰屾垚鐨勯鍏堝晢涓氬簲鐢ㄧ▼搴忓寘鎷?ANSYS銆丄DINA銆丄VL Fire銆丳OLYFLOW銆丼TAR-CD銆丩S-DYNA銆丷ADIOSS銆丳AM-CRASH 鍜?GAUSSIAN銆傚埄鐢?PGI 鍚勪釜鐗堟湰鐨勭紪璇戝櫒涓庡伐鍏瘋繘琛屾瀯寤轟笌嫻嬭瘯鐨勯鍏堢ぞ鍥㈢爺絀跺簲鐢ㄧ▼搴忓寘鎷?AMBER銆丅LAST銆丆AM銆丆HARMM銆丟AMESS銆丮CNP5銆丮M5銆丮OLPRO銆丮OM4銆丳OP 涓?WRF銆?/font>
PGI
瀹樻柟緗戠珯錛?a >www.pgroup.com
PGI Workstation
PGI Workstation 綰х紪璇戝櫒鍜屽伐鍏風(fēng)敤浜庨噰鐢?64 浣?x64 鍜?32 浣?x86 澶勭悊鍣ㄧ殑宸ヤ綔绔欐垨鏈嶅姟鍣紝鏀寔楂樿揪鍏釜CPU鎻掓Ы榪愯 32 浣嶆垨 64 浣?Linux 鎴?Windows 鎿嶄綔緋葷粺銆?銆?br />
PGI Server
PGI Server 綰х紪璇戝櫒鍜屽伐鍏風(fēng)敤浜庨噰鐢?64 浣?x64 鍜?32 浣?x86 澶勭悊鍣ㄧ殑宸ヤ綔绔欐垨鏈嶅姟鍣紝鏀寔楂樿揪16涓狢PU鎻掓Ы騫跺彲榪愯 Linux 鎴?Windows 鎿嶄綔緋葷粺銆?銆?br />
PGI CDK
PGI CDK Cluster Development Kit 鏄?zhèn)ㄦ瀯寰?Linux 闆嗙兢鎵闇瑕佺殑鍏ㄩ儴宸ュ叿錛岄櫎浜嗙‖浠朵箣澶栥傚彲鐢ㄤ簬 64 浣嶆垨 32 浣?Linux銆?br />
PGI Visual Fortran
PGI Visual Fortran 灝?PGI 濂楄杞歡鐨勯珮鎬ц兘 64 浣嶅拰 32 浣嶅茍琛?Fortran 緙栬瘧鍣ㄥ拰宸ュ叿瀹屽叏闆嗘垚鍒?Microsoft* Visual Studio* 2005 涓?/font>
鍝佺墝
PGI
杞歡鍚嶇О
PGI緙栬瘧鍣?/td>
緋葷粺騫沖彴瑕佹眰
Windows銆丩inux
璐拱

1錛夐鍏堜綘搴旇涓嬭澆鍒拌蔣浠跺畨瑁呭寘錛?a >http://www.caps-entreprise.com.cn/wp-content/plugins/download-monitor/download.php?id=24 錛堜綘瑕佹敞鍐屾墠琛岄錛?/p>
緗戠珯涓婃彁渚涚殑鏄渶鏂扮殑64浣嶇殑Linux鐗堟湰錛?br />
2錛?鐒跺悗鏄В鍘嬶紝鎵懼埌閭d釜鍙墽琛屾枃浠訛紝鍙屽嚮鎵ц涓嬶紝鏍規(guī)嵁鎻愮ず涓姝ユ瀹夎錛屾垚鍔燂紒
3錛夋墽琛屼笅$source [HMPP 瀹夎鐩綍]/bin/*.sh
浣犲彲浠ュ厛淇敼榪欎釜sh鏂囦歡閲岀殑絎?4琛屼負(fù)MANPATH=:${HMPP_MAN_PATH}:${HMPP_HOME}/doc/hmpprt-doxygen/cxx/man
榪欐牱鍋氭槸涓轟簡鍏煎Ubuntu
$hmpp --licenses
浼?xì)鍑虹庮C竴浜涗俊鎭紝浣犲彧瑕佹妸榪欎簺淇℃伅鍙戦佸埌apac-support@caps-entreprise.com 灝卞彲浠ヤ簡錛孋APS浼?xì)鍦ㄥ嚑涓伐浣滄棩鍐呮妸License鍙戠粰浣犮傦紙榪欎釜鏄漢宸ュ鏍哥殑錛屽鏋滀綘騫歌繍鐨勮瘽錛屽彧闇瑕佸嚑涓皬鏃跺氨鍙互浜嗭紝鐩鎬俊鎴戞病閿欑殑錛侊級
4錛夋嬁鍒癓icense鍚庯紝浣犳妸瀹冩嫹璐濆埌HMPP瀹夎鐩綍涓嬬殑licenses鐩綍涓嬶紝鐒跺悗鍦ㄦ墽琛屼笅$hmpp --licenses
浣犱細(xì)鐪嬪埌浣犲彲浠ヤ嬌鐢ㄧ殑鍐呭浜嗐?/p>
5錛夐殢渚垮啓涓狢紼嬪簭錛岀劧鍚庣敤瀹冪紪璇戜笅錛岀湅鐪嬫晥鏋滃惂銆傘?/p>
鍏堢敤榪欎釜緙栬瘧錛?/p>
$hmpp --codelet-required gcc [any options] [you code .c]
HMPP鏄?span style="font-family: Calibri">Hybrid Multicore Parallel Programming鐨勮嫳鏂囩緝鍐欍?span style="font-family: Calibri">HMPP鎻愪緵浜嗕竴浜涙寚浠わ紝榪欎簺鎸囦護(hù)鑷村姏浜庡皢鍙互騫惰鐨勭▼搴忕Щ妞嶅埌鍗忓鐞嗗櫒錛堝崗澶勭悊鍣紙co-processor錛夊湪HMPP涓父琚О涓虹‖浠跺姞閫熷櫒錛?span style="font-family: Calibri">Hardware Accelerator錛?span style="font-family: Calibri"> HWA錛夛級涓婃墽琛屻傜洰鍓嶆瘮杈冪啛鎮(zhèn)夌殑鍔犻熷櫒鏄?span style="font-family: Calibri">GPU浠ュ強(qiáng)MIC銆?/span>
浣跨敤HMPP鍙互鏈夊嚑涓ソ澶勶細(xì)
① 紼嬪簭鍛樺彲浠ヤ笉鍏沖績鎮(zhèn)ㄧ殑紼嬪簭鏄湪浠涔堢被鍨嬬殑紜歡鍔犻熷櫒涓婃墽琛岋紝灝界寰堝鎯呭喌涓嬪ぇ瀹墮兘鐭ラ亾鑷繁鐢ㄧ殑鏄粈涔堝姞閫熷櫒銆?/span>
② 濡傛灉浣犵殑鏈哄櫒娌℃湁鍔犻熷櫒鎴栬呬綘鐨勫姞閫熷櫒涓嶅彲鐢紝閭d箞浣犵殑紼嬪簭鍙互緇х畫浠ュ師鏈夌殑鏂瑰紡鎵ц錛岃繖鏍峰氨淇濊瘉浜嗙▼搴忚兘緇х畫鎵ц銆?/span>
③ 浣跨敤HMPP錛屼綘鍙渶瑕佸嚑鍙ユ寚浠や綘鐨勭▼搴忓氨鍙互縐繪浜嗭紝鍐嶄篃涓嶇敤瀛︿範(fàn)浠涔?span style="font-family: Calibri">CUDA銆?span style="font-family: Calibri">OpenCL銆?span style="font-family: Calibri">Cg涔嬬被鐨勪笢瑗夸簡銆傜粰澶у鍑忚交浜嗚礋鎷呫?/span>
闇瑕佸埌CAPS鐨勫畼鏂圭綉绔欏幓鐧昏錛?a >http://www.caps-entreprise.com.cn/download/hmpp-openacc-compiler榪欎釜緗戠珯灝嗕富瑕佺敤浜庝簹媧茬敤鎴風(fēng)殑涓嬭澆錛夛紝鐒跺悗鎵嶅彲浠ヤ笅杞紿MPP緙栬瘧鍣紝鐩墠鏈鏂扮殑鐗堟湰鏄?.1錛岃繖涓増鏈彧鏈夋敮鎸丩inux 64浣嶇殑鐗堟湰錛屾敮鎸乄indows鐨勭増鏈皢鍦ㄦ櫄浜涙椂鍊欏彂甯冦傛柊鐨勭増鏈姞鍏ュOpenACC1.0鏍囧噯鐨勫叏閮ㄦ敮鎸併傚彲浠ュ悓鏃朵嬌鐢℉MPP浠ュ強(qiáng)OpenACC鐨勬寚浠わ紝褰撶劧鎴戜滑闇瑕佹弧瓚充竴瀹氱殑瑙勫垯銆傝繖浜涜鍒欏皢浼?xì)鍦ㄦ垜鍚幘l殑鏂囩珷涓愭笎璁插埌銆傛湡寰呭ぇ瀹剁殑鍏蟲敞濂ャ?/span>
鍦?span style="font-family: Calibri">Windows涓嬪畨瑁呫傚彧闇瑕佷綘鍙屽嚮杞歡瀹夎鍖呭氨鍙互浜嗐傜劧鍚庢牴鎹彁紺哄畨瑁呭氨鍙互浜嗐?/span>
鍦?span style="font-family: Calibri">Linux涓嬪畨瑁呫傚悇浣嶅彲浠ュ弬鑰?a >http://blog.csdn.net/bendanban/article/details/7769907
鍥犱負(fù)HMPP涓嶄細(xì)鎶婅璦緙栬瘧鐨勬墍鏈夋椿閮藉共瀹岋紝浠栭渶瑕佷綘鏈夐澶栫殑緙栬瘧鍣ㄣ傛墍浠ュ湪windows涓嬩綘鏈濂芥湁Visual Studio錛屽茍涓旀帹鑽?span style="font-family: Calibri">VS2008錛?span style="font-family: Calibri">VS9.0錛夈?span style="font-family: Calibri">Fortran璇█鐨勮瘽鍦?span style="font-family: Calibri">Windows涓嬫帹鑽愪嬌鐢?span style="font-family: Calibri">Intel FORTRAN Compiler銆?/span>
涓嬮潰鎴戠敤VisualStudio2008鏉ラ厤緗紪璇戣嚜宸辯殑C紼嬪簭鐨勬暣涓繃紼嬨傝繖閲屽亣璁懼悇浣嶅凡緇忓畨瑁呭ソ浜?span style="font-family: Calibri">HMPP鍜?span style="font-family: Calibri">VisualStudio2008銆備笅闈㈢洿鎺ラ厤緗惂銆?/span>
緙栬瘧鐜鐨勯厤緗繃紼嬶紒
Step1 鍦ㄤ綘涓嬭澆鐨勫帇緙╂枃浠朵腑浼?xì)鏈壘c諱技榪欐牱鍛藉悕鐨勬枃浠訛細(xì)HMPPWorkbench-*.*.*_WindowsTutorial.zip銆傛妸浠栬В鍘嬶紝鍦ㄨВ鍘嬪嚭鐨勬枃浠跺す涓紙labs/common/錛夋壘鍒頒竴涓悕涓?span style="font-family: Calibri">HMPP.rules鐨勬枃浠躲傛妸榪欎釜鏂囦歡鎷瘋礉鍒?span style="font-family: Calibri">[Visual Studio 瀹夎鐩綍]\VC\VCProjectDefaults\鐩綍涓嬨?/p>
Step2 涓嬮潰浣跨敤VS寤虹珛鑷繁鐨勫伐紼嬨傛墦寮VS錛屽鍥?span style="font-family: Calibri">4-1鎵紺哄緩绔嬩竴涓┖鐨勫伐紼嬨?/p>

鍥?-1
Step3 鍦ㄦ柊宸ョ▼涓坊鍔犱唬鐮佹枃浠躲備綘鍙互鎷瘋礉鎴戜笅闈㈢殑浠g爜銆?-)
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello HMPP\n");
getchar();
return 0;
}Step4 娣誨姞鑷畾涔夌敓鎴愯鍒欐惌寤烘墍闇鐜銆傚鍥?span style="font-family: Calibri">4-2鍒板浘4-6鎵紺恒?/font>

鍥?-2

鍥?-3

鍥?-4

鍥?-5

鍥?-6
璧板埌榪欎竴姝ワ紝鍚勪綅涓嶈鐫鎬ュ幓緙栬瘧鑷繁鐨勭▼搴忓ゥ銆備綘瑕佺‘淇濊嚜宸辨湁鏉冨埄浣跨敤HMPP緙栬瘧鍣ㄥゥ銆傜幇鍦ㄥ敮涓鐨勯斿緞灝辨槸鍘?span style="font-family: Calibri">CAPS鐨勫畼鏂圭綉绔欏幓鐧昏錛岀劧鍚庤幏寰楄瘯鐢ㄧ増鐨?span style="font-family: Calibri">license鎵嶈濂ャ備笅闈㈠亣璁句綘宸茬粡鑾峰緱浜?span style="font-family: Calibri">License鏂囦歡銆傝榪板浣曟垚鍔熺紪璇戠涓涓?span style="font-family: Calibri">Hello HMPP紼嬪簭銆?/span>
緙栬瘧鏉冮檺鐨勯厤緗繃紼嬶紒
Step1 棣栧厛灝嗕綘鑾峰緱鐨?span style="font-family: Calibri">.lic鎷瘋礉鍒?span style="font-family: Calibri">HMPP瀹夎鐩綍涓嬬殑licensens鏂囦歡澶逛笅銆?span style="font-size: 16px; font-family: Calibri">
Step2 鎸夌収鍥?span style="font-family: Calibri">4-7鎵撳紑鎺у埗鍙幫紝鎸夌収鍥?span style="font-family: Calibri">4-8鎵紺烘墽琛屽懡浠ゃ傚崈涓囨敞鎰忥紝涓瀹氫笉瑕佸湪闇瑕佷嬌鐢?span style="font-family: Calibri">HMPP緙栬瘧鏃跺叧闂綘鍒氬垰鎵撳紑鐨勬帶鍒跺彴銆?span style="font-size: 16px; font-family: Calibri">
瀹屾垚涓婇潰榪欎袱澶ч儴鍒嗕箣鍚庯紝灝卞彲浠ョ紪璇戞墽琛岀涓涓?span style="font-family: Calibri">HMPP緙栬瘧鍑虹殑紼嬪簭浜嗭紒錛佸浘4-9灞曠ず浜嗘墽琛岀粨鏋溿?/span>

鍥?-7

鍥?-8

鍥?-9
鍙傝冩枃鐚細(xì)
[1] HMPPWorkbench-2.5_HMPP_Directives_ReferenceManual[M/OL].