Znn3bq.jpeg
±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 965  |  »Ø¸´: 5
¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û4´Î£¬×÷Õßwuli8Ôö¼Ó½ð±Ò 4 ¸ö
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

[×ÊÔ´] ¡¾×ªÌû¡¿MPICH2¼òµ¥µÄ°²×°ÅäÖÃ×ܽá

MPICH2ÊÇMPI£¨Message-Passing Interface£©µÄÒ»¸öÓ¦ÓÃʵÏÖ£¬Ö§³Ö×îеÄMPI-2½Ó¿Ú±ê×¼£¬ÊÇÓÃÓÚ²¢ÐÐÔËËãµÄ¹¤¾ß£¬ÔÚ³ÌÐòÉè¼ÆÓïÑÔÉÏÖ§³ÖC/C++ºÍFortran¡£×î½üÒòΪÓÐÏîÄ¿ÐèÒªµÄ¼ÆËãÁ¿±È½Ï´ó£¬ËùÒÔ¾ÍѧϰʹÓÃÁËMPICH2£¬Ôڴ˸ù¾ÝÍøÂçÉϲéѯµÄÏà¹ØÐÅÏ¢ºÍÎÒ×Ô¼ºµÄʵ¼ÊʹÓþ­Àú£¬·Ö±ð×ܽáÒ»ÏÂMPICH2ÔÚwindowsºÍlinuxÏ»ù±¾µÄ°²×°Ê¹Ó÷½·¨¡£


Èí¼þÏÂÔØ


MPICH2µÄÖ÷Ò³ÊÇhttp://www-unix.mcs.anl.gov/mpi/mpich2/index.htm£¬ÔÚÕâ¸öÒ³ÃæÉϾÍÄÜÕÒµ½¸÷ƽ̨×îа汾MPICH2µÄÏÂÔØµØÖ·£¬ÆäÖл¹°üÀ¨Ô´´úÂ룬ÎÒÔÚ¿ªÊ¼×÷Õâ¸öÏîÄ¿µÄʱºò×îа汾ÊÇwindows°æmpich2-1.0.5p2£¬Ô´´úÂëmpich2-1.0.5p4¡£ÎÒÃǵÄÏîÄ¿ÊÇÒ»¸öCentOS°ælinuxϵijÌÐò£¬ËùÒÔ×îÖÕÊÇÒªÔÚlinuxÏÂÔËÐе쬵«ÊÇÓÖÉá²»µÃwindows£¬ÓÚÊǾʹòËã¿ÉÄܵϰ¾ÍÔÚwindowsÏÂд³ÌÐò£¬ÓÃMinGW¼Ówindows°æµÄMPICH2±àÒëµ÷ÊÔ£¬Í¨¹ýºóÔÙµ½wmwareÐéÄâ»ú×é³ÉµÄ¼òµ¥¼¯Èº×÷²âÊÔ¡£ËùÒÔ£¬Îª±ÜÃâ²»±ØÒªµÄÂé·³£¬¾ÍҪͳһһÏÂwindowsºÍlinuxϵÄMPICH2°æ±¾£¬¶øÇÒ²»´òËãÓÃ×îеģ¬Òò´Ë¾ö¶¨ÓÃmpich2-1.0.5°æ¡£µ«ÊÇ£¬Èç¹ûÔÚÖ÷Ò³ÉÏÕҵϰÊÇûÓÐÒÔǰ¾É°æ±¾ÏÂÔØµÄÁ´½ÓµÄ£¨ÖÁÉÙÎÒûÕÒµ½£©£¬Ö»ÓÐ×îа汾µÄhttpºÍftpÏÂÔØ¡£ÕâÄѲ»×¡ÎÒµÈÓÐÐÄÖ®ÈË£¬¼ÈÈ»ÌṩÁËftpÏÂÔØ£¬ÄÇÔÛ¾ÍÖ±½Óµ½Ëûftp·þÎñÆ÷ÉÏÕÒ£¬×îÐÂÔ´´úÂëÁ´½ÓµÄµØÖ·ÊÇftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5p4.tar.gz£¬°ÑºóÃæÎļþÃûÈ¥µô¾ÍÓ¦¸ÃÊÇÎļþµÄftp´æ·Å·¾¶£¬°ÑÕâ¸ö·¾¶Ö±½Óдµ½ä¯ÀÀÆ÷µØÖ·À¸Àï»Ø³µ£¨Å¼ÓõÄÊÇFireFox2£©£¬¾ÍÄÜ¿´µ½ËûÃÇ·þÎñÆ÷ÉÏÕâ¸öĿ¼µÄÎļþÁÐ±í£¬ÀïÃæ¾ÍÓÐ1.0.5°æµÄwindows°²×°ÎļþºÍÔ´´úÂë°ü£¬·Ö±ðΪftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5-win32-ia32.msi ºÍ ftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5.tar.gz ¡£msiÎļþ²»Óöà˵£¬ÕâÊÇwindowsϰ²×°Óõģ¬Ô´´úÂë°üÎÒÃÇÄÃÀ´ÔÚlinuxÏÂÓá£


ÎĵµÏÂÔØ


»¹ÊÇÖ÷Ò³ÉϾÍÓÐMPICH2µÄ°²×°ºÍʹÓÃÖ¸ÄÏÎĵµ£¬Ö÷ÒªÓÐÈý¸ö£¬·Ö±ðÊÇUser's Guide£¬Installer's GuideºÍWindows Developer's Guide£¬¶¼downÏÂÀ´¿´¿´ºÜÓÐÓõÄ˵¡£¾ßÌ忪·¢ÓõÄÓйØMPI±ê×¼µÄÎĵµÔÚMPIÂÛ̳µÄÍøÕ¾Àï¶¼ÓУ¬µØÖ·ÊÇhttp://www.mpi-forum.org/£¬ÎÒ¾õµÃ×îÓÐÓõÄÊÇMPI-2: Extensions to the Message-Passing Interface¡£


WindowsϵݲװÅäÖÃ


ÎÒÓõIJÎÓë¼ÆËãµÄϵͳ¶¼ÊÇWindowsXP Pro SP2£¬°²×°µÄ¹ý³ÌÃ»Ê²Ã´Ì«ÌØ±ðµÄ£¬Ò»°ã¾ÍÊÇĬÈϾͿÉÒÔ£¬Ö»ÊÇÆäÖÐÓиöµØ·½ÒªÌîÒ»¸öʲôpassphrase£¬ÉÏÃæÌáʾ˵ËùÓÐϵͳ¶¼ÒªÓÃÏàͬµÄpassphrase£¬ÕÕ×ö¾ÍÊÇÁË£¬ÔÚËùÓвÎÓë¼ÆËãµÄ½áµã»úÆ÷É϶¼ÌîÒ»ÑùµÄpassphrase¾ÍºÃÁË¡£ÁíÍâ¾ÍÊÇÐèÒª.net framework 2µÄÔËÐл·¾³¡£

ĬÈϰ²×°µÄλÖÃÊÇC:\Program Files\MPICH2£¬ÏÂÃæµÄbinĿ¼ÏÂÊÇϵͳÅäÖÃÔËÐÐÐèÒªµÄ³ÌÐò£¬ÎªÁË·½±ãÔÚ¿ØÖÆÌ¨Ê¹Ó㬿ÉÒÔ°ÑC:\Program Files\MPICH2\bin¼Óµ½ÏµÍ³µÄPATH±äÁ¿ÖÐÈ¥¡£IncludeÊÇÍ·Îļþ£¬¿ª·¢µÄʱºòÓã¬libÊÇÁ´½Ó³ÌÐòµÄʱºòÓõĿâÎļþ¡£JumpshotÏÂÓиöpdfµÄÎĵµ£¬¸ÉʲôÓõĿÉÒÔ¿´¿´Õâ¸öÎĵµ£¬ÎÒû×Ðϸ¿´£¬¸Ð¾õÎÒÔÝʱ»¹Óò»ÉÏ¡£ExamplesÏÂÃæÊÇÒ»¸öÑù±¾³ÌÐò£¬¾ÍÊÇÒ»¸öÓÃMPI¼ÆËãÔ²ÖÜÂʵijÌÐò£¬·Ö±ðÓÐC£¬C++ºÍFortran°æ£¬C/C++µÄÓ¦¸Ã¿ÉÒÔÓÃVS2003ÒÔÉϰ汾´ò¿ª¡£Í¬Ê±£¬°²×°³ÌÐò»¹»á×Ô¶¯Ïòϵͳע²áÒ»¸ö·þÎñMPICH2 Process Manager£¬ÎÒÃÇ´Ó¿ØÖÆÃæ°å£­¹ÜÀí¹¤¾ß£­·þÎñÀï¾ÍÄÜÕÒµ½£¬ÕâÊǹÜÀíÔËÐÐMPI³ÌÐòµÄÒ»¸ö·þÎñ£¬°²×°ºÃºó¾ÍÊÇ×Ô¶¯Æô¶¯µÄ£¬ËùÒÔÒ»°ãÒ²¾Í²»Óö¯Ëü¡£

°²×°Íê±Ïºó¿ªÊ¼²Ëµ¥£­³ÌÐòÖоÍÌí¼ÓÁËÒ»¸öMPICH2Ŀ¼£¬ÆäÖоÍÓÐÉÏÃæÌáµ½µÄJumpshot£¬ÁíÍâwmpiconfig.exeÊÇÓÃÀ´ÅäÖÃÔËÐл·¾³µÄ£¬ÎÒÔÚÍøÉÏÓÐÕÒµ½µÄ˵Ã÷¶¼ÊÇÒÔǰ¾É°æ±¾µÄ£¬ºÍÏÖÔڵIJî±ð±È½Ï´ó£¬¸Ð¾õÕâа汾ÓõIJ»Ë¬£¬Ã»¸ãÃ÷°×Õâ¸ö³ÌÐò¸ÃÕ¦Ó㬲»¹ýºÃÏñĬÈÏ״̬ϲ»¸Äʲô¾ÍÄÜÕý³£Ê¹Óã¬ËùÒÔÒ²¾Í²»¹ÜËüÁË¡£wmpiregister.exeÔòÊÇÓÃÀ´×¢²áÓû§µÄ£¬Ê¹ÓÃMPI֮ǰÐèÒªÔÚÕâ¸ö³ÌÐòÀï×¢²áÒ»¸öϵͳÀïÒѾ­´æÔÚµÄÓû§£¬¶øÇÒÕâ¸öÓû§±ØÐèÓµÓйÜÀíԱȨÏÞ£¬ÓµÓÐÔËÐÐÎÒÃǰ²×°Á˵ÄMPIϵͳµÄÄÜÁ¦¡£±ÈÈçÎÒ¾ÍÔÚËùÓвÎÓëÔËËãµÄ»úÆ÷ÉÏÌí¼ÓÁËÒ»¸ö¹ÜÀíÔ±mpi£¬ÃÜÂëÒ²ÊÇmpi¡£

½ÓÏÂÀ´£¬ÎÒÃǾͿÉÒÔ¿ªÊ¼ÊÔ×ÅÔËÐÐÒ»ÏÂMPIµÄ³ÌÐòÁË¡£¾ÍÓÃexamplesĿ¼ÏÂÃæµÄÄǸö¼ÆËãÔ²ÖÜÂʵijÌÐò¡£Èç¹ûÒª¶à»ú²¢ÐмÆËãµÄ»°£¬¾ÍÐèÒªÔÚËùÓлúÆ÷ÉϵÄÏàͬλÖ÷ÅÖÃÒªÔËÐеijÌÐò£¬ÎÒµÄÇé¿ö¾ÍÊÇÔÚËùÓлúÆ÷µÄCÅÌϽ¨ÁËÒ»¸ömpiexeµÄĿ¼£¬²¢°Ñcpi.exe¿½µ½ËùÓлúÆ÷µÄÕâ¸öĿ¼Ï¡£È»ºó£¬ÔÚÆäÖеÄij̨»úÆ÷ÉϽøÈë¿ØÖÆÌ¨£¨ÔËÐÐMPI³ÌÐòÆäʵҲ¿ÉÒÔÓÿªÊ¼²Ëµ¥µÄMPICH2ϵÄwmpiexec.exe£¬ÕâÊǸögui³ÌÐò£¬µ«ÊÇÎÒ¾õµÃÓõIJ»Ë¬£¬²»ÈçÖ±½ÓÔÚ¿ØÖÆÌ¨ÏÂÇÃÃüÁîÀ´µÃÁé»î£©£¬ÇÃÏÂÃüÁîmpiexec -hosts 2 192.168.10.142 192.168.0.23 c:\mpiexe\cpi.exe¡£mpiexecÊǰ²×°Ä¿Â¼ÏÂbinĿ¼ÀïµÄÒ»¸ö³ÌÐò£¬ÔÚ±¾ÎĵÄÀý×ÓÖоÍÊÇC:\Program Files\MPICH2\bin\mpiexec.exe£¬ÒòΪ¸Õ²Å˵ÁË£¬ÎÒ°ÑÕâ¸öµØÖ·¼ÓÈëµ½PATHÀïÁË£¬ËùÒÔ¿ÉÒÔÔÚÈκεط½Ö±½ÓÖ´ÐУ¬ËüÊÇÓÃÀ´Æô¶¯MPI³ÌÐòµÄ£¬-hosts²ÎÊý˵Ã÷ÊÇÆô¶¯¶ą̀»úÆ÷²¢ÐÐÔËË㣬ºóÃæ¸ú×ŵÄ2¾ÍÊÇ˵ҪÔÚÁ½Ì¨»úÆ÷ÉÏÖ´ÐгÌÐò£¬ÔÙºóÃæµÄ¾ÍÊÇÄÇÁ½Ì¨»úÆ÷µÄipµØÖ·£¬ÆäÖеÚÒ»¸ö¾ÍÊÇÎÒÆô¶¯³ÌÐòµÄ»úÆ÷£¬µ±È»£¬Õâ¸öµØ·½Ò²¿ÉÒÔд»úÆ÷Ãû£¬Ö»ÒªËüµÄ»úÆ÷ÃûÄܱ»Õý³£µÄ½âÎö¾Í¿ÉÒÔ£¬×îºóÃæµÄ¾ÍÊÇÒªÔËÐеijÌÐò£¬Ò²¾ÍÊǸղÅÌáµ½µÄËùÓлúÆ÷¶¼ÒªÔÚÏàͬλÖ÷ÅÖõÄÄǸöMPI³ÌÐò¡£Èç¹ûÖ»ÊÇÔÚ±¾»úÔËÐУ¬ÔòÃüÁîΪmpiexec ¨Cn 2 cpi.exe£¬­-n±íʾÊÇÔÚ±¾µØÔËÐУ¬ºóÃæµÄ2±íʾÆô¶¯µÄ½ø³ÌÊý¡£³ÌÐòÔËÐкó¾Í»áÌáʾÈÃÄãÊäÈëÒ»¸öÊý×Öintervals£¬Õâ¸öÊý×ÖÓ°Ïì¼ÆËãµÄ¾«¶È£¬ÖµÔ½´ó¾«¶ÈÔ½¸ß£¬µ±È»¼ÆËãʱ¼ä¾ÍÔ½³¤ÁË£¬È»ºó³ÌÐò»á´òÓ¡³ö¼ÆËãµÄ½á¹ûºÍ»¨·ÑµÄʱ¼ä¡£

±ÈÈ磬ÎÒʹÓõ¥»úµ¥½ø³ÌÔËÐУ¬intervalsÉèΪ99999999£¬ºÄʱ1.253849Ã룬¶øÓÃÁ½Ì¨»úÆ÷Ë«½ø³ÌÔòÖ»ÓÐ0.628954Ã룬Ã÷ÏÔ¿ìºÜ¶à£¬²¢ÐÐÔËË㻹ÊǺÜÓÐЧ¹ûµÄ¡£²»¹ý£¬Èç¹ûÎÒÃǰÑintervals¸ÄΪ9999£¬µ¥»úÔËÐÐÖ»ÓÃÁË0.000279Ã룬¶øÁ½Ì¨»úÆ÷È´»¨ÁË0.001548Ã룬ÕâÊÇÒòΪ²¢ÐÐÔËËã¹ý³ÌÖУ¬²ÎÓëÔËËãµÄ»úÆ÷ÐèҪͨ¹ýÍøÂç´«µÝһЩÏûÏ¢£¬Èç¹û¼ÆËãÁ¿²»´óµÄ»°£¬»¨ÔÚÁËÕâÉÏÃæµÄʱ¼äÓ°Ïì»á±È½ÏÃ÷ÏÔ£¬Òò¶ø·´²»Èçµ¥»ú°æµÄÀ´µÃ¿ì¡£

µ½ÏÖÔÚÎÒÃǵÄMPIÔËÐл·¾³¾Í»ù±¾°²×°ºÃÁË£¬µ±È»£¬MPI»¹ÓкܶàÆäËûµÄÃüÁî²ÎÊý£¬Ö»²»¹ý×î³£ÓùÀ¼ÆÒ²¾ÍÕâÁ½ÌõÁË£¬ÆäËûµÄÓõÃ×ŵÄʱºò¾ÍÈ¥²éÉÏÃæÌáµ½µÄÎĵµ£¬ÀïÃæÓбȽÏÏêϸµÄ½éÉÜ¡£ÁíÍ⣬Èç¹û°´ÕÕÒÔÉϵĽéÉܽøÐа²×°ÅäÖã¬ÔÚÔËÐжà»ú²¢ÐÐMPI³ÌÐòµÄʱºòÈ´³öÏÖÁ¬½Ó´íÎóµÄ»°£¬°Ë³ÉÊÇÒòÎªÍøÂçµÄÎÊÌ⣬¿´¿´ÄãµÄ·À»ðǽÊDz»ÊÇ¿ª×Å£¬´ò¿ªÏàÓ¦µÄ¶Ë¿Ú£¬»òÕß¸É´à¹Øµô·À»ðǽ¾ÍºÃÁË¡£



LinuxϵݲװÅäÖú͵¥»úÔËÐÐ

LinuxϵIJÙ×÷ÒªÏà¶ÔÀ´ËµÂé·³Ò»µã£¬Õâ¸öÂé·³´Ó°²×°¿ªÊ¼£¬ºÇºÇ¡£ÎÒÓõÄϵͳÊÇCentOS4.4£¬×°ÔÚVMware WorkstationÀïµÄ£¬Ò»¹²×°ÁËÁ½¸öÐéÄâ»ú£¬»·¾³»ù±¾ÉÏÍêȫһÑù¡£ÎªÔËÐÐMPIÔÚÁ½Ì¨ÐéÄâ»ú¶¼´´½¨ÁËÒ»¸öÓû§mpi£¬ÃÜÂëÒ²ÊÇmpi£¬home·¾¶Ò²¶¼ÊÇ/home/mpi£¬È»ºó¼ÌÐø¶¼´´½¨ÁËÒ»¸öĿ¼/home/mpi/mpich2ÓÃÀ´×÷MPIÔËÐл·¾³µÄ°²×°Â·¾¶£¬Ò»¸ö/home/mpi/mpich2/srcÀ´´æ·Å±àÒëÓõÄÔ´´úÂ롣Ȼºó½«Ô´´úÂë°ümpich2-1.0.5.tar.gzÏÂÔØµ½Á½Ì¨»úÆ÷ÉÏ£¬¶¼½âѹËõµ½/home/mpi/mpich2/srcÖУ¬È»ºóµ½/home/mpi/mpich2/srcÏ£¬Ö¸¶¨°²×°Â·¾¶,

./configure -prefix=/home/mpi/mpich2

make

make install

¼¸·ÖÖÓºó°²×°Íê±Ï¡£ÐèÒªÌáһϵÄÊÇ£¬ÎÒÔø¾­ÊÔ×ÅÓÃrootÓû§À´°²×°MPICH2£¬µ«Êǰ²×°ºóºÃÖØÆôϵͳ¾Í³öÁËÎÊÌ⣬ËùÒÔ½¨Ò黹ÊÇÁíÍ⽨¸öÓû§À´×°°É£¨ubuntu¸É´à¾Í°Ñroot¸ø½ûÁË£¬²»ÈÃÄãÖ±½ÓÓÃroot£©¡£

       °²×°ºó/home/mpi/mpich2϶à³öÀ´Ò»Ð©Ä¿Â¼ºÍÎļþ£¬Òª±Èwindows¶à£¬libÊÇ¿âÎļþ£¬includeÊÇÍ·Îļþ£¬bin»¹ÊdzÌÐòÎļþ£¬ËùÒÔ»¹ÊÇҪдµ½»·¾³±äÁ¿À¿ÉÒÔÓÃÃüÁîexport PATH /home/mpi/mpich2/bin:$PATH£¬µ«ÎÒÊÇÓÃrootÓû§Ö±½ÓÔÚ/etc/profile×îºóÃæ¼ÓÁËÕâôһ¾äexport PATH=/home/mpi/mpich2/bin:$PATH£¬Ò»ÀÍÓÀÒÝ¡£

       MPIÓ¦ÓÃÒ»¸ö¹ÜÀíÆ÷À´¹ÜÀíÔËÐÐMPI³ÌÐò£¬Õâ¸ö¹ÜÀíÆ÷¾ÍÊÇmpd£¬µ«ÊÇÔÚÕýʽ¿ªÊ¼ÔËÐÐmpdǰ»¹ÐèÒªÒ»¸ö»ùÓÚ°²È«¿¼ÂǵÄÅäÖÃÎļþ£¬.mpd.conf£¬Õâ¸öÎļþÊÇÒª·ÅÔÚÔËÐгÌÐòµÄÓû§µÄhomeĿ¼Ï£¬±¾Àý×ÓÖоÍÊÇ/home/mpi/.mpd.conf£¬¶øÇÒÕâ¸öÎļþÖ»ÄÜÓÉÕâ¸öÓû§¶Áд£¬´´½¨ÎļþµÄÃüÁîÊÇ£¬

cd $HOME

touch .mpd.conf

chmod 600 .mpd.conf

È»ºóÔÚÎļþÖÐдÈëÕâôһÐУ¬secretword=***£¬***ÔÚ²ÎÓë¼ÆËãµÄ¼ÆËã»úÉϱØÐèÍêȫһÖ¡£Èç¹ûÊÇrootÓû§µÄ»°£¬Õâ¸öÎļþÓ¦¸ÃÊÇ/etc/mpf.conf¡£

       È»ºó£¬ÎÒÃǾͿÉÒÔÆô¶¯mpd¹ÜÀíÆ÷ÁË£¬Ö±½ÓÔÚ¿ØÖÆÌ¨ÏÂʹÓÃmpdÃüÁ»òÕßÊÇmpd &£¬ÈÃmpdÔÚºǫ́ÔËÐУ¬Èô¹Ø±ÕÆô¶¯µÄmpd£¬Ö»ÐèÒªÃüÁîmpdallexit¼´¿É¡£ÔÚÆô¶¯mpdÖ®ºó¾Í¿ÉÒÔÔËÐÐMPIÓ¦ÓóÌÐòÁË£¬Ö´ÐÐÃüÁîÓëwindowsÏÂÀàËÆ£¬ÈçÎÒÃÇÈÔÈ»ÊDzâÊÔÒ»ÏÂexamplesÀïµÄcpi³ÌÐò¿ÉÒÔÕâÑùÀ´×÷£¬

cd ~/mpich2/examples

mpiexec -n 1 ./ cpi

²ÎÊýº¬Òåͬwindowsϵĵ¥»úÔËÐÐÃüÁî¡£ÁíÍ⣬Æô¶¯mpdºó»¹¿ÉÒÔÓÃÃüÁîmpdtraceÀ´²ì¿´µ±Ç°ÔËÐеÄmpdÇé¿ö¡£


SSHÅäÖúͶà»ú²¢ÐÐ

MPIµÄ¶à»ú²¢ÐÐÊÇÓÃmpdbootÀ´¹ÜÀíÆô¶¯µÄ£¬ÊÇÓɲÎÓë¼ÆËãµÄÆäÖÐһ̨»úÆ÷ͨ¹ýmpdbootͬʱÆô¶¯ÆäËû»úÆ÷ÉϵÄmpd¹ÜÀíÆ÷²¢ÔËÐÐÏàÓ¦MPI³ÌÐòµÄ£¬ËùÒÔ£¬ÐèÒª¸³ÓèÔËÐÐmpdbootµÄ»úÆ÷Ö´ÐÐÆäËû»úÆ÷ÉϳÌÐòµÄÄÜÁ¦¡£MPICH2Ö§³Öͨ¹ýsshºÍrshÀ´×öµ½ÕâÒ»µã£¬ÆäÖÐsshÊÇĬÈϵ쬶øÇÒÆä°²È«ÐÔÒ²ÓÅÓÚrsh£¬Òò´Ë£¬ÎÒÔÚÏîÄ¿ÖÐÊÇÓõÄssh¡£

       Ê×ÏÈ£¬ÎÒÃÇÐèÒªÐÞ¸ÄËùÓлúÆ÷ÉϵÄ/etc/hostsÎļþ£¬ÔÚÀïÃæÌí¼ÓÉϲÎÓë¼ÆËãµÄ»úÆ÷ÃûºÍipµØÖ·£¬±ÈÈç±¾ÎÄÖÐÓÐÁ½Ì¨»úÆ÷²Î¼ÓµÄÀý×ÓÀhostsÎļþÓ¦µ±Îª£º

127.0.0.1 localhost.localdomain localhost

192.168.10.142 node0

192.168.10.23 node1

ÕâÀïµÄÒâ˼ÊÇ˵£¬Ö÷»úÃûΪnode0µÄ»úÆ÷ipµØÖ·Îª192.168.10.142£¬Ö÷»úÃûΪnode1µÄ»úÆ÷ipµØÖ·Îª192.168.10.23¡£


µ±È»£¬ÆäʵÕâÒ»²½Ò²¿ÉÒÔÌø¹ý£¬ÒòΪÎÒÃÇÒ²¿ÉÒÔÔÚ²Ù×÷¹ý³ÌÖÐÖ±½ÓʹÓÃipµØÖ·£¬Ö»²»¹ýÄÇÑù²»Ì«·½±ã¡£ÁíÍâ¾ÍÊÇ£¬ÓÐЩ»úÆ÷ĬÈÏÇé¿öϵÚÒ»ÐпÉÄܰüÀ¨±¾»úµÄÖ÷»úÃû£¬±ÈÈçÔÚipΪ192.168.10.142µÄnode0ÉÏ£¬hostsÎļþµÚÒ»ÐÐÊÇ

127.0.0.1 localhost.localdomain localhost node0

ÕâÑù¿ÉÄÜ»áʹµÃmpdboot¹¤×÷²»Õý³££¬ËùÒÔ»¹ÊÇ×îºÃ¸ø³ÉÉÏÃæµÄÄÇÖÖÐÎʽ¡£

       µÚ¶þ²½ÊÇ´´½¨sshÃÜÔ¿£¬ÃüÁîÐÐÏ£º

#ssh-keygen -t rsa

-t rsaÖ¸µÄÊÇÃÜÔ¿ÀàÐÍ£¬¾ßÌåÇë²ì¿´sshÏà¹Ø×ÊÁÏ£¬ÕâÀï²»¶à˵¡£ÕâÑù¾ÍÔÚµ±Ç°Óû§µÄhomeĿ¼ÏÂÉú³ÉÁËÒ»¸ö.sshĿ¼£¬±¾ÎÄÖеľÍÊÇ/home/mpi/.ssh¡£

       µÚÈý²½£¬½«/home/mpi/.sshϵÄid_rsa.pubÎļþ¿½±´¸ÄÃûΪauthorized_keys£¬¼´

#cp id_rsa.pub authorized_keys

       µÚËIJ½£¬ÔÚÆäËûËùÓлúÆ÷ÉϽøÐÐÒÔϲÙ×÷¡£

#ssh-keygen -t rsa                                            Éú³É.sshÎļþ¼Ð

#scp node0µÄIP:/home/mpi/.ssh/* ~/.ssh           ¿½±´node0ÉϵÄ.sshÎļþ¼Ð¸²¸Ç±¾µØµÄ

       µÚÎå²½£¬ÔÚËùÓлúÆ÷ÉϽ¨Á¢Óë×Ô¼ººÍËùÓÐÆäËû»úÆ÷µÄÐÅÈÎÁ¬½Ó¡£

¶Ôÿ¸ö½ÚµãÖ´ÐУº

#ssh node0

#ssh node1

¸ù¾ÝÌáʾ¼üÈëyes¼´¿É¡£È»ºó¾Í¿ÉÒÔÔÚ²»ÐèÒªÓû§ÃûÃÜÂëµÄÇé¿öÏÂͨ¹ýsshµÇ½ÆäËû»úÆ÷ÁË£¬±ÈÈçÔÚnode0ÉÏ#ssh node1£¬

¾Í¿ÉÒÔÖ±½Ó½øÈënode1¡£

       ½ÓÏÂÀ´£¬ÔÚÆô¶¯mpdbootµÄ»úÆ÷ÉÏ´´½¨Ò»¸ö²ÎÓë¼ÆËãµÄhostÁбíÎļþ£¬ÈçÎļþmpd.hosts£¬Ã¿ÐÐÊÇÒ»¸öÖ÷»úÃû£¬´´½¨¹ý³ÌÈç

#cd ~

#touch mpd.hosts

#vi mpd.hosts

nod0

node1


ÏÖÔÚ£¬¾Í¿ÉÒÔÆô¶¯ÔËË㼯ȺÁË

#mpdboot -n 2 -f mpd.hosts

-n±íʾҪÆô¶¯µÄ»úÆ÷¸öÊý£¬Ò»°ãÊDz»´óÓÚmpd.hostsÎļþÖеĻúÆ÷Êý£¬±ÈÈç±¾ÎÄÖеÄÀý×Ó¾ÍÊÇÁ½Ì¨»úÆ÷¡£ÕâÑù£¬ÁбíÖеĻúÆ÷¾Í»áÆô¶¯Æä±¾»úÉϵÄmpd¹ÜÀíÆ÷¡£

       È»ºó£¬¾Í¿ÉÒÔ¿ªÊ¼ÔËÐÐMPI³ÌÐò£¬½øÐÐÔËËãÁË£¬Í¬windowsÏÂÒ»Ñù£¬³ÌÐòÐèÒª·ÅÔÚÿ̨»úÆ÷ÉϵÄÏàͬλÖã¨Èç¹ûÓÃNFS¾ÍÖ»ÐèÔÚһ̨»úÆ÷ÉÏ·ÅÖóÌÐò£¬ÆäËû»úÆ÷×÷Ó³Éä¾ÍÐУ©£¬±ÈÈç¶¼ÊdzÌÐò/home/mpi/mpich2/examples/cpi£¬ÔÚÔËÐÐmpdboot µÄ½áµã»úÆ÷ÉÏ£º

#mpiexec -n 2 /home/mpi/mpich2/examples/cpi

-n±íʾҪÆô¶¯µÄ½ø³Ì¸öÊý£¬Ò»°ãÊDz»´óÓÚmpd.hostsÎļþÖеĻúÆ÷Êý£¨»òÕßcpuºËÐÄÊý£¿Å¼ÓõĻúÆ÷¾ÍÊÇË«ºËµÄÁË£¬ËùÒÔµ¥»úµÄʱºòË«½ø³Ì±Èµ¥½ø³ÌЧÂʺúܶ࣬µ«ÊÇÈý½ø³Ì¾Í²»ÐУ©¡£

MpdÔÚÔËÐйý³ÌÖУ¬¿ÉÒÔͨ¹ýmpdtraceÏÔʾ²ÎÓë¼ÆËãµÄ»úÆ÷Ãû£¬mpdtrace ¨ClÔòÊÇÏÔʾ»úÆ÷ÃûÒÔ¼°Æä¶Ë¿Ú¡£
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¡ï ¡ï ¡ï ¡ï ¡ï
zxzj05(½ð±Ò+5,VIP+0):3Q£¡ ^_^ ¶à¶àÖ§³Ö£¡ 5-26 11:26
ÅäÖÃmpich2ÔËÐл·¾³



  
ǰ¶Îʱ¼ä°ïͬѧÔÚlinuxÏÂÅäÁËÒ»¸ö¼¯Èº»·¾³£¬²Î¿¼ÁËÒ»Ð©ÍøÉϵÄÎÄÕ£¬¾Í°Ñ¹ý³Ìд³öÀ´£¬×ö¸ö²Î¿¼°É¡£
ÆäʵÔÚÎÒÃǵĻ·¾³ÏÂsshÒѾ­ÊÇÅäÖúõ쬵«ÊÇÎÒ»¹ÊǰÑÍøÉÏ¿´µ½µÄдÏÂÀ´£¬¶øÇÒÕâ¸öÅäÖùý³ÌÎÒÊÔ¹ý£¬Ã»ÓÐʲôÎÊÌâ¡£
´´½¨SSHÐÅÈÎÁ¬½Ó
1¡¢¸ü¸Ä/etc/hostsÎļþ
¡¡¡¡
¡¡¡¡vim /etc/hosts
¡¡¡¡±à¼­ÎªÏÂÃæÄÚÈÝ£º
¡¡¡¡127.0.0.1 localhost.localdomain localhost
¡¡¡¡192.168.110.172 scc-m¡¡¡¡#node01µÄIP
¡¡¡¡192.168.110.172 node01¡¡¡¡#node01µÄIP
¡¡¡¡192.168.110.173 node02¡¡¡¡#node02µÄIP

2¡¢ÔÚnode01Éú³ÉSSHÃØÔ¿¶Ô
¡¡¡¡
¡¡¡¡ssh-keygen -t rsa
¡¡¡¡²úÉú.sshĿ¼
¡¡¡¡
¡¡¡¡ls -a
¡¡¡¡²é¿´È·ÈÏÎÞÎó
3¡¢Éú³Éauthorized_keysÎļþ

¡¡¡¡cd .ssh
¡¡¡¡½øÈë.sshĿ¼

¡¡¡¡cp id_rsa.pub authorized_keys

4¡¢½¨Á¢±¾ÉíµÄÐÅÈÎÁ¬½Ó

¡¡¡¡cd ..
¡¡¡¡Í˳öµ½/rootĿ¼ÏÂ
¡¡¡¡
¡¡¡¡ssh node01
¡¡¡¡°´ÌáʾÊäÈëyes

5¡¢ÉèÖÃnode02
¡¡¡¡ssh-keygen -t rsa
¡¡¡¡Éú³É.sshĿ¼

¡¡¡¡scp 192.168.110.172£º/root/.ssh/* /root/.ssh
¡¡¡¡¿½±´node01ÉϵÄ.sshÎļþ¼Ðµ½±¾µØ²¢¸²¸Ç±¾µØµÄ¸ÃĿ¼

¡¡¡¡scp 192.168.110.172£º/etc/hosts /etc/hosts
¡¡¡¡¿½±´node01ÉϵÄhostsÎļþ¸²¸Ç±¾µØµÄhosts

¡¡¡¡ssh node01
¡¡¡¡Ìáʾ´¦ÊäÈëyes

6¡¢È·ÈÏÁ½Ì¨»úÆ÷µÄÐÅÈÎÁ¬½ÓÒѽ¨Á¢

¡¡¡¡ÔÚÿ¸ö½ÚµãÊÔÑéÖ´ÐУº
¡¡¡¡ssh node01
¡¡¡¡ssh node02
¡¡¡¡Èç¹ûÓÐÌáʾ£¬ÔÚÌáʾ´¦ÊäÈëyes»Ø³µ£¬Ö»ÒªÈ·¶¨ÎÞÐèÊäÈëÃÜÂë¾ÍÄܵǽ¼´¿É
ÏÂÃæÊǰ²×°mpich2µÄ¹ý³Ì
¶þ¡¢°²×°MPICH2

1¡¢µ½MPICH¹Ù·½ÍøÕ¾ÏÂÔØÔ´´úÂë°ü£¬½âѹËõ

¡¡¡¡tar -zxvf mpich2-1.0.7.tar.gz
¡¡¡¡
2¡¢´´½¨°²×°Ä¿Â¼

¡¡¡¡mkdir /usr/MPICH-instsll

3¡¢½øÈëmpich2½âѹµ½µÄĿ¼Àï

¡¡¡¡cd mpich2-1.0.7

4¡¢ÏÂÃæ¾ÍÊDZàÒë°²×°Èí¼þµÄÄÇÈý¸ö»ù±¾²½Ö衪¡ª¼ì²éÅäÖᢱàÒë¡¢°²×°£¬Õâ´ÎÔÚ./configureºó»¹ÉèÖÃÁ˰²×°Ä¿Â¼

¡¡¡¡./configure --prefix=/usr/MPICH-install

5¡¢Ð޸Ļ·¾³±äÁ¿(±à¼­.bashrcÎļþ)

¡¡¡¡vim .bashrc
¡¡¡¡
¡¡¡¡Ð޸Ļ·¾³±äÁ¿Îª£¨ÐÂÔöPATHÒ»ÐУ©£º
¡¡¡¡
¡¡¡¡# .bashrc
¡¡¡¡# User specific aliases and functions
¡¡¡¡PATH="$PATH:/usr/MPICH-install/bin"  #Õâ¸öµØ·½ÓÃ×Ô¼ºµÄ°²×°Â·¾¶£¬ÎÒÃÇÊÇÒÔÆÕͨÓû§µÄȨÏÞÀ´°²×°µÄ£¬ËùÒÔ·¾¶²»ÊÇÕâÑù¡£
¡¡¡¡alias rm='rm -i'
¡¡¡¡alias cp='cp -i'
¡¡¡¡alias mv='mv -i'
¡¡¡¡# Source global definitions
¡¡¡¡if [ -f /etc/bashrc ]; then
¡¡¡¡        . /etc/bashrc
¡¡¡¡fi

6¡¢²âÊÔ»·¾³±äÁ¿ÉèÖã¬ÏÂÃæÊÇÎÒ²âÊԳɹ¦µÄÆÁÏÔ£º

¡¡¡¡[user@node01 ~]$ which mpd
¡¡¡¡[user@node01 ~]$ which mpicc
¡¡¡¡[user@node01 ~]$ which mpiexec
¡¡¡¡[user@node01 ~]$ which mpirun

7¡¢ÐÞ¸Ä/etc/mpd.confÎļþ£¬ÄÚÈÝΪsecretword=myword

¡¡¡¡vim /etc/mpd.conf                 # ×Ô¼º´´½¨£¬²¢Ð´Èësecretword=myword±£´æ£¬ÓÉÓÚÎÒÃÇûÓÐrootȨÏÞ£¬ËùÒÔÎÒ¸ÄÔÚÖ÷Ŀ¼Ï½¨Á¢.mpd.confÎļþ²¢Ð´ÈëÄÚÈÝ

¡¡¡¡ÉèÖÃÎļþ¶ÁȡȨÏÞºÍÐÞ¸Äʱ¼ä´Á

¡¡¡¡chmod 600 /etc/mpd.conf
¡¡¡¡touch /etc/mpd.conf               # touch .mpd.conf£¬Ð´ÈëÖ®ºóÕâÒ»²½¿ÉÒÔÊ¡ÂÔ

8¡¢´´½¨Ö÷»úÃû³Æ¼¯ºÏÎļþ/root/mpd.hosts   # ͬÑùÎÒÃÇÔÚÖ÷Ŀ¼Ï´´½¨¸ÃÎļþ²¢Ð´ÈëÄÚÈÝ

¡¡¡¡vim mpd.hosts
¡¡¡¡ÎļþÄÚÈÝÈçÏ£º
¡¡¡¡node01
¡¡¡¡node02
Èý¡¢²âÊÔ

1¡¢±¾µØ²âÊÔ

¡¡¡¡Æô¶¯£º
¡¡¡¡mpd &
¡¡¡¡
¡¡¡¡¹Û¿´Æô¶¯»úÆ÷£º
¡¡¡¡mpdtrace

¡¡¡¡Í˳ö£º
¡¡¡¡mpdallexit

2¡¢ÔËÐм¯ÈºÏµÍ³

¡¡¡¡mpdboot -n 2 -f mpd.hosts
¡¡¡¡²ÎÊý-n 2Ö¸¶¨ÁËÒªÆð¶¯µÄ»úÆ÷¸öÊý£¬-f mpd.hostsÖ¸¶¨ÁËͨ¹ýmpd.hostsÔËÐÐ

¡¡¡¡mpdtrace

¡¡¡¡mpdallexit

3¡¢²âÊÔÔËÐÐMPICHµÄ³ÌÐò

¡¡¡¡mpdboot -n 2 -f mpd.hosts
¡¡¡¡Æô¶¯ÕâÁ½Ì¨»úÆ÷

¡¡¡¡mpiexec -n num /example/hello
¡¡¡¡ÓÃnumÖ¸¶¨Ê¹ÓõĽø³ÌÊý

¡¡¡¡mpdallexit

ËÄ¡¢²é´í

1¡¢Í¨¹ýmpdcheck»ñµÃ°ïÖúÐÅÏ¢

¡¡¡¡mpdcheck -pc

2¡¢²é´í

¡¡¡¡mpdcheck -l

3¡¢Í¨¹ýmpd.hostsÎļþ²é´í

¡¡¡¡mpdcheck -f mpd.hosts
¡¡¡¡Èç¹ûÎÞ´íÎó

¡¡¡¡mpdcheck -f mpd.hosts  -ssh

4¡¢¶ÔÈÎÒâÁ½Ì¨»úÆ÷½øÐвé´í

¡¡¡¡node01ÉÏ£º

¡¡¡¡mpdcheck -s
¡¡¡¡·µ»ØÖ÷»úÃûhostºÍ¶Ë¿Úport
¡¡¡¡
¡¡¡¡node02ÉÏ£º

¡¡¡¡mpdcheck -c host port

5¡¢mpd²é´í

¡¡¡¡node01ÉÏ:
¡¡¡¡
¡¡¡¡mpd -e &
¡¡¡¡·µ»ØÊ¹ÓõĶ˿Ú

¡¡¡¡node02ÉÏ:

¡¡¡¡mpd -h m1 -p echoed_port_m1 &
2Â¥2009-05-25 21:38:59
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

tjyl

½ð³æ (ÕýʽдÊÖ)


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö


±È½ÏÈ«Ãæ
3Â¥2009-05-25 21:44:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

ºÜÏêϸ
4Â¥2009-05-26 11:26:30
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

mickk

Ìú¸Ëľ³æ (Ö°Òµ×÷¼Ò)


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

ºÜÈ«Ãæ£¬¸Ð¾õÂ¥Ö÷
5Â¥2009-05-26 15:38:26
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zhangyunli

½ð³æ (ÕýʽдÊÖ)


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

§Ý§Ý
6Â¥2009-08-07 15:12:55
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ wuli8 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 275 Çóµ÷¼Á +4 Lei812514 2026-04-07 4/200 2026-04-07 20:55 by grlsj
[¿¼ÑÐ] ÉúÎïÓëÒ½Ò©273Çóµ÷¼Á +14 ÀóÌâÄÏǽ 2026-04-05 15/750 2026-04-07 16:29 by ¿É¿Ú¿ÉÀÖ²»¼Ó±ùØ
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»´ó²ÄÁϹ¤³Ì×Ü·Ö358Çóµ÷¼Á +10 cs0106 2026-04-05 12/600 2026-04-06 19:41 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] Çóµ÷¼Á +11 xzghyuj 2026-04-04 11/550 2026-04-06 11:49 by lijunpoly
[¿¼ÑÐ] »¯Ñ§µ÷¼ÁÇóÖú +8 LULONG1 2026-04-03 8/400 2026-04-06 10:26 by dongzh2009
[¿¼ÑÐ] ¿¼Ñе÷¼Á +5 ÃÀÀöµÄyouth_ 2026-04-04 6/300 2026-04-06 06:57 by houyaoxu
[¿¼ÑÐ] Ò»Ö¾Ô¸9²ÄÁÏѧ˶297ÒѹýÁù¼¶Çóµ÷¼ÁÍÆ¼ö +11 adaie 2026-04-04 12/600 2026-04-05 19:04 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 277Çóµ÷¼Á +5 ¿¼Ñе÷¼Álxh 2026-04-05 5/250 2026-04-05 19:03 by chy09050039
[¿¼ÑÐ] 296Çóµ÷¼Á +3 Íô£¡£¿£¡ 2026-04-05 5/250 2026-04-05 17:38 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 272Çóµ÷¼Á +4 µçÆøÀî 2026-04-05 4/200 2026-04-05 10:41 by lbsjt
[¿¼ÑÐ] µ÷¼ÁÇóÖú +10 Ïë»»ÊÖ»ú²»Ïë½âÊ 2026-04-02 13/650 2026-04-05 09:41 by sam3303
[¿¼ÑÐ] Ò»Ö¾Ô¸Ö£´ó0705Çóµ÷¼Á +3 éÙʮһ 2026-04-02 4/200 2026-04-05 00:05 by chongya
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤306·ÖÕÒµ÷¼Á +12 ²×º£ÇáÖÛe 2026-04-03 13/650 2026-04-04 23:45 by lqwchd
[¿¼ÑÐ] 387Çóµ÷¼Á +4 °®³ÔƬ¶¹ÍÁ 2026-04-03 5/250 2026-04-04 08:10 by °¶ÉϵÄÒ»ÌõÓã
[¿¼ÑÐ] 320µ÷¼Á +4 ũҵ¹¤³ÌÓëÐÅÏ¢¼ 2026-04-03 4/200 2026-04-03 21:40 by lbsjt
[¿¼ÑÐ] 286Çóµ÷¼Á +8 lim0922 2026-04-02 8/400 2026-04-03 20:19 by rzh123456
[¿¼ÑÐ] 085501Ò»Ö¾Ô¸Ì칤´ó£¬»úеר˶Çóµ÷¼Á£¬¿ç²ÄÁÏ +3 33ÉÏ 2026-04-03 3/150 2026-04-03 14:08 by 1753564080
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉÂÎ÷ʦ·¶´óѧÉúÎïѧ317·Ö +5 1563ÈÕ¡£ 2026-04-02 5/250 2026-04-03 06:58 by ilovexiaobin
[¿¼ÑÐ] 346Çóµ÷¼Á +5 Ö£³ÏÀÖ 2026-04-02 5/250 2026-04-02 16:38 by SZW_UJN
[¿¼ÑÐ] ʳƷѧ˶362Çóµ÷¼Á +3 xuanxianxian 2026-04-01 3/150 2026-04-01 21:05 by °¡Àî999
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û