\documentclass[letterpaper,english]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{Beowulf ÖÐÎÄHOWTO }
\author{Jacek Radajewski and Douglas Eadline }
\date{v1.1.1, 22 November 1998}
\abstract{Õâ·ÝÎÄ¼þ½éÉÜBeowulf³¬¼¶µçÄÔ¼Ü¹¹ºÍ¶Ô×«Ð´Æ½ÐÐ³ÌÊ½Ìá¹©Ò»Ð©±³¾°ÖªÊ¶£¬²¢°üÀ¨Ò»Ð©ÓÐÈ¤µÄÎÄ¼þºÍÍøÕ¾Á¬½Ó¡£}


\begin{document}
\maketitle
\tableofcontents

\section{Ç°ÑÔ}


\subsection{ÉùÃ÷}

ÎÒÃÇ½«²»¶Ô±¾ÎÄ¼þÖÐ²»ÕýÈ·µÄ×ÊÑ¶£¬»òÕßµ±Ê¹ÓÃááÔì³ÉµÄËðÊ§¸ºÔð¡£






\subsection{°æÈ¨}

Õâ·ÝÎÄ¼þµÄ°æÈ¨Copyright \copyright{} 1997 - 1998Êôì¶Jacek RadajewskiºÍCouglas Eadline¡£²¢ÔÚGNU General Public LicenceÔÊÐíÏÂÉ¢²¼ºÍÐÞ¸Ä±¾ÎÄ¼þ¡£




\subsection{ÓÐ¹ØÕâ·ÝHOWTO}

Jacek RadajewskiÔÚ1997ÄêÊ®Ò»ÔÂ¿ªÊ¼±àÐ´Õâ·ÝÎÄ¼þ£¬ºÜ¿ìµØDouglas EadlineÒ²¼ÓÈëÐÐÁÐ£¬¼¸¸öÔÂááBeowulf HOWTO±ä³É³¤ÆªµÄÎÄ¼þ£¬²¢ÔÚ1998Äê°ËÔÂ·Ö³ÉÈý·Ý£¬Beowulf HOWTO¡¢Beowulf ¼Ü¹¹Éè¼ÆHOWTO ºÍBeowulf°²×°¹ÜÀí HOWTO¡£1998ÄêÊ®Ò»ÔÂÊ®Ò»ÈÕBeowulf HOWTO 1.0.0°æ±¾ÔÚLinux ÎÄ¼þ¼Æ»­ÉÏ·¢²¼£¬ÎÒÃÇÏ£ÍûÕâÖ»ÊÇÍêÕûµÄBeowulf ÎÄ¼þ¼Æ»­µÄµÚÒ»²½¡£




\subsection{ÓÐ¹ØÕâÐ©×÷Õß}

\begin{itemize}
\item Jacek Radajewski Íø¹ÜÈËÔ±£¬ÏÖÕýÔÚ°ÄÖÞÄÏÀ¥Ê¿À¼´óÑ§¹¥¶ÁµçÄÔ¿ÆÑ§¡£
Jacekì¶1995ÄêµÚÒ»´Î½Ó´¥Linux¾ÍÉîÊÜÎüÒý£¬ËûÔÚ1997Äê½¨Á¢Ëû×Ô¼ºµÄµÚÒ»Ì×
BeowulfµçÄÔÈº£¬´ÓÄÇÊ±Æð¿ªÊ¼ÑÐ¾¿£¬¾­³£ÏëÕÒµ½¸üÐÂºÍ¸üºÃµÄ·½·¨¼ÜÉèÏµÍ³¡£
¡õ¿ÉÒÔÍ¸¹ýµç×ÓÓÊ¼þÓëËûÁªÏµ\onlynameurl{jacek@usq.edu.au}¡£

\item Douglas Eadline ²©Ê¿£¬Ò²ÊÇÃÀ¹úParalogic¹«Ë¾µÄ¶­ÊÂ³¤ºÍÖ÷Òª¿ÆÑ§¼Ò¡£
Ô­Ö÷ÐÞÎïÀí¼°·ÖÎö»¯Ñ§£¬1978Äê½¨Á¢¸öÈËµÚÒ»Ì¨µçÄÔÓÃÔÚ»¯Ñ§ÒÇÆ÷ÉÏ£¬
Õâ²Å¿ªÊ¼½øÈëµçÄÔµÄÁìÓò£¬Eadline²©Ê¿ÏÖÔÚÐËÈ¤°üÀ¨Linux£¬BeowulfµçÄÔÈººÍ
Æ½ÐÐalgorithms£¬¡õ¿ÉÒÔÍ¸¹ýµç×ÓÓÊ¼þÓëËûÁªÏµ\onlynameurl{deadline@plogic.com}

\end{itemize}





\subsection{´ðÐ»}

¾­¹ý³¤Ê±ÆÚµÄ×«Ð´£¬×îááÖÕì¶Íê³É£¬ÌØ±ð¸ÐÐ»ÒÔÏÂÅóÓÑ¶Ô±¾ÎÄ¼þµÄ°ïÃ¦ºÍ¹±Ï×¡£

\begin{itemize}
\item  Becky µÄ°®¡¢Ö§³ÖºÍÁÂ½â¡£
\item  Tom Sterling, Don Becker, ºÍÔÚNASA ²ÎÓëBeowulf¼Æ»­µÄÅóÓÑ¡£
\item  Thanh Tran-Cong ºÍ¼ÜÉè{\itshape topcat\/} Beowulf »úÆ÷µÄ»úÐµÁ¿²âµÄ½ÌÖ°Ô±¡£
\item  Ìá¹©Ðí¶à½¨ÒéµÄÖ¸µ¼ÀÏÊ¦Christopher Vance¡£
\item  ÎÒµÄÅóÓÑ Russell Waldron Ìá¹©³ÌÊ½·½ÃæµÄµã×ÓºÍËûÈÈÐÄµÄ²ÎÓë¼°Ö§³Ö¡£
\item  ÎÒµÄÅóÓÑ David Smith µÄÐ£¸å¡£
\item  Ðí¶àÔÚBeowulf mailing listÉÏµÄÅóÓÑÌá¹©µÄ·´Ó¦¼°½¨Òé¡£
\item  ËùÓÐ¸ºÔðLinux×÷ÒµÏµÍ³ºÍÔÚ{\itshape topcat\/}¼°ÆäËûBeowulf»úÆ÷ÉÏÊ¹ÓÃÈíÌåÌ×¼þµÄÅóÓÑ¡£
\end{itemize}





\section{¼ò½é}



µ±ÈÝÒ×È¡µÃµÄµçÄÔºÍÍøÂ·Ó²ÌåµÄÐ§ÄÜÌáÉý£¬²¢ÇÒ¼Û¸ñ²»¶Ï»¬Âä£¬ÀûÓÃÕâÐ©ÊÐÃæ··ÊÛµÄµçÄÔ×é×°³ÉÆ½ÐÐµçÄÔ¾Í±äµÃ·Ç³£¿ÉÐÐ£¬¶ø²»ÐèÒª»¨Ç®ÔÚ¼Û¸ñ¸ß°ºµÄ³¬¼¶µçÄÔÉÏ¡£ÊÂÊµÉÏBeowulfµçÄÔµÄ¼Û¸ñÐ§ÄÜ±ÈÊÇ´«Í³³¬¼¶µçÄÔµÄÈý±¶µ½Ê®±¶£¬Beowulf¼Ü¹¹ÔÚscaleÉÏÒ²²»´í£¬ËüºÜÈÝÒ×½¨ÖÃ£¬ÄãÖ»Ðè¸ºµ£Ó²ÌåÉè±¸µÄ·ÑÓÃ£¬¶ø²»Ðë¸ºµ£ÈíÌåµÄ·ÑÓÃ¡£




\subsection{Ë­ÐèÒªÔÄ¶ÁÕâ·ÝHOWTO£¿}

Õâ·ÝHOWTOÊÇÉè¼Æ¸ø¶ÔLinux×÷ÒµÏµÍ³ÓÐÐ©ÈÏÊ¶µÄÈË£¬¶Ôì¶Beowulf¼¼Êõ¡¢×÷ÒµÏµÍ³ÓÐÉîÈëµÄÈÏÊ¶ºÍÍøÂ·¸ÅÄîµÄÁË½â¶¼²»ÊÇ±ØÐèµÄ£¬µ«ÊÇ¶ÔÆ½ÐÐ¼ÆËãÓÐÐ©¾­ÑéÊÇ¾ø¶ÔÓÐºÃ´¦µÄ£¨±Ï¾¹Äã×ÜÐèÒªÐ©½å¿ÚÔÄ¶ÁÕâ·ÝÎÄ¼þ£©¡£Õâ·ÝHOWTOÎÄ¼þÎÞ·¨»Ø´ðBeowulfÏà¹ØµÄËùÓÐÎÊÌâ£¬µ«ÊÇÏ£ÍûÄÜÌá¹©Ò»Ð©Ïë·¨£¬²¢ÇÒÁìµ¼Äã×ßÏòÕýÈ·µÄ·½Ïò£¬Õâ·ÝÎÄ¼þµÄÄ¿µÄÊÇÌá¹©Ïà¹ØµÄ±³¾°ÖªÊ¶£¬ºÍÒ»Ð©¸üÉîÈëµÄ²Î¿¼ÎÄ¼þ¡£




\subsection{Ê²÷áÊÇBeowulf£¿}

{\itshape Famed was this Beowulf: 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.\/} 
BeowulfÊÇÓÃÓ¢ÎÄÊéÐ´µÄ×îÔçÊ·Ê«£¬ÃèÊöÒ»¸öÓµÓÐÉñÁ¦ºÍÓÂÆøµÄÓ¢ÐÛÈËÎï¡õ±±Å·Îä·ò£¬ºÍËûÁ¦Õ½¹ÖÊÞGrendelµÄ¹ÊÊÂ£¬  ²Î¼û\ref{history} {(History)} ¿ÉÒÔÕÒµ½¸ü¶àÓÐ¹Ø±±Å·Îä·òµÄÊÂ¼£¡£

BeowulfµÄ¶¨Òå¿ÉÄÜºÍ½¨ÔìÕß»òBeowulf³¬¼¶µçÄÔÊ¹ÓÃÕßÒ»Ñù¶à£¬ÓÐÐ©Ðû³ÆÎ¨ÓÐºÍNASAÔ­ÐÍ»úÏàÍ¬²Å³ÆÎªBeowulf£¬Ò²ÓÐÈËÈÏÎªÖ»ÒªÔÚÒ»Èº¹¤×÷Õ¾ÉÏÖ´ÐÐÆ½ÐÐ³ÌÊ½¾Í¿ÉÒÔ³ÆÎªBeowulf¡£ÎÒ¶ÔBeowulfµÄ¶¨ÒåÊÇ½éì¶¶þÕßÖ®¼ä£¬Ö÷Òª¸ù¾ÝBeowulf
mailing listÉÏµÄÒ»Ð©ÕÅÌùÓÊ¼þ¡£



BeowulfÊÇÒ»ÖÖÓÃÀ´×÷Æ½ÐÐ¼ÆËãµÄµçÄÔÈº¼Ü¹¹£¬Í¨³£ÊÇÓÉÒ»Ì¨ËÅ·þ¶ËºÍÒ»Ì¨ÒÔÉÏÓÃ»§¶ËÍ¸¹ýÒÒÌ«ÍøÂ·»òÆäËûÍøÂ·Á¬½ÓµÄÏµÍ³£¬ËüÊÇÓÃÊÐÃæ··ÊÛµÄÓ²Ìå£¨ÏñÊÇ×°ÓÐLinuxµÄ¸öÈËµçÄÔ£©¡¢±ê×¼ÒÒÌ«ÍøÂ·¿¨ºÍ½»»»Ê½¼¯ÏßÆ÷£¬Ëü²»°üº¬ÈÎºÎÌØÊâµÄÓ²ÌåÉè±¸£¬ÊÇ¿ÉÒÔÖØÐÂÖÆÔì¡£Beowulf²¢ÇÒÊ¹ÓÃÈÝÒ×È¡µÃµÄÈíÌå£¬ÈçLinux×÷ÒµÏµÍ³¡¢PVM(Parallel
Virtual Machine)ºÍMPI(Message Passing Interface£©¡£ËÅ·þ¶Ë¿ØÖÆÕû¸öµçÄÔÈº£¬Ìá¹©ÓÃ»§¶Ëµµ°¸·þÎñ£¬Ëü²¢ÇÒÒ²ÊÇµçÄÔÈºµÄ¿ØÖÆÌ¨ºÍÍ¨Ñ¶Õ¢£¬Ìá¹©¶ÔÍâÁ¬½ÓµÄ³ö¿Ú¡£´óÐÍµÄBeowulfµçÄÔÈº¿ÉÄÜ²»Ö»Ò»Ì¨ËÅ·þ¶Ë£¬¿ÉÄÜÓÐÐ©µçÄÔÓÐÌØ¶¨ÓÃÍ¾£¬ÀýÈç¿ØÖÆÌ¨»ò¼àÊÓÕ¾£¬ÓÃ»§¶ËÔÚ´ó¶àÊýÇé¿öÏÂÊÇ²»×ö¶îÍâµÄÊÂÇé£¬¶îÍâÊÂÇé×öµÄÔ½ÉÙÔ½ºÃ¡£ÓÃ»§¶ËÊÇÓÉËÅ·þ¶Ë¹æ»®ºÍ¿ØÖÆ£¬Ö»×öËüÃÇ±»·ÖÅÉµÄ¹¤×÷¡£ÔÚÒ»¸öÎÞÓ²µúÓÃ»§¶ËµÄ¼Ü¹¹£¬ÓÃ»§¶ËÉõÖÁ²»±ØÖªµÀ¸÷×ÔµÄIPÎ»Ö·»òÃû³Æ£¬Ò»Ö±µ½ËÅ·þ¶Ë¸æÖªÎªÖ¹¡£BeowulfºÍ¹¤×÷Õ¾Èº×î´óµÄ²îÒìµãÔÚì¶Beowulf¿´ÆðÀ´±È½ÏÏñÒ»Ì¨»úÆ÷£¬¶ø²»ÊÇÐí¶àÌ¨¹¤×÷Õ¾¡£ÔÚ´ó²¿·ÖÇéÐÎÓÃ»§¶Ë²»ÐèÒª±¸ÓÐ¼üÅÌºÍÓ©Ä»£¬Ö»ÐèÒªÍ¸¹ýÔ¶¶ËµÇÈë»òÐòÁÐÊ½ÖÕ¶ËÓ©Ä»µÇÈë£¬BeowulfµÄÓÃ»§¶Ë¿ÉÊÓÎª´¦ÀíÆ÷ºÍ¼ÇÒäÌåµÄ×éºÏ£¬Ç¶ÈëÒ»¸öµçÄÔÈºÄÚ£¬¾ÍÏñ´¦ÀíÆ÷»ò¼ÇÒäÌåÄ£×é±»Ç¶ÈëÖ÷»ú°åÉÏ¡£





 Beowulf²»Êôì¶ÌØ¶¨ÈíÌåÌ×¼þ¡¢Õ¸ÐÂµÄÍøÂ·ÍØÆË»òÊÇ×îÐÂµÄºËÐÄº§¿Í£¬BeowulfÊÇÒ»Ì×´®Á¬LinuxµçÄÔ³É³¬¼¶ÐéÄâÆ½ÐÐµçÄÔµÄ¼¼Êõ£¬ËäÈ»ÓÐÐí¶àµÄÏà¹ØÈíÌåÌ×¼þ£¬ÈçÐÞ¸Ä¹ýµÄºËÐÄ¡¢PVMºÍMPI³ÌÊ½¿âÒÔ¼°¹æ»®¹¤¾ß£¨¿ÉÒÔÈÃBeowulf¼Ü¹¹¸ü¿ìËÙ¡¢±ã½ÝµØ¹æ»®ÏµÍ³£©£¬ÈÎºÎÈËÒ²¶¼¿ÉÒÔÖ»¿¿Linux±ê×¼Ì×¼þ£¬²»ÐèÒª¶îÍâµÄ¸¨Öú¾Í¿ÉÒÔ½¨Á¢Ò»Ì×±ê×¼µÄBeowulf»úÆ÷¡£¼ÙÈçÄãÓÐ¶þÌ¨ÒÑ¾­ÉÏÍøµÄLinuxµçÄÔ£¬²¢ÇÒ¿ÉÒÔÍ¸¹ýNFS¹²ÓÃ{\ttfamily /home} µµ°¸ÏµÍ³ºÍÖ´ÐÐrsh£¨remote
shells£©Ö¸Áî£¬ÕâÑùÄã¿ÉÒÔËãÊÇÓµÓÐÒ»Ì¨¼òµ¥µÄË«½ÚµãBeowulf»úÆ÷¡£






\subsection{·ÖÀà}

BeowulfÏµÍ³ÒÑ¾­ÓÉ¸÷ÖÖ²»Í¬²¿·Ý×é³É£¬ÎªÁËÐ§ÄÜµÄ¿¼Á¿£¬Ò»Ð©·ÇÉÌÆ·»¯ÖÜ±ßÉè±¸£¨Ö»ÓÉÒ»¼ÒÖÆÔìÉÌÉú²ú£©ÒÑ¾­ÎÊÊÀ£¬ÎªÁËÒ×ì¶½âËµºÍÌÖÂÛ¸÷ÖÖ²»Í¬ÀàÐÍµÄÏµÍ³£¬ÎÒÃÇÌá³öÏÂÁÐ¼òµ¥µÄ·ÖÀà·½Ê½:

µÚÒ»ÀàBEOWULF:

ÕâÀà»úÆ÷ÍêÈ«ÓÉÉÌÆ·»¯¡¢Ö±½Ó´ÓÊÐÃæÉÏ··ÊÛµÄÁã¼þËù×é³É£¬ÎÒÃÇÓÃµçÄÔ¹ºÂòÕß£¨Computer
Shopper£©ÈÏ¶¨±ê×¼À´¶¨ÒåÉÌÆ·»¯¡¢Ö±½Ó´ÓÊÐÃæÉÏ··ÊÛµÄÁã¼þ£¨µçÄÔ¹ºÂòÕßÊÇÒ»ÖÖÃ¿ÔÂ³ö°æµÄÔÓÖ¾£¬ÓÐÒ»Ó¢¡õºñ£¬ÄÚÈÝ½éÉÜ¸÷ÖÖµçÄÔÏµÍ³ºÍÁã¼þÄ¿Â¼£©£¬ÈÏ¶¨±ê×¼ÈçÏÂ:

A µÚÒ»ÀàBeowulfÊÇÒ»ÖÖ»úÆ÷£¬ËüµÄ×é³ÉÁã¼þÖÁÉÙ±ØÐëÔÚÈýÖÖ¹ú¼ÊÐÔ»òÈ«ÇòÐÔÉÌÒµÄ¿Â¼ÉÏÕÒµ½¡£

µÚÒ»ÀàÏµÍ³µÄºÃ´¦ÓÐ:
\begin{itemize}
\item  Ó²ÌåÉè±¸ÓÐºÜ¶àÀ´Ô´£¨¼Û¸ñµÍ¡¢ÈÝÒ×Î¬»¤£©
\item  ²»»áÒÀÀµÌØ¶¨Ò»¼ÒÓ²Ìå¹©Ó¦ÉÌ
\item  LinuxÖ§Ô®µÄÇý¶¯³ÌÊ½
\item  Í¨³£ÓÐÒ»±ê×¼»ù´¡£¨ÈçSCSI¡¢EthernetµÈ£©
\end{itemize}


µÚÒ»ÀàÏµÍ³µÄÈ±µãÓÐ:
\begin{itemize}
\item ÐèÒªµÚ¶þÀàÏµÍ³µÄÓ²Ìå²ÅÓÐ½ÏºÃµÄÐ§ÄÜ
\end{itemize}


µÚ¶þÀàBEOWULF

ÈÎºÎÃ»ÓÐÍ¨¹ýµçÄÔ¹ºÂòÕßÈÏ¶¨±ê×¼µÄ»úÆ÷³ÆÖ®¡£Õâ²¢²»Ò»¶¨ÊÇ¼þ»µÊÂ£¬ËüÖ»ÊÇ·ÖÀàµÄÒ»ÖÖ¡£

µÚ¶þÀàÏµÍ³µÄºÃ´¦ÓÐ:
\begin{itemize}
\item Ð§ÄÜÏàµ±µØºÃ
\end{itemize}


µÚ¶þÀàÏµÍ³µÄÈ±µãÓÐ :
\begin{itemize}
\item  Çý¶¯³ÌÊ½µÄ¹©Ó¦¾­³£¸ü»»
\item  ÒÀÀµÌØ¶¨Ò»¼ÒÓ²Ìå¹©Ó¦ÉÌ
\item  ¿ÉÄÜ±ÈµÚÒ»ÀàÏµÍ³°º¹ó
\end{itemize}


Ã»ÓÐÒ»ÖÖÀà±ð±ÈÆäËûµÄÓÅÐã£¬È«Æ¾Ê¹ÓÃÕßµÄÐèÇóºÍÔ¤Ëã£¬ÕâÖÖ·ÖÀà´¿´âÏ£ÍûÈÃ½ÓÏÂÀ´µÄÌÖÂÛ¸ü¼Ó¼òÃ÷£¬ááÍ·µÄÏµÍ³Éè¼ÆÕÂ½Ú½«»á°ïÖúÄã¾ö¶¨ÄÄÒ»ÖÖÏµÍ³×î·ûºÏÄãµÄÒªÇó¡£










\section{¼Ü¹¹¼ò½é}






\subsection{Ëü³¤Ê²÷áÑù£¿}

ÎÒÈÏÎªÃèÊöBeowulf³¬¼¶µçÄÔ¼Ü¹¹×îºÏÊÊµÄ·½·¨ÊÇ¾ÙÒ»¸öÕæÊµµÄ¡õÀý£¬²¢ÇÒÊÇ´ó¶àÊýÏµÍ³¹ÜÀíÕßËùÊìÏ¤µÄ¡£ÄÇ¾ÍÊÇÒ»¸öUNIXÖ÷»úÊµÑéÊÒ£¬ÄÚÓÐÒ»Ì¨ËÅ·þ¶ËºÍÒ»ÈºÓÃ»§¶Ë£¬¸ü¾«×¼µØËµ£¬ÎÒ»á¾ÙÎ»ÔÚÄÏÀ¥Ê¿À¼´óÑ§ÀíÑ§ÔºDEC
Alpha´óÑ§²¿¼ÆËã»úÊµÑéÊÒÎªÀý£¬ËÅ·þÆ÷±»³ÆÎª {\itshape beldin\/} ÓÃ»§¶Ë»úÆ÷·Ö±ð³ÆÎª {\itshape scilab01\/}, {\itshape scilab02\/},
{\itshape scilab03\/}, Ò»Ö±µ½ {\itshape scilab20\/}.  Ã¿Ì¨ÓÃ»§¶ËÄÚ²¿¶¼°²×°Digital
Unix 4.0×÷ÒµÏµÍ³£¬µ«ÊÇÊ¹ÓÃÕßµµ°¸¿Õ¼ä£¨{\ttfamily /home}£©ºÍ {\ttfamily /usr/local} ¶¼ÊÇÍ¸¹ýNFS£¨ÍøÂ·µµ°¸ÏµÍ³£©´ÓËÅ·þ¶ËÉÏ»ñµÃ£¬Ã¿¸öÓÃ»§¶Ë¶¼¿ÉÒÔ½øÈëËÅ·þ¶Ë£¬²¢ÇÒËùÓÐÆäËûµÄÓÃ»§¶Ë¶¼»á¼ÇÔØÔÚ
{\ttfamily /etc/hosts.equiv} µµ°¸ÄÚ£¬Òò´ËÃ¿¸öÓÃ»§¶Ë¶¼¿ÉÒÔÓÃÔ¶¶Ë²Ù×÷¿Ç£¨rsh£©¡£ËÅ·þ¶ËÒ²ÊÇÕû¸öÊµÑéÊÒµÄNISËÅ·þÆ÷£¬Òò´ËËùÓÐµÄ»úÆ÷¶¼ÓÐÏàÍ¬µÄÕÊºÅ×ÊÁÏ£¬Ä³ÈË¿ÉÒÔ×øÔÚ{\itshape scilab02\/}µÄ¿ØÖÆÌ¨Ç°µÇÈë£¬¾ÍÏñËûµÇÈëËÅ·þ¶Ë»ò{\itshape scilab15\/}.  Ò»ÑùÓÐÏàÍ¬µÄ»·¾³£¬ËùÓÐµÄÓÃ»§¶ËÓÐÏàÍ¬»·¾³µÄÔ­ÒòÔÚì¶ËùÓÐµÄ»úÆ÷¶¼°²×°ºÍ¹æ»®ÏàÍ¬µÄ×÷ÒµÏµÍ³£¬²¢ÇÒÊ¹ÓÃÕßµÄ{\ttfamily /home}
ºÍ {\ttfamily /usr/local} ÇøÓòÊµÌåÉÏ¶¼Î»ÔÚËÅ·þ¶ËÉÏ£¬¿ÉÒÔÍ¸¹ýNFS½øÈë¡£NISºÍNFS¸ü½øÒ»²½µÄ
Ñ¶Ï¢Çë²ÎÔÄ \onlynameurl{NIS} ºÍ \onlynameurl{NFS}
HOWTOs.






\subsection{ÈçºÎÓÐÐ§ÀûÓÃÆäËû½Úµã£¿}



ÏÖÔÚÎÒÃÇ¶ÔÏµÍ³¼Ü¹¹ÓÐÐ©¸ÅÄî£¬ÈÃÎÒÃÇ¿´¿´ÈçºÎÊ¹ÓÃ¼ÆËã»úÊµÑéÊÒÄÚ¿É¹©Ê¹ÓÃµÄCPU¡£ÈÎºÎÈË¿ÉÒÔµÇÈëÈÎºÎÒ»Ì¨»úÆ÷£¬²¢ÇÒÔÚÃ¿¸öÈË×Ô¼ºµÄÄ¿Â¼ÏÂÖ´ÐÐ³ÌÊ½£¬ËûÃÇÒ²¿ÉÒÔÍ¸¹ýÔ¶¶Ë²Ù×÷¿ÇÔÚÆäËûµçÄÔÉÏÆô¶¯£¨spawn£©ÏàÍ¬µÄ³ÌÊ½¡£¾ÙÀýÀ´Ëµ£¬¼ÙÉèÎÒÃÇÒª¼ÆËã1µ½10ÄÚÕûÊýÆ½·½¸ùµÄ×ÜºÍ£¬ÎÒÃÇÐ´ÁË¸ö¼òµ¥µÄ³ÌÊ½ÃûÎª {\ttfamily sigmasqrt} £¨Çë²Î¼û\ref{sigmasqrt} {(source code)}) £¬ÎªÁËµÃµ½½á¹û£¬ÎÒÃÇÖ´ÐÐÒÔÏÂµÄ²½Öè
\begin{verbatim}
[jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 10
22.468278

real    0m0.029s
user    0m0.001s
sys     0m0.024s
\end{verbatim}

{\ttfamily time} Ö¸Áî¿ÉÒÔ¸æËßÎÒÃÇÖ´ÐÐ³ÌÊ½Ëù»¨µÄÊ±¼ä£¨Êµ¼Ê¾­¹ýµÄÊ±¼ä£©£¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬Õâ¸öÀý×ÓÖ»»¨ÁËºÜ¶ÌµÄÊ±¼ä£¨0.029Ãë£©£¬¼ÙÈçÎÒÏë¼ÆËã1µ½1,000,000,000ÄÚÕûÊýµÄÆ½·½¸ù×ÜºÍ£¬ÈÃÎÒÃÇÊÔÊÔ¿´£¬ÖØÐÂ¼ÆËãËù»¨µÄÊ±¼ä

\begin{verbatim}
[jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 1000000000
21081851083600.559000

real    16m45.937s
user    16m43.527s
sys     0m0.108s
\end{verbatim}




Õâ´ÎÖ´ÐÐ³ÌÊ½Ëù»¨µÄÊ±¼ä·Ç³£¾Ã£¬Ò»¸öÃ÷ÏÔµÄÎÊÌâ¾ÍÊÇÎÒÃÇÈçºÎ¼Ó¿ìÖ´ÐÐµÄÊ±¼ä£¿ÎÒÃÇ¸ÃÈçºÎ¸Ä±äÖ´ÐÐ³ÌÊ½µÄ·½Ê½ÒÔ¼õÉÙÖ´ÐÐËù»¨µÄÊ±¼ä£¿×îÃ÷ÏÔµÄ´ð°¸¾ÍÊÇ½«Õû¸ö¹¤×÷·Ö³ÉÐí¶àÐ¡¹¤×÷£¬²¢ÇÒÍ¬Ê±ÔÚËùÓÐµÄµçÄÔÉÏÖ´ÐÐ£¬ÎÒÃÇ¿ÉÒÔ½«¼Ó·¨µÄ¹¤×÷·Ö³É¶þÊ®·Ý£¬Ã¿¸ö²¿·Ý×öÒ»¶Î¿ª¸ùºÅµÄ¹¤×÷£¬²¢¼ÓÆðÀ´£¬µ±ËùÓÐµÄ½ÚµãÍê³É¼ÆËã£¬²¢´«»ØÀ´£¬½«¶þÊ®¸öÊý¼ÓÆðÀ´¾ÍµÃµ½×îááµÄ´ð°¸¡£ÔÚÖ´ÐÐ³ÌÊ½Ö®Ç°£¬ÎÒÃÇÐèÒª×ö¸ö±êÓÐ¼ÇºÅµÄÊäËÍ¹Ü£¬¿ÉÒÔÈÃËùÓÐµÄÐÐ³ÌÐ´ÏÂËüÃÇµÄ½á¹û¡£

\begin{verbatim}
[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
\end{verbatim}


Õâ»ØÎÒÃÇ»¨ÁË´óÔ¼58.5Ãë£¬ÕâÊ±¼äÊÇ´Ó¿ªÊ¼µ½ËùÓÐµÄ½Úµã¶¼Íê³É¼ÆËã£¬²¢½«½á¹ûÐ´µ½ÊäËÍ¹Ü£¬Õâ¸öÊ±¼ä²¢²»°üÀ¨×îáá½«¶þÊ®¸öÊý¼ÓÆðÀ´£¬²»¹ýÄÇ¸öÊ±¼ä·Ç³£µØ¶Ì£¬¿ÉÒÔºöÂÔ²»¼Æ¡£ÎÒÃÇ¿ÉÒÔ¿´µ½Æ½ÐÐ¼ÆËã¿ÉÒÔÓÐÐ§µØ¸Ä½øÖ´ÐÐ³ÌÊ½£¬ÊÂÊµÉÏÕâ¸öÆ½ÐÐ¹¤×÷ÕûÕû¿ìÁËÔ¼17±¶£¬Ïà¶Ôì¶Ê¹ÓÃÁË¶þÊ®±¶CPUÊýÄ¿£¬Ð§ÄÜÊÇÏàµ±ºÏÀíµÄ¡£ÉÏÊö¡õÀýµÄÄ¿µÄÊÇÒªÕ¹Ê¾Í¬Ê±Æ½ÐÐ³ÌÊ½×î¼òµ¥µÄ·½·¨£¬Êµ¼Ê²Ù×÷ÉÏ£¬Èç´Ë¼òµ¥µÄ¡õÀýÊÇºÜÉÙ¼ûµÄ£¬ÆäËû¼¼ÇÉ£¨PVMºÍMPI
APIs£©¾­³£ÓÃÀ´´ï³ÉÆ½ÐÐµÄ¹¤×÷¡£






\subsection{BeowulfÈçºÎÓëCOW²»Í¬£¿}

ÉÏÊöµÄ¼ÆËã»úÊµÑéÊÒËãÊÇÒ»¸ö¹¤×÷Õ¾Èº£¨Cluster of Workstations£¬COW£©£¬ÄÇ÷áBeowulfÓÐºÎ²»Í¬£¿ËüºÍCOWÓÐºÎ²îÒì£¿Êµ¼ÊÉÏ¶þÕßÃ»¶à´ó²î±ð£¬²»¹ýBeowulfµ¹ÊÇÓÐÐ©²»Í¬µÄÌØÉ«¡£µÚÒ»¡¢´ó¶àÊýµÄBeowulfÈºµÄÓÃ»§¶ËÃ»ÓÐ¼üÅÌ¡¢»¬Êó¡¢ÏÔÊ¾¿¨ºÍÓ©Ä»£¬ËùÓÐµ½ÓÃ»§¶ËµÄ·½Ê½¶¼ÊÇ´ÓËÅ·þ¶Ë¡¢ÌØ¶¨¿ØÖÆ¶Ë»òÊÇÐòÁÐ¿ØÖÆ¶Ë¾­¹ýÔ¶¶ËÁ¬½ÓµÇÈë£¬ÒòÎª¶ÔÓÃ»§¶Ë¶øÑÔ£¬´ÓµçÄÔÈºÍâµÇÈëµçÄÔ»òÊÇ´ÓÍâÍ·µÄµçÄÔÖ±½ÓµÇÈëÓÃ»§¶ËÊÇÃ»ÓÐ±ØÒªµÄ£¬ÓÃ»§¶ËÍ¨³£ÊÇÊ¹ÓÃË½ÓÐµÄIPÎ»Ö·£¬ÀýÈç´Ó10.0.0.0µ½10.0.0.8»òÊÇ192.168.0.0µ½192.168.0.16£¨²Î¼ûRFC 1918 \onlynameurl{http://www.alternic.net/rfcs/1900/rfc1918.txt.html}).  Í¨³£Î¨Ò»ÒªÓÃµ½µÚ¶þÕÅÍøÂ·¿¨¶ÔÍâÁ¬½ÓµÄ»úÆ÷ÊÇËÅ·þ¶Ë£¬Ê¹ÓÃÕâÌ×µçÄÔÈº×î³£¼ûµÄ·½·¨ÊÇÖ±½Ó½øÈëËÅ·þ¶Ë£¬»òÊÇ´Ó¸öÈË¹¤×÷Õ¾Ê¹ÓÃtelnet»òÔ¶¶ËµÇÈëËÅ·þ¶Ë¡£Ò»µ«½øÈëËÅ·þ¶Ë£¬Ê¹ÓÃÕß¿ÉÒÔ±à¼­ºÍ±àÒëËûÃÇµÄ³ÌÊ½£¬Ò²¿ÉÒÔÔÚµçÄÔÈºÄÚµÄÓÃ»§¶ËÉÏÆô¶¯ÐÐ³Ì¡£´ó¶àÊýÇéÐÎµÄCOWÊÇÔÚÍíÉÏÓÃÀ´Ö´ÐÐÆ½ÐÐ¼ÆËã£¬ºÍÔÚÈËÃÇ²»Ê¹ÓÃ¹¤×÷Õ¾µÄÖÜÄ©Ê±¼ä£¬Ê¹ÓÃ¡õÖÃµÄCPU¡£¶øÍ¨³£Beowulf×¨ÓÃÀ´Æ½ÐÐ¼ÆËã£¬²¢ÇÒ¶ÔÕâÐ©Æ½ÐÐ¼ÆËã×ö×î¼Ñ»¯£¬µ±ÀûÓÃÊÐÊÛµçÄÔÁã×é¼þºÍÃâ·ÑÈíÌå½¨¹¹µÄBeowulfÒ²Ìá¹©½ÏºÃµÄ¼Û¸ñÐ§ÄÜ±È£¬²¢ÇÒBeowulf¸øÈËÒ»ÖÖµ¥Ò»ÏµÍ³µÄÓ¡Ïó£¬ºÜÈÝÒ×ÈÃÊ¹ÓÃÕß½«BeowulfÈº¿´×÷ÊÇÒ»Ì¨¼ÆËãÓÃ¹¤×÷Õ¾¡£






\section{ÏµÍ³Éè¼Æ}

ÔÚ¹ºÂòÈÎºÎÓ²ÌåÉè±¸Ö®Ç°£¬Ë¼¿¼ÈçºÎÉè¼ÆÄãÒªµÄÏµÍ³ÊÇ·Ç³£ÖØÒªµÄ£¬»ù±¾ÉÏÔÚÉè¼ÆÒ»Ì×BeowulfÏµÍ³ÓÐÁ½ÏîÓ²ÌåÉè±¸µÄÒéÌâ
: Äã½«Ê¹ÓÃµÄ½Úµã»ò³ÆµçÄÔµÄ»úÐÍºÍÁ¬½Ó½ÚµãµÄ·½Ê½£¬Ö»ÓÐÒ»ÖÖÈíÌåÒéÌâ»áÓ°ÏìÄãÒªÑ¡ÔñµÄÓ²ÌåÉè±¸£¬¾ÍÊÇÍ¨Ñ¶ÓÃ³ÌÊ½¿â»ò³ÆAPI£¬¸üÏêÏ¸µÄÓ²ÌåÉè±¸ºÍÍ¨Ñ¶ÈíÌåÌÖÂÛ½«»áÔÚ±¾ÎÄ¼þááÍ·¡£

µ±Ñ¡ÔñÐÔ²»¶àµÄÊ±ºò£¬ÓÐ¼¸ÑùÖØÒªµÄÉè¼Æ¾ö¶¨±ØÐë×öµÄ£¬ÒòÎªÆ½ÐÐ¼ÆËãµÄ¿ÆÑ§£¨»ò³ÆÎªÒÕÊõ£©ÓÐºÜ¶àÖÖ·½Ê½½âÊÍ£¬ÉÔááÓÐ×÷¼ò½é£¬¼ÙÈçÄã²»Ïë¿´Ò»Ð©±³¾°×ÊÁÏ£¬¿ÉÒÔÌø¹ý±¾½Ú£¬µ«ÊÇ½¨ÒéÄãÔÚ×öÓ²ÌåÉè±¸×îááµÄ¾ö¶¨Ö®Ç°£¬×îºÃÏÈÔÄ¶Á \ref{suitability} {(¿ÉÊÊÐÔ£¨Suitability£©)} ¡£




\subsection{Æ½ÐÐ¼ÆËãµÄ±³¾°½éÉÜ}

±¾½ÚÌá¹©Ò»Ð©Æ½ÐÐ¼ÆËã¹ÛÄîµÄ»ù±¾ÖªÊ¶£¬Õâ¾ø²»ÊÇÆ½ÐÐ¼ÆËã¿ÆÑ§ºÍ¼¼ÊõµÄÏêÏ¸ÃèÊö£¬ÕâÖ»ÊÇÆ½ÐÐ¼ÆËãÖÐÓëBeowulfÉè¼ÆÕßºÍÊ¹ÓÃÕßÏà¹ØµÄÒ»Ð©¼ò½é¡£

µ±ÄãÒªÉè¼ÆºÍ½¨¹¹×Ô¼ºµÄBeowulf£¬ÏÂÁÐ¼´½«ÃèÊöµÄÐí¶àÏîÒéÌâÔÚÄã×ö¾ö¶¨µÄ¹ý³ÌÖÐ½«»á±äµÃ·Ç³£ÖØÒª£¬ÕØÒòì¶ËüµÄÁã¼þÌØÐÔ£¬Ò»¸öBeowulf³¬¼¶µçÄÔ¿É±»ÎÒÃÇËùÕÆ¿Ø£¬Ò»Ð©ÒòËØ¾ÍµÃ×ÐÏ¸¿¼Á¿£¬Ò»°ãÀ´Ëµ£¬Æ½ÐÐ¼ÆËãËùÇ£³¶µÄÒéÌâ²¢²»Ì«ÄÑÁË½â£¬µÄÈ·Èç´Ë£¬Ò»µ©ÁË½âÕâÐ©ÒéÌâ£¬¸öÈËµÄÆÚ´ý½«»áÊµ¼ù£¬³É¹¦½«¸üÈÝÒ×ÊµÏÖ¡£²»ÏñÑ­ÐòµÄÊÀ½ç£¬´¦ÀíÆ÷µÄËÙ¶ÈÊÇÎ¨Ò»×îÖØÒªµÄÒòËØ£¬ÔÚÆ½ÐÐµÄÊÀ½çÖÐ£¬´¦ÀíÆ÷ËÙ¶ÈÖ»ÊÇ¾ö¶¨Õû¸öÏµÍ³Ð§ÄÜºÍÐ§ÒæÊý¸öÒòËØÖ®Ò»¡£






\subsection{Æ½ÐÐ¼ÆËãµÄ·½·¨}

Æ½ÐÐ¼ÆËã¿É·Ö³ÉºÃ¼¸ÖÖÀàÐÍ£¬´ÓÊ¹ÓÃÕß¹Ûµã£¬¿¼ÂÇÃ¿ÖÖÀàÐÍµÄÓÅÈ±µã¶¼ºÜÖØÒª£¬½ÓÏÂÀ´µÄÕÂ½Ú³¢ÊÔÌá¹©Æ½ÐÐ¼ÆËã·½·¨µÄ¹Ûµã£¬²¢Ö¸³öBeowulf»úÆ÷ÊÇÊôì¶ÄÄÖÖ¡£




\subsubsection{ÎªÊ²÷áÒªÒ»¿ÅÒÔÉÏµÄ´¦ÀíÆ÷?}

»Ø´ðÕâ¸öÎÊÌâÊÇºÜÖØÒªµÄ£¬ÓÃ°Ë¿ÅCPUÅÜÎÄÊé´¦ÀíÈíÌåÌýÆðÀ´ËÆºõÓÐµãÉ±¼¦ÓÃÅ£µ¶¡õÊµ¼ÊÉÏÒ²ÊÇÕâÑù¡£ÄÇÆäËûÏñÊÇweb
server¡¢database¡¢rendering program»òÊÇproject scheduler£¿¶îÍâµÄCPU¿ÉÄÜÓÐËù°ïÖú¡£¸´ÔÓµÄÊýÖµÄ£ÄâÓÖÈçºÎ£¿Á÷Ìå¶¯Á¦Ñ§Âë»òÊÇdata
mining application£¬ÔÚÕâÐ©×´¿öÏÂ£¬¶îÍâµÄCPU¾ø¶ÔÊÇÐèÒªµÄ£¬µÄÈ·£¬¶à´¦ÀíÆ÷¿ÉÒÔÓÃÀ´½â¾ö¸ü¶àÎÊÌâ¡£

½ÓÏÂÀ´µÄÎÊÌâÍ¨³£ÊÇ¡¸ÎªÊ²÷áÎÒÐèÒª¶þ»òËÄ¿ÅCPU£¿ÎÒ¿ÉÒÔµÈ¼«ËÙµÄ986³öÏÖ¡£¡¹£¬ÓÐÏÂÁÐ¼¸¸öÔ­Òò¿ÉÒÔ»Ø´ðÕâ¸öÎÊÌâ:
\begin{enumerate}
\item  ÓÉì¶Ê¹ÓÃ¶à¹¤×÷ÒµÏµÍ³£¬µçÄÔ¿ÉÒÔÍ¬Ê±×öºÜ¶àÊÂÇé£¬Ö»ÒªÓÐÒ»¿ÅÒÔÉÏµÍ¼ÛCPU¾Í¿ÉÒÔ´ïµ½×î×ÔÈ»µÄÆ½ÐÐ»¯¡£
\item  ´¦ÀíÆ÷µÄËÙ¶ÈÃ¿Ê®°Ë¸öÔÂ¾ÍÔö¼ÓÒ»±¶£¬µ«ÊÇ¼ÇÒäÌåºÍÓ²µúµÄËÙ¶ÈÄØ£¿ºÜ²»ÐÒµØ£¬ËüÃÇµÄËÙ¶ÈÔö¼ÓµØ²¢Ã»ÓÐCPU¿ì£¬ÎÒÃÇ±ØÐë¼ÇµÃ£¬´ó¶àÊýµÄÓ¦ÓÃÈíÌå¶¼ÀûÓÃµ½cacheÒÔÍâµÄ¼ÇÒäÌåºÍÓ²µú£¬Æ½ÐÐ»¯ÊÇ¿ÉÒÔ°ÚÍÑÕâÐ©ÏÞÖÆµÄÒ»ÖÖ·½·¨¡£
\item  Ô¤¼ÆÔÚ2005ÄêÖ®áá£¬´¦ÀíÆ÷µÄËÙ¶È½«²»»áÔÙÃ¿Ê®°Ë¸öÔÂ¾ÍÔö¼ÓÒ»±¶£¬Òª´ïµ½ÕâÖÖÔø¼ÓËÙ¶ÈµÄÇ÷ÊÆ£¬ÖÐ¼ä»¹ÓÐÐí¶àÕÏ°­¡£
\item  Æ½ÐÐ¼ÆËã¿ÉÒÔÓÐ2±¶µ½500±¶ËÙ¶ÈµÄÌáÉý£¨ÓÐÊ±¸ü¿ì£©£¬ÕâÈ«¿´Ö´ÐÐµÄÓ¦ÓÃ³ÌÊ½¡£ÕâÖÖÌáÉýÊÇÎÞ·¨µ¥¿¿µ¥Ò»´¦ÀíÆ÷£¬¼´Ê¹ÊÇÔø¾­Ò»¶ÈÊ¹ÓÃÌØ±ðÉè¼Æ³¬¿ì´¦ÀíÆ÷µÄ³¬¼¶µçÄÔ£¬Èç½ñÒ²ÊÇÓÃ¶à¿ÅÊÐÊÛÇÒËæÊÖÈ¡µÃµÄCPUËù×é³É¡£
\end{enumerate}


¼ÙÈçÄãÒòÎªÓöµ½¼ÆËãÏÞÖÆ£¨computer bound£©»òÊÇÊä³ö¡õÊäÈëÏÞÖÆ£¨I/O bound£©¶øÐèÒªËÙ¶È£¬Æ½ÐÐÊÇÖµµÃ¿¼ÂÇµÄ·½·¨£¬ÒòÎªÆ½ÐÐ¼ÆËã¿ÉÒÔÓÐºÜ¶à·½Ê½£¬Æ½ÐÐµØ½â¾öÄãµÄÎÊÌâ½«ÒªË¼¿¼Ðí¶àÖØÒªµÄ¾ñÔñ£¬ÕâÐ©¾ñÔñ»áÑÏÖØÓ°ÏìÓ¦ÓÃ³ÌÊ½µÄ¿ÉÐ¯ÐÔ¡¢Ð§ÄÜºÍÄãËù»¨µÄÊ±¼ä¡¢¾«ÉñÒÔ¼°½ðÇ®¡£

ÔÚÎÒÃÇÁË½âÆ½ÐÐ¼ÆËãµÄ¼¼ÊõÖ®Ç°£¬ÈÃÎÒÃÇÏÈ¿´¿´ÊìÏ¤µÄÕæÕýÆ½ÐÐ¼ÆËãÎÊÌâµÄÊµÀý¡õÔÚµêÃÅÇ°´óÅÅ³¤Áú¡£ 




\subsubsection{Æ½ÐÐ¼ÆËãµÄÉÌµê}

ÏëÏë¿´Ò»¸ö¹ñÌ¨Ç°ÓÐ°ËÌ¨Í¬Ê±Ê¹ÓÃÊÕÒø»úµÄ´óÐÍÉÌµê£¬¼ÙÉèÃ¿¸öÊÕÒø»ú¾ÍÊÇÒ»¿ÅCPU£¬Ã¿¸ö¿ÍÈË¾ÍÊÇÒ»¸öµçÄÔ³ÌÊ½£¬µçÄÔ³ÌÊ½µÄ´óÐ¡£¨¹¤×÷µÄ¶à¹Ñ£©¾ÍÊÇÃ¿¸ö¿ÍÈËÑ¡µãµÄ¶àÉÙ£¬½ÓÏÂÀ´Ëù×÷Àà±ÈµÄ·½Ê½¾ÍÊÇÒªËµÃ÷Æ½ÐÐ¼ÆËãµÄ¹ÛÄî¡£




\paragraph{µ¥¹¤×÷ÒµÏµÍ³}

Ö»ÓÐÒ»Ì¨ÊÕÒøÌ¨´ò¿ª£¬Ò»´ÎÖ»ÄÜ´¦ÀíÒ»¸ö¿ÍÈË¡£

¡õÀý : MS DOS




\paragraph{¶à¹¤×÷ÒµÏµÍ³}

Ö»ÓÐÒ»Ì¨ÊÕÒø»ú´ò¿ª£¬µ«ÊÇÏÖÔÚÒ»´Î´¦ÀíÒ»¸ö¿ÍÈËÑ¡µãµÄÒ»²¿·Ý£¬È»ááÒÆµ½ÏÂ¸ö¿ÍÈË£¬´¦ÀíËûÑ¡µãµÄÒ»²¿·Ý£¬Ã¿¸öÈËËÆºõÍ¬Ê±¶¼ÓÐÔÚÒÆ¶¯£¬¼ÙÈçÃ»ÓÐÆäËûÈËÔÚÅÅ¶Ó£¬ºÜ¿ì¾Í»áÂÖµ½Äã¡£

¡õÀý : UNIX£¬Ê¹ÓÃµ¥Ò»CPUµÄNT¡£




\paragraph{¶à¿ÅCPUÇÒ¶à¹¤×÷ÒµÏµÍ³}

ÏÖÔÚÎÒÃÇ½«ÆäËûµÄÊÕÒø»ú´ò¿ª£¬Ã¿¸ö¿ÍÈË¶¼ÓÐÒ»Ì¨ÊÕÒø»ú·þÎñ£¬ÕâÊ±ÅÅ¶ÓµÄ¶ÓÎéÒÆ¶¯µØºÜ¿ì£¬Õâ³ÆÎªSMP¡õ¶Ô³ÆÊ½¶àÐÐ³Ì¡£ËäÈ»ÓÐ¶îÍâµÄÊÕÒø»ú´ò¿ª£¬µ«ÊÇ¾ø¿ì²»¹ýÖ»ÓÐÒ»Ì¨ÊÕÒø»úºÍÒ»¸ö¿ÍÈË¡£ 

¡õÀý : UNIX£¬Ê¹ÓÃ¶àCPUµÄNT






\paragraph{¶à¹¤¶àCPUµÄÐ÷£¨thread£©}

¼ÙÈç½«ÄãÑ¡µãµÄÏîÄ¿²ð¿ªÀ´£¬¶àÌ¨ÊÕÒø»úÍ¬Ê±Ê¹ÓÃ¼ÇÕÊ£¬Äã¾Í¿ÉÒÔ¸ü¿ìÒ»µã¡£Ê×ÏÈÎÒÃÇµÃ¼ÙÉèÄãÂòÁËºÜ¶à¶«Î÷£¬ÒòÎªÄã»¨ÔÚ²ð¿ªÏîÄ¿µÄÊ±¼ä±ØÐëÓÉ¶àÌ¨ÊÕÒø»ú²¹³¥»ØÀ´£¬ÀíÂÛÉÏ£¬Äã¿ÉÒÔ±ÈÒÔÇ°¿ìN±¶£¬NÊÇÊÕÒø»úµÄÌ¨Êý¡£µ±ÊÕÒøÔ±ÐèÒªµÃµ½ÆäËû²¿·ÝµÄÐ¡¼ÆÊ±£¬ËûÃÇ¿ÉÒÔÍ¸¹ý½»Ì¸»ò¹ÛÍûÆäËûÊÕÒø»ú£¬ºÜ¿ìµØ½»»»ËûÃÇËùÐèÒªµÄ×ÊÑ¶£¬ËûÃÇÉõÖÁ¿ÉÒÔ´òÌ½ÆäËûµÄÊÕÒø»ú£¬ÕÒÑ°ÐèÒªµÄ×ÊÁÏ£¬Ê¹µÃ¹¤×÷¸ü¿ìÐ©¡£ÎÞÂÛÈçºÎ¶¼»¹ÊÇÓÐÐ©ÏÞÖÆ£¬Ò²¾ÍÊÇÕâ¼ÒµêÔÚ¸÷¸öµØ·½¿ÉÒÔÓÐÐ§µØ·ÅÖÃ¶àÉÙÌ¨ÊÕÒø»ú¡£

Amdals¶¨ÂÉÒ²Ê¹Ó¦ÓÃ³ÌÊ½Ôö¿ìµÄËÙ¶È½«ÊÜÏÞÔÚÑ­Ðò³ÌÊ½ÖÐ×îÂýµÄ²¿·Ý¡£ 

¡õÀý £ºNUIX»òÊÇÔÚÏàÍ¬Ö÷»ú°åÉÏµÄ¶àCPUµÄNT²¢¿ÉÒÔÖ´ÐÐ¶àÐ÷£¨multi-threaded£©³ÌÊ½¡£






\paragraph{ÔÚ¶à¹¤×÷ÒµÏµÍ³ÉÏÏòÆäËûCPU´«µÝÑ¶Ï¢}

ÎªÁË¸ÄÉÆÐ§ÄÜ£¬µê¼ÒÔÚááÍ·ÓÖÔö¼ÓÁË°ËÌ¨ÊÕÒø»ú£¬ÒòÎªÐÂµÄÕÊµ¥ÀëÇ°·½¹ñÌ¨ºÜÔ¶£¬ÊÕÒøÔ±±ØÐëÓÃµç»°½«Ð¡¼Æ¸æËßÇ°·½¹ñÌ¨£¬³ýÁË´«µÝÍâ£¬»¹¼ÓÉÏ¶îÍâÊ±¼äµÄ¸ºµ££¬µ«ÊÇ¼ÙÈç´«µÝÊ±¼äºÜ¶Ì£¬Ëü½«²»»áÔì³ÉÎÊÌâ¡£¼ÙÈç¡õÒªÂòµÄ¶«Î÷ºÜ¶à£¬ÐèÒªËùÓÐµÄÊÕÒø»ú£¬ÕâÊ±ÔÚÊ¹ÓÃËùÓÐÊÕÒø»úÀ´¸Ä½øÊÕÕÊµÄËÙ¶ÈÖ®Ç°£¬¶îÍâµÄÊ±¼ä¸ºµ£ÈÔÐë¿¼ÂÇ½øÈ¥¡£ÓÐÊ±ºò£¬Ä³Ð©ÉÌµêÔÚ¸÷¸ö½ÇÂäÖ»µ¥¶À·ÅÖÃÒ»Ì¨ÊÕÒø»ú£¬Ã¿¸öÊÕÒø»ú¾ÍÖ»ÄÜÍ¸¹ýµç»°ÁªÏµ£¬ÕâÊ±ËüÃÇËùÔÚµÄÎ»ÖÃ¾Í²»ÖØÒªÁË¡£

¡õÀý£º¶àÌ¨UNIX»ò¶àCPUµÄNT£¬¿ÉÄÜÔÚÍ¬Ò»ÕÅÖ÷»ú°å»òÐí¶àÖ÷»ú°åÉÏ£¬±Ë´ËÄÜÏà»¥ÁªÏµ¡£

ÉÏÊöËµÃ÷ËäÈ»²»¹»¾«×¼£¬µ«¶ÔÆ½ÐÐÏµÍ³µÄÏÞÖÆÀ´Ëµ£¬ËãÊÇ²»´íµÄÃèÊö£¬²»Ïñµ¥Ò»CPUµÄ´«µÝÈÔÊÇ¸öÒéÌâ¡£




\subsection{Æ½ÐÐ¼ÆËãµÄ¼Ü¹¹}

Æ½ÐÐ¼ÆËãµÄ·½·¨ºÍ¼Ü¹¹½«ÔÚÏÂ½Ú½éÉÜ£¬ËäÈ»ÃèÊö½«»áºÜ¹ã·º£¬µ«ÊÇÒ²×ãÒÔÁË½âBeowulfÉè¼ÆµÄÒ»Ð©Ïà¹ØÒéÌâ¡£ 




\subsubsection{Ó²Ìå¼Ü¹¹}



ÔÚÓ²ÌåÉÏÓÐ¶þÖÖ»ù±¾µÄÆ½ÐÐµçÄÔ£º

\begin{enumerate}
\item  ×ÔÓÐ¼ÇÒäÌå»úÆ÷£¬Ö®¼ä¿ÉÒÔ½»»»×ÊÑ¶£¨Beowulf µçÄÔÈº£©¡£
\item  ¹²Ïí¼ÇÒäÌå»úÆ÷£¬Í¸¹ý¼ÇÒäÌå´«µÝ×ÊÁÏ£¨SMP»úÆ÷£©¡£
\end{enumerate}


µäÐÍµÄBeowulfÊÇÓÉÒ»Èºµ¥CPU»úÆ÷×é³É£¬Í¸¹ý¸ßËÙÒÒÌ«ÍøÂ·Á¬½Ó£¬ËùÒÔ³ÆÎª×ÔÓÐ¼ÇÒäÌå»úÆ÷¡£4
way SMPÊÇÒ»Ì¨¹²Ïí¼ÇÒäÌå»úÆ÷£¬¿ÉÓÃÀ´×÷Æ½ÐÐ¼ÆËã£¬Æ½ÐÐµÄÓ¦ÓÃÈíÌåÍ¸¹ý¹²Ïí¼ÇÒäÌå´«µÝ×ÊÁÏ¡£ÒÔµçÄÔ··ÊÛµê×ö±ÈÓ÷£¬×ÔÓÐ¼ÇÒäÌå»úÆ÷£¨µ¥¶ÀÔÝ´æÕÊµ¥£©ÔÚCPUÊýÁ¿ÉÏ¿ÉÒÔºÜ¶à£¬µ«ÊÇ¹²Ïí¼ÇÒäÌå»úÆ÷ÓÉì¶¼ÇÒäÌåµÄ¹ØÏµ£¬CPUµÄÊýÄ¿ÊÇÓÐÏÞÖÆµÄ¡£ 

µ«ÊÇÁ¬½Ó¶àÌ¨¹²Ïí¼ÇÒäÌå»úÆ÷ÊÇ¿ÉÐÐµÄ£¬ÕâÐ©»ìºÏÊ½¹²Ïí¼ÇÒäÌå»úÆ÷¶ÔÊ¹ÓÃÕß¿´ÆðÀ´¾ÍÏñÒ»Ì¨´óÐÍµÄSMP£¬¾­³£³Æ×÷æåÂí£¨NUMA£¬non
uniform memory access£¬·Ç¾ùÔÈ¼ÇÒäÌåµÇÈë£©£¬ÒòÎªÊ¹ÓÃÕß¿´µ½µÄÊÇÒ»¿é´ó¼ÇÒäÌå£¬ÓÉËùÓÐµÄCPU¹²Ïí£¬ÓÐÖø¸÷ÖÖ²»Í¬µÄÑÓ³Ù£¨latencies£©¡£ÔÚÄ³ÖÖ³Ì¶ÈÉÏ£¬æåÂí»úÆ÷ÖÐ¸÷¸ö×ÔÓÐ¹²Ïí¼ÇÒäÌåÖ®¼äÊÇ±ØÐë»¥Ïà´«µÝÑ¶Ï¢¡£

°ÑSMP»úÆ÷µ±×÷×ÔÓÐ¼ÇÒäÌåµÄ¼ÆËã½Úµã£¬²¢½«ËüÃÇÁ¬½ÓÆðÀ´ÊÇÓÐ¿ÉÄÜµÄ¡£µäÐÍµÄµÚÒ»ÀàÖ÷»ú°å¿ÉÒÔÓÐ¶þ¿Å»òËÄ¿ÅCPU£¬Ê¹ÓÃÕâÀàµçÄÔÍ¨³£¿ÉÒÔ½µµÍÕûÌåµÄ³É±¾£¬LinuxÄÚ²¿ÅÅÐò¾ö¶¨ÈçºÎ¹²ÏíÕâÐ©CPU£¬ÔÚÕâ¸ö½×¶Î£¬Ê¹ÓÃÕßÎÞ·¨Ö¸¶¨ËùÒªÖ´ÐÐµÄ¹¤×÷ÓÉÄÄ¸öCPU¸ºÔð£¬µ«ÊÇÊ¹ÓÃÕß¿ÉÒÔÍ¬Ê±Ö´ÐÐ¶þ¸ö²»Ïà¸ÉµÄÐÐ³Ì£¬»òÊÇÒ»¸öÓÐÐ÷µÄÐÐ³Ì£¨threaded processes£©£¬²¢Ï£ÍûÐ§ÄÜ±ÈÒ»¸öCPUµÄÏµÍ³ºÃ¡£




\subsubsection{ÈíÌåAPI¼Ü¹¹}

»ù±¾ÉÏÓÐ¶þÖÖ·½Ê½¿ÉÒÔÔÚ³ÌÊ½ÄÚ±íÏÖ³öÍ¬Ê±µÄÌØÐÔ£º
\begin{enumerate}
\item  ÔÚ´¦ÀíÆ÷Ö®¼äÊ¹ÓÃÑ¶Ï¢´«ËÍ¡£
\item  Ê¹ÓÃÏµÍ³µÄÐ÷
\end{enumerate}


ÈÔÓÐ±ðÖÖ·½·¨£¬µ«ÊÇÕâ¶þÖÖÊÇ×î³£ÓÃµÄ¡£ÓÐÒ»µã±ØÐë×¢Òâ£¬¾ÍÊÇÍ¬Ê±²»ÐèÒªÓÉµ×²ãµÄÓ²ÌåËù¿ØÖÆ£¬Ñ¶Ï¢ºÍÐ÷¶¼¿ÉÒÔÔÚSMP¡¢æåÂíSMPºÍµçÄÔÈºÉÏÊ¹ÓÃ£¬µ«ÈçÉÏËùÊö£¬Ð§ÄÜºÍ¿ÉÐ¯ÐÔÈÔÊÇÖØÒªµÄÒéÌâ¡£




\paragraph{Ñ¶Ï¢}

´ÓÀúÊ·µÄ¹ÛµãÀ´¿´£¬Ñ¶Ï¢´«µÝµÄ¼¼Êõ·´Ó¦³öÔçÆÚ×ÔÓÐ¼ÇÒäÌåÆ½ÐÐµçÄÔµÄÉè¼Æ¹ý³Ì£¬µ±Ð÷ÐèÒª×ÊÁÏÊ±£¬Ñ¶Ï¢±»ÒªÇóÐèÒª¿½±´£¬¿½±´Ñ¶Ï¢µÄÑÓ³ÙºÍËÙ¶È±ä³ÉÑ¶Ï¢´«µÝÄ£Ê½µÄÏÞÖÆÒòËØ¡£Ñ¶Ï¢´«µÝÆäÊµÏàµ±¼òµ¥£¬Ò»Ð©×ÊÁÏºÍ´«µÝµÄÄ¿µÄµØ£¨´¦ÀíÆ÷£©¡£Ò»°ã³£¼ûÑ¶Ï¢´«µÝµÄAPIÓÐ \onlynameurl{PVM} »ò \onlynameurl{MPI}£¬Ñ¶Ï¢´«µÝ¿ÉÒÔÔÚÒ»Ì¨SMP»úÆ÷ºÍµçÄÔÈºÉÏÓÐÐ§µØÊ¹ÓÃÐ÷ºÍÑ¶Ï¢£¬Ïà¶Ôì¶Ð÷£¬Ñ¶Ï¢´«µÝÔÚÒ»Ì¨SMPÉÏµÄºÃ´¦ÊÇ£¬Î´À´Ò»µ©¡õ¾ö¶¨ÒªÊ¹ÓÃµçÄÔÈº£¬Ö»ÐèÒªÇáÒ×µØÔö¼Ó»úÆ÷¡£




\paragraph{Ð÷}

×÷ÒµÏµÍ³Ð÷µÄ·¢Õ¹Ö÷ÒªÒòÎª¹²Ïí¼ÇÒäÌåµÄSMPÉè¼ÆÔÊÐí³ÌÊ½ÖÐÍ¬Ê±µÄ²¿·Ý¿ÉÒÔÓÐºÜ¿ìµØ¹²Ïí¼ÇÒäÌå´«µÝºÍ¼ÇÒäÌåÍ¬²½£¬Ð÷ÔÚSMPÏµÍ³Ö´ÐÐµØ²»´í£¬ÕâÊÇÒòÎª´«µÝÊÇÍ¸¹ý¹²Ïí¼ÇÒäÌå£¬ÓÉì¶Õâ¸öÔ­Òò£¬Ê¹ÓÃÕß±ØÐë½«µ±µØµÄ×ÊÁÏ´ÓÕûÌåµÄ×ÊÁÏÖÐ¶ÀÁ¢³öÀ´£¬·ñÔò³ÌÊ½½«²»ÄÜÕýÈ·µØÖ´ÐÐ¡£Ïà¶Ôì¶Ñ¶Ï¢´«µÝ£¬ÒòÎª×ÊÁÏÊÇÓÉÐÐ³ÌËù¹²Ïí£¬´óÁ¿µÄ×ÊÁÏ¿½±´¿ÉÒÔ±ÜÃâ£¬LinuxÖ§Ô®POSIXÐ÷£¬Ð÷µÄÎÊÌâÔÚì¶ºÜÄÑÀ©Õ¹µ½Ò»Ì¨SMP»úÆ÷ÒÔÍâ£¬ÕâÊÇÒòÎª×ÊÁÏÊÇÓÉCPUËù¹²Ïí£¬¿ìÉÁÒ»ÖÂÐÔµÄÒéÌâ»áÔì³É¸ºµ£¡£½«Ð÷ÓÐÐ§µØÀ©Õ¹µ½¶àÌ¨SMP»úÆ÷±ØÐëÑöÀµæåÂí¼¼Êõ£¬µ«ÊÇæåÂí·Ç³£ºÄÊ±£¬²¢ÇÒ»ù±¾µÄLinuxÊÇ²»Ö§Ô®µÄ¡£½«Ð÷½¨¹¹ÔÚÑ¶Ï¢´«µÝÖ®ÉÏ£¬Ôø¾­ÓÐÈË×ö¹ý (\onlynameurl{(http://syntron.com/ptools/ptools\_pg.htm)})£¬µ«ÊÇÐ÷ºÍÑ¶Ï¢´«µÝÔÚÒ»Æð¾Í±äµÃÐ§¹û²»¼Ñ¡£

ÒÔÏÂÊÇºÍÐ§ÄÜÓÐ¹ØµÄ×ÊÑ¶
\begin{verbatim}
          SMP»úÆ÷Ð§ÄÜ      µçÄÔÈºÐ§ÄÜ     ±ÈÀýÔö¼Ó³Ì¶È                           
          ---------------     ----------------         ----------------
Ñ¶Ï¢          ºÃ               ¼Ñ                 ¼Ñ

  Ð÷           ¼Ñ               ²»Á¼*            ²»Á¼*

* ÒªÇó°º¹óµÄæåÂí¼¼Êõ¡£
\end{verbatim}





\subsubsection{Ó¦ÓÃÈíÌå¼Ü¹¹}

ÎªÁËÔÚ¶àCPUÏÂÆ½ÐÐµØÅÜÓ¦ÓÃ³ÌÊ½£¬ÔÚÍ¬Ê±²¿·Ý±ØÐë±»·Ö¿ªÀ´£¬Ò»¸ö±ê×¼µÄµ¥CPUÓ¦ÓÃÈíÌå²»»á±ÈËüÔÚ¶à´¦ÀíÆ÷ÏÂÅÜµÄ¿ì£¬ÓÐÐ©¹¤¾ßºÍ±àÒëÆ÷¿ÉÒÔ×öÕâÖÖ¹¤×÷£¬µ«ÊÇ½«³ÌÊ½Æ½ÐÐ»¯¿É²»ÊÇ¡°Ëæ²å¼´ÓÃ¡°¡£ÕâÍêÈ«ºÍ³ÌÊ½ÓÐ¹Ø£¬ÓÐÐ©³ÌÊ½ºÜÈÝÒ×Æ½ÐÐ»¯£¬ÓÐÐ©ÊÇ¼«¶ÈÀ§ÄÑ£¬ÓÐÐ©ÇéÐÎÊÜÏÞì¶algorithmµÄÏà¹ØÐÔ¶ø¸ù±¾²»¿ÉÄÜ×öµ½Æ½ÐÐ¡£ 

ÔÚÌÖÂÛÈíÌåÒéÌâÖ®Ç°£¬ÏÈÒª½éÉÜºÏÊÊÐÔµÄ¹ÛÄî¡£




\subsection{ºÏÊÊÐÔ£¨Suitability£©\label{suitability}}

¹ØÆ½ÐÐ¼ÆËãµÄ´ó¶àÊýÎÊÌâ¶¼ÓÐÏàÍ¬µÄ´ð°¸£º

È«ºÍÓ¦ÓÃ³ÌÊ½±¾ÉíÓÐ¹Ø¡£

ÔÚÎÒÃÇ½øÈëÕâ¸öÒéÌâÖ®Ç°£¬ÓÐÒ»¸ö·Ç³£ÖØÒªµÄ²»Í¬µãÐèÒª¡õÇå¡õÍ¬Ê±£¨CONCURRENT£©ºÍÆ½ÐÐ£¨PARALLEL£©Ö®¼äµÄ²îÒìÐÔ£¬ÎªÁË·½±ãÌÖÂÛÆð¼û£¬ÎÒÃÇÏÈ¶¨ÒåÕâ¶þ¸ö¹ÛÄî£º

³ÌÊ½ÄÚÍ¬Ê±µÄ²¿·ÝÊÇÖ¸¿ÉÒÔµ¥¶À¸ö±ð¼ÆËãµÄ²¿·Ý¡£

³ÌÊ½ÄÚÆ½ÐÐµÄ²¿·ÝÊÇÖ¸ÄÇÐ©¿ÉÒÔÔÚÍ¬Ò»Ê±¼äÄÚ·Ö±ðÓÉ²»Í¬´¦ÀíÆ÷Ö´ÐÐµÄÍ¬Ê±²¿·Ý¡£

¶þÕßÏàÒìµÄµØ·½ÊÇ·Ç³£ÖØÒª£¬ÒòÎªÍ¬Ê±ÊÇ³ÌÊ½±¾ÉíµÄÌØÐÔ£¬¶øÓÐÐ§µÄÆ½ÐÐÔòÊÇ»úÆ÷µÄÌØÐÔ£¬ÀíÏë×´¿öÏÂ£¬½Ï¿ìµÄÐ§ÄÜÕØÒòì¶Æ½ÐÐÖ´ÐÐ£¬Æ½ÐÐÐ§ÄÜµÄÏÞÖÆÒòËØÔÚì¶¼ÆËã½ÚµãÖ®¼äµÄ´«µÝËÙ¶ÈºÍÑÓ³Ù£¨ÑÓ³ÙÒ²»á³öÏÖÔÚÐ÷SMPÓ¦ÓÃÈíÌå£¬Ö÷ÒªÀ´×Ôì¶¿ìÉÁ£¨cache£©µÄÒ»ÖÂÐÔ£©¡£´ó¶àÊýÍ¨ÓÃµÄÆ½ÐÐ²âÊÔÌ×¼þ¶¼ÓÐºÜ¸ßµÄÆ½ÐÐÐÔ£¬´«µÝºÍÑÓ³Ù¶¼²»ÊÇÆ¿¾±£¬ÕâÀàÎÊÌâ¿ÉÒÔ³Æ×÷¡°ÏÔ¶øÒ×¼ûµÄÆ½ÐÐ¡°£¨obviously
parallel£©£¬ÆäËûµÄÓ¦ÓÃÈíÌå¾ÍÃ»ÄÇ÷á¼òµ¥£¬Æ½ÐÐµØÖ´ÐÐ³ÌÊ½ÖÐµÄÍ¬Ê±²¿·Ý¿ÉÄÜ»áÔì³É³ÌÊ½ÅÜµÃ½ÏÂý£¬µÖÏûµôÆäËûÍ¬Ê±²¿·ÝËùµÃµ½µÄÐ§ÄÜ¡£¼òµ¥Ëµ£¬´«µÝËù»¨·ÑµÄÊ±¼ä±ØÐë´Ó¼óÊ¡µÄ¼ÆËãÊ±¼ä²¹³¥£¬·ñÔòÆ½ÐÐÖ´ÐÐÍ¬Ê±²¿·Ý»áºÜ²»¾­¼Ã¡£   

³ÌÊ½Éè¼ÆÕßµÄ¹¤×÷ÊÇÒª¾ö¶¨³ÌÊ½ÄÄÐ©Í¬Ê±µÄ²¿·ÝÓ¦¸ÃÆ½ÐÐ»¯£¬ÄÄÐ©Ôò²»Òª¡£Õâ½«»á¾ö¶¨Ó¦ÓÃ³ÌÊ½µÄÐ§ÄÜ£¬ÏÂÃæµÄÍ¼¶Ô³ÌÊ½Éè¼ÆÕß×öÁËÐ©×Ü½á¡£

\begin{verbatim}

Õ¼Ó¦ÓÃ³Ì
Ê½µÄ°Ù·Ö±È

         | *
         | *
         | *
         | *
         |  *
         |  *
         |  *
         |  *
         |    *
         |     *
         |      *
         |        ****
         |            ****
         |                ********************
         +-----------------------------------
                     ´«µÝÊ±¼ä / ¼ÆËãÊ±¼ä
\end{verbatim}


ÔÚÒ»¸öÀíÏëµÄÆ½ÐÐµçÄÔ£¬´«µÝºÍ¼ÆËã¶þÕßÏàµ±£¬ÈÎºÎÍ¬Ê±¶¼¿ÉÒÔÆ½ÐÐ»¯£¬ºÜ²»ÐÒµØ£¬ÕæÊµµÄÆ½ÐÐµçÄÔ£¨°üÀ¨¹²Ïí¼ÇÒäÌå»úÆ÷£©¶¼ÏñÉÏÍ¼ËùÊ¾¡£µ±Éè¼ÆBeowulfÊ±£¬Ê¹ÓÃÕß±ØÐëÀÎ¼ÇÕâÍ¼£¬ÒòÎª¶ÔÒ»ÌØ¶¨Æ½ÐÐµçÄÔ£¬Æ½ÐÐÐ§ÄÜ¾ö¶¨ì¶´«µÝÊ±¼äºÍ¼ÆËãÊ±¼äÖ®±È£¬Ó¦ÓÃ³ÌÊ½¿ÉÄÜ¿ÉÒÔÔÚ¸÷ÖÖÆ½ÐÐµçÄÔÉÏÖ´ÐÐ£¬µ«ÊÇ²»ÄÜ±£Ö¤Ò»¶¨»áÓÐ½Ï¼ÑµÄÐ§ÄÜ¡£

Ò»°ãÀ´Ëµ£¬Ã»ÓÐ¼È¿ÉÐ¯ÐÔÓÖÓÐÐ§ÄÜµÄÆ½ÐÐ³ÌÊ½¡£

ÉÏÍ¼»¹ÓÐÆäËûµÄÑÓÉìÒéÌâ£¬µ±Ð§ÄÜÈ¡¾öì¶´«µÝºÍ¼ÆËã±È£¬¸Ä±ä±ÈÖµÖÐµÄÄ³Ò»Ïî²»±íÊ¾Ò»¶¨¿ÉÒÔÌá¸ßÐ§ÄÜ¡£¸Ä±ä´¦ÀíÆ÷µÄËÙ¶È£¬µ«²»¸Ä±ä´«µÝµÄËÙ¶È£¬³ÌÊ½¿ÉÒÔÓÐÃ»Ö±¾õÐÔµÄÐ§¹û¡£¾ÙÀýÀ´Ëµ£¬CPUËÙ¶ÈÌáÉý¶þ±¶»òÈý±¶£¬µ«±£³Ö´«µÝËÙ¶È£¬¿ÉÄÜÊ¹¡õµÄ³ÌÊ½ÓÐ½ÏºÃµÄÆ½ÐÐÐ§¹û£¬±ÈÑ­ÐòÖ´ÐÐ¸üÓÐÐ§£¬that
is, it may now be faster to run the previousloy PARALLEL parts as SEQUENTIAL¡£¸ü½øÒ»²½£¬Æ½ÐÐµØÖ´ÐÐÃ»ÓÐÐ§ÂÊµÄ²¿·Ý£¬¿ÉÒÔÊ¹¡õµÄ³ÌÊ½ÎÞ·¨´ïµ½×î¿ìµÄËÙ¶È£¬Òò´Ë£¬½åÓÉÔö¼Ó¸ü¿ìµÄ´¦ÀíÆ÷£¬¡õ¿ÉÒÔÈÃ³ÌÊ½ÂýÏÂÀ´£¨¡õÕýÈÃÐÂµÄCPU²»ÓÃËü×î¿ìµÄËÙ¶ÈÖ´ÐÐ³ÌÊ½£©¡£

Éý¼¶µ½¸ü¿ìµÄCPU¿ÉÄÜ·´¶ø½µÂý¡õµÄ³ÌÊ½ËÙ¶È¡£

Òò´Ë£¬±ØÐëÖªµÀ¡õÊÇ·ñ¿ÉÒÔÓÃÆ½ÐÐÓ²Ìå»·¾³£¬¡õ±ØÐë¶Ô¡õµÄ³ÌÊ½ÔÚÒ»ÌØ¶¨µçÄÔÉÏµÄ¿ÉÊÊÐÔÓÐÏàµ±µÄÈÏÊ¶£¬¡õ±ØÐëÖªµÀÏàµ±¶àµÄÒéÌâ£¬°üÀ¨CPUËÙ¶È¡¢±àÒëÆ÷¡¢Ñ¶Ï¢´«µÝµÄAPI¡¢ÍøÂ·µÈµÈ¡£Çë×¢Òâ£¬Ö»ÈÏÊ¶Ó¦ÓÃ³ÌÊ½ÊÇ²»¹»µÄ£¬¡õ±ØÐëÖ¸³ö³ÌÊ½ÖÐ¼ÆËãÁ¿×îÖØµÄ²¿·Ý£¬µ«ÊÇ¡õ²»ÖªµÀÕâ¸ö²¿·ÝµÄ´«µÝ»¨·Ñ£¬¶ÔÌØ¶¨ÏµÍ³£¬ËüµÄ´«µÝËù»¨µÄÊ±¼ä¿ÉÄÜÎÞ·¨ÈÃ³ÌÊ½ÎÞ·¨ÓÐÐ§µØÆ½ÐÐ»¯¡£

   
×îááÒªËµÒ»Ð©³£·¢ÉúµÄ´íÎó¹ÛÄî£¬ÎÒÃÇ¾­³£Ëµ£ºÒ»¸ö³ÌÊ½±»Æ½ÐÐ»¯£¬µ«ÊÇÕæÊµµÄÇéÐÎÊÇ³ÌÊ½µÄÍ¬Ê±²¿·Ý²Å±»Æ½ÐÐ»¯£¬´ÓÒÔÉÏµÄËµÃ÷£¬Ò»¸ö³ÌÊ½²¢Ã»ÓÐÆ½ÐÐ»¯£¬Æ½ÐÐ»¯µÄÐ§ÒæÊÇ»úÆ÷µÄÌØÐÔ¡£  






\subsection{×«Ð´ºÍÒÆÖ²Æ½ÐÐÈíÌå}

Ò»µ©¡õ¾ö¶¨ÐèÒªÆ½ÐÐ¼ÆËã£¬²¢ÇÒÏëÒªÉè¼ÆºÍ¼ÜÉèÒ»Ì×Beowulf£¬¸ù¾ÝÉÏÊöµÄÌÖÂÛÀ´Ë¼¿¼Ò»Ð©ºÍ¡õµÄÓ¦ÓÃ³ÌÊ½ÓÐ¹ØµÄ½¨Òé½«ÊÇ¸öºÜºÃµÄÖ÷Òâ¡£ 

Ò»°ã¶øÑÔ£¬ÓÐÁ½¼þÊÂ¡õÄÜ¹»×öµÄ£º
\begin{enumerate}
\item Ö±½Ó¼ÜÉèµÚÒ»ÀàBeowulf£¬È»ááÏë°ì·¨ÈÃ¡õµÄÓ¦ÓÃ³ÌÊ½À´ÊÊÓ¦ÕâÌ×ÏµÍ³£¬»òÕßÔÚBeowulfÉÏÖ±½ÓÅÜÒ»¸öÏÖ³ÉµÄÆ½ÐÐÓ¦ÓÃ³ÌÊ½£¨±ØÐë×¢ÒâÉÏÊöËùÌáµÄ¿ÉÐ¯ÐÔºÍÐ§ÄÜµÄÒéÌâ£©¡£
\item ÏÈË¼¿¼Ò»ÏÂ¡õ½«ÒªÔÚ¡õµÄBeowulfÉÏÅÜµÄÓ¦ÓÃ³ÌÊ½£¬È»áá¹À¼ÆºÎÖÖÀàÐÍµÄÓ²ÌåºÍÈíÌåÊÇ¡õËùÐèÒªµÄ¡£
\end{enumerate}


Á½ÖÖÇéÐÎ¡õ¶¼Òª¿¼ÂÇÐ§ÄÜµÄÒéÌâ£¬Ò»°ã¶øÑÔ£¬ÓÐÈý¼þÊÂ¡õÐèÒª×ö£º
\begin{enumerate}
\item  ¾ö¶¨¡õµÄ³ÌÊ½ÖÐµÄÍ¬Ê±²¿·Ý¡£
\item  ¹À¼ÆÆ½ÐÐÐ§ÄÜ¡£
\item  ÃèÊö³ö³ÌÊ½ÖÐµÄÍ¬Ê±²¿·Ý¡£
\end{enumerate}


ÈÃÎÒÃÇÒ»Ò»ÏêÊö¡£




\subsubsection{¾ö¶¨¡õµÄ³ÌÊ½ÖÐµÄÍ¬Ê±²¿·Ý}

Õâ¸ö²½ÖèÍ¨³£ÊÇÒª¿¼ÂÇ½«¡õµÄ³ÌÊ½Æ½ÐÐ»¯£¬ÈçºÎÆ½ÐÐ»¯½«ÔÚµÚ¶þ¸ö²½Öè£¬ÏÖÔÚ¡õÒª¾ö¶¨×ÊÁÏµÄ¹ØÁ¬ÐÔ¡£

{$>$}´ÓÊµ¼Ê²Ù×÷µÄ½Ç¶ÈÀ´¿´£¬Ó¦ÓÃ³ÌÊ½¿ÉÄÜÓÐ¶þÖÖÐÎÌ¬µÄÍ¬Ê±ÐÔ£º¼ÆËã£¨Êý×ÖµÄ¼ÆËã£©ºÍI/O£¨×ÊÁÏ¿â£©¡£ËäÈ»´ó²¿·ÖÇéÐÎ£¬¼ÆËãºÍI/OÍ¬Ê±ÐÔÊÇÏà»¥Õý½»µÄ£¨orthogonal£©£¬µ«ÊÇÓÐÐ©³ÌÊ½ÊÇÁ½Õß¶¼ÐèÒª£¬ÓÐÐ©¹¤¾ß³ÌÊ½¿ÉÒÔ¶ÔÏÖÓÐµÄ³ÌÊ½×öÍ¬Ê±ÐÔµÄ·ÖÎö£¬ÕâÐ©¹¤¾ß´ó²¿·ÖÊÇÎªFortran³ÌÊ½ÓïÑÔÉè¼ÆµÄ£¬Ê¹ÓÃFortranÓïÑÔÓÐÁ½ÖÖÀíÓÉ£ººÜÔçÒÔÀ´£¬´ó²¿·ÖµÄÊý×Ö¼ÆËã³ÌÊ½ÊÇÓÃFortranÓïÑÔÐ´µÄ£¬ÁíÍâFortranÊÇºÜÈÝÒ×·ÖÎöµÄ¡£¼ÙÈçÃ»ÓÐ¿ÉÀûÓÃµÄ¹¤¾ß£¬Õâ¸ö²½Öè¶ÔÏÖ´æµÄÓ¦ÓÃ³ÌÊ½½«ÊÇ·Ç³£À§ÄÑ¡£




\subsubsection{¹À¼ÆÆ½ÐÐÐ§ÄÜ}

Ã»ÓÐ¹¤¾ß³ÌÊ½µÄ°ïÖú£¬Õâ¸ö²½Öè½«ÐèÒª²»¶ÏµØ³¢ÊÔ´íÎó£¬»òÊÇ¸ù¾Ý¾ÉÓÐ¾­ÑéÀ´²Â²â¡£¼ÙÈç¡õÐÄÄ¿ÖÐÒÑ¾­ÓÐÌØ¶¨µÄÓ¦ÓÃ³ÌÊ½£¬ÏëÒª¾ö¶¨Õâ¸öÓ¦ÓÃ³ÌÊ½ÊÇCPUÏÞÖÆ£¨¼ÆËãÏÞÖÆ£©£¬»¹ÊÇÓ²µúÏÞÖÆ£¨I/OÏÞÖÆ£©£¬¸ù¾Ý¡õµÄÐèÇó£¬¡õµÄBeowulf¿ÉÄÜ»áÓÐºÜ´óµÄ²îÒì¡£¾ÙÀýÀ´Ëµ£¬Ò»¸ö¼ÆËãÏÞÖÆµÄÎÊÌâ¿ÉÄÜÐèÒªÒ»Ð©ºÜ¿ìµÄCPU£¬¸ßËÙÇÒµÍÑÓ³ÙµÄÍøÂ·£¬µ«ÊÇÒ»¸öI/OÏÞÖÆµÄÎÊÌâ¿ÉÄÜÐèÒª½ÏÂýµÄCPUºÍ¸ßËÙÒÒÌ«ÍøÂ·¡£

Õâ¸ö½¨ÒéÁî´ó¶àÊýÈË¾õµÃºÜÑÈÒì£¬Ò»°ãµÄÏë·¨ÊÇ´¦ÀíÆ÷Ô½¿ìÔ½ºÃ£¬ÕâÏë·¨µ±È»ÊÇÕýÈ·µÄ£¬µ«ÊÇ¡õ±ØÐëÒªÓÐ²»ÊÜÏÞÖÆµÄÔ¤Ëã¾­·Ñ£¬Êµ¼ÊÇéÐÎÊÇÒªÔÚÓÐÏÞµÄ¾­·ÑµÃµ½×î¸ßÐ§ÄÜµÄÏµÍ³£¬¶ÔÒ»¸öI/OÏÞÖÆµÄÎÊÌâ£¬ÒÑÓÐÏÖ³ÉµÄ¹æÔò£¨³Æ×÷Eadline-Dedkov¶¨ÂÉ£©¿É¹©ÀûÓÃ¡£

¶ÔÁ½Ì×ÓÐÏàÍ¬ÀÛ»ýCPUÐ§ÄÜÖ¸ÊýµÄÆ½ÐÐµçÄÔ¶øÑÔ£¬Ò»¸öÓµÓÐ½ÏÂý´¦ÀíÆ÷£¨Ò»¸ö½ÏÂýµÄ´¦ÀíÆ÷¼äµÄ´«ÊäÍøÂ·£©¶ÔI/OÖ÷µ¼µÄÓ¦ÓÃ³ÌÊ½½«»áÓÐ½Ï¼ÑµÄÐ§ÄÜ¡£

ÒªÖ¤Ã÷ÕâÏî¹æÔò½«»á³¬³ö±¾ÎÄ¼þµÄ¡õÎ§£¬¡õÈô¾õµÃÓÐÈ¤£¬¿ÉÒÔÏÂÔØÕâÆªÂÛÎÄ {\itshape I/OÖ÷µ¼Ó¦ÓÃ³ÌÊ½ÔÚÆ½ÐÐµçÄÔÉÏµÄÐ§ÄÜ¿¼Á¿£¨Performance
Considerations for I/O-Dominant Applications on Parallel
Computers£©\/} (Postscript ¸ñÊ½ 109K ) \onlynameurl{(ftp://www.plogic.com/pub/papers/exs-pap6.ps)}

Ò»µ©¡õÒÑ¾­¾ö¶¨³ÌÊ½ÖÐµÄÍ¬Ê±ÐÔÊÇºÎÖÖÐÎÌ¬£¬¡õ½«ÐèÒª¹À¼ÆÒ»µ©Æ½ÐÐ´¦ÀíµÄ»°£¬Ð§ÄÜ½«»áÈçºÎ¡£²Î¼û \ref{software} {(Software)} ÓÐ¶ÔÈíÌå¹¤¾ßµÄÃèÊö¡£

ÈôÃ»ÓÐÕâÐ©¹¤¾ß£¬¡õ¿ÉÒÔÍ¸¹ýÕâ¸ö²½Öè£¬×ÔÐÐ¿¼Á¿£¬¼ÙÈçÃ¿´Î¼ÆËãÊÇÒÔ·ÖÖÓ¼Æ£¬×ÊÁÏ´«ÊäÔòÒÔÃë¼Æ£¬ÄÇËü½«ÊÇºÜºÃµÄÆ½ÐÐ¶ÔÏó£¬µ«ÊÇ¼Ç×¡£¬¼ÙÈç¡õ½«16·ÖÖÓµÄ¼ÆËãÊ±¼ä²ð³É32·Ý£¬¶øÃ¿·ÝµÄ×ÊÁÏ´«µÝÐèÒªÊýÃëÖÓ£¬ÄÇ÷áÊÂÇé½«±äµÃÑÏÖØ¡£




\subsubsection{ÃèÊö³ö³ÌÊ½ÖÐµÄÍ¬Ê±²¿·Ý}

ÓÐ¼¸ÖÖ·½·¨ÕÒ³ö³ÌÊ½ÖÐµÄÍ¬Ê±²¿·Ý£º
\begin{enumerate}
\item  Ã÷È·µØÆ½ÐÐÖ´ÐÐ
\item  Òþº¬µØÆ½ÐÐÖ´ÐÐ
\end{enumerate}


Õâ¶þÕßÖ÷ÒªµÄ²î±ðÔÚì¶Ã÷È·µØÆ½ÐÐ»¯È¡¾öì¶Ê¹ÓÃÕß£¬Òþº¬µØÆ½ÐÐ»¯È¡¾öì¶±àÒëÆ÷¡£




\paragraph{Ã÷È·µÄ·½·¨}

ÓÐÒ»Ð©»ù±¾µÄ·½·¨ÊÇÒª¿¿Ê¹ÓÃÕß×¨ÎªÆ½ÐÐµçÄÔÀ´ÐÞ¸ÄÔ­Ê¼Âë£¬Ê¹ÓÃÕß±ØÐëÊ¹ÓÃ \onlynameurl{PVM} »ò
\onlynameurl{MPI}ÔÚ³ÌÊ½ÄÚÔö¼Ó×ÊÑ¶£¬ »ò
ÊÇÊ¹ÓÃPOSIXÐ÷£¨ÎÞÂÛÈçºÎÒªÀÎ¼ÇÐÄÖÐ£¬Ð÷ÎÞ·¨ÔÚSMPÖ÷»ú°åÖ®¼äÒÆ¶¯£©¡£

Ã÷È·µÄ·½·¨ÔÚÊµÐÐºÍ³ý´íÉÏ×îÎªÀ§ÄÑ£¬Ê¹ÓÃÕßÍ¨³£ÔÚ±ê×¼Fortran 77»ò C/C++Ô­Ê¼ÂëÖÐ¼ÓÈëº¯Ê½¡£MPI³ÌÊ½¿â¼ÓÈëÒ»Ð©º¯Ê½£¬Ê¹µÃÒ»Ð©±ê×¼Æ½ÐÐ·½·¨ÈÝÒ×ÊµÐÐ£¨ÀýÈç·ÖÉ¢ºÍÊÕ¼¯º¯Ê½£©£¬ÁíÍâ»¹¿ÉÒÔÊ¹ÓÃÒÑ¾­±»Æ½ÐÐ»¯µÄ±ê×¼³ÌÊ½¿â¡£ÎÞÂÛÈçºÎÒª½«¿ÉÐ¯ÐÔºÍÐ§ÄÜÖ®¼äµÄÆ½ºâÀÎ¼ÇÐÄÖÐ¡£

  
´ÓÀúÊ·ÉÏµÄÀíÓÉ£¬´ó¶àÊýÊýÖµ¼ÆËãµÄ³ÌÊ½ÊÇÓÃFortranÓïÑÔËùÐ´µÄ£¬Òò´ËÔÚÆ½ÐÐ¼ÆËãÖÐ£¬FortranÊÇÊÜ×î´óµÄÖ§Ô®£¨¹¤¾ß¡¢³ÌÊ½¿âµÈ£©¡£ÏÖÔÚ´ó¶àÊýµÄ³ÌÊ½Éè¼ÆÕß¶¼ÊÇÓÃCÓïÑÔ£¬»òÊÇÈÏÎªCÓïÑÔ¿ÉÒÔÖ´ÐÐµØ¸ü¿ì£¬¶øÓÃCÓïÑÔÖØÐÂ¸ÄÐ´ÏÖ´æµÄFortranÓ¦ÓÃ³ÌÊ½¡£ÓÉì¶CÓïÑÔ×î½Ó½üÍ¨ÓÃµÄ»úÆ÷ÓïÑÔ£¬CÓïÑÔ½Ï¿ì¿ÉÄÜÊÇÕýÈ·µÄ£¬µ«ÊÇËüÒ²ÓÐÒ»Ð©ÖØÒªµÄÈ±ÏÝ¡£CÓïÑÔÊ¹ÓÃÖ¸±ê£¨pointer£©»áÈÃ×ÊÁÏÏà¹ØÐÔµÄ¾ö¶¨¼«¶ÈÀ§ÄÑ£¬×Ô¶¯·ÖÎöÖ¸±êÒ²ÊÇ¼«¶ÈÀ§ÄÑ£¬¼ÙÈç¡õÓÐÏÖ³ÉµÄFortran³ÌÊ½£¬²¢ÇÒÎ´À´ÏëÒª±ä³ÉÆ½ÐÐ³ÌÊ½¡õÇ§Íò²»Òª°ÑËü×ª³ÉCÓïÑÔ¡£




\paragraph{Òþº¬µÄ·½·¨}

Òþº¬·½·¨ÊÇÊ¹ÓÃÕß·ÅÆúÒ»Ð©»òÈ«²¿·ÅÆú×ÔÐÐÆ½ÐÐ£¬¸ÄÓÃ±àÒëÆ÷µÄÒ»ÖÖ·½·¨£¬ÀýÈç FORTRAN 90£¬ ¸ßÐ§ÄÜFrotran
(High Performance Fortran£¬HPF), ´óÁ¿Ð­Í¬Æ½ÐÐ£¨Bulk Synchronous Parallel£¬BSP)»¹ÓÐÐí¶àÕýÔÚ·¢Õ¹µ±ÖÐ¡£



Òþº¬·½·¨ÈÔÒªÇóÊ¹ÓÃÕß¶Ôì¶³ÌÊ½Í¬Ê±µÄÌØÐÔÌá¹©Ò»Ð©×ÊÑ¶£¬µ«ÊÇ±àÒëÆ÷±ØÐë¶ÔÈçºÎÆ½ÐÐµØÖ´ÐÐÍ¬Ê±ÐÔ×ö³öÐí¶à¾ö¶¨£¬ÕâÐ©·½·¨Ìá¹©Ä³ÖÖ³Ì¶ÈµÄ¿ÉÐ¯ÐÔºÍÐ§ÄÜ£¬µ«ÊÇ¶ÔÒ»¸öÆ½ÐÐ±àÒëÆ÷£¬ÈÔÈ»Ã»ÓÐÒ»¸ö×îºÃµÄ·½·¨À´ÃèÊöÍ¬Ê±ÐÔµÄÎÊÌâ¡£






\section{Beowulf×ÊÔ´}






\subsection{Æðµã}



\begin{itemize}
\item Beowulf mailing list.  Ö»Òªµç×ÓÓÊ¼þ¼Äµ½ \onlynameurl{beowulf-request@cesdis.gsfc.nasa.gov} £¬ÔÚÓÊ¼þÄÚÈÝÌîÉÏ
{\itshape subscribe\/} ¡£
\item Beowulf ÍøÒ³ \onlynameurl{http://www.beowulf.org}
\item Extreme Linux \onlynameurl{http://www.extremelinux.org}
\item ÔÚRedHatÍøÕ¾ÉÏµÄExtreme Linux ÈíÌå \onlynameurl{http://www.redhat.com/extreme}
\end{itemize}







\subsection{ÎÄ¼þ}



\begin{itemize}
\item Beowulf HOWTO×îÐÂ°æ±¾ \onlynameurl{http://www.sci.usq.edu.au/staff/jacek/beowulf}.
\item ¼ÜÉèÒ»¸öBeowulfÏµÍ³ \onlynameurl{http://www.cacr.caltech.edu/beowulf/tutorial/building.html}
\item JacekµÄ Beowulf Á¬½á \onlynameurl{http://www.sci.usq.edu.au/staff/jacek/beowulf}.
\item Beowulf°²×°Î¬»¤HOWTO \onlynameurl{http://www.sci.usq.edu.au/staff/jacek/beowulf}.
\item LinuxÆ½ÐÐ¼ÆËãHOWTO \onlynameurl{http://yara.ecn.purdue.edu/\~{}pplinux/PPHOWTO/pphowto.html}
\end{itemize}







\subsection{Ïà¹ØÂÛÎÄ\label{papers}}



\begin{itemize}
\item Chance Reschke, Thomas Sterling, Daniel Ridge, Daniel Savarese,
Donald Becker, and Phillip Merkey {\itshape A Design Study of Alternative
Network Topologies for the Beowulf Parallel Workstation\/}.
Proceedings Fifth IEEE International Symposium on High Performance
Distributed Computing, 1996. \onlynameurl{http://www.beowulf.org/papers/HPDC96/hpdc96.html}

\item Daniel Ridge, Donald Becker, Phillip Merkey, Thomas Sterling
Becker, and Phillip Merkey. {\itshape Harnessing the Power of Parallelism in
a Pile-of-PCs\/}.  Proceedings, IEEE Aerospace, 1997. \onlynameurl{http://www.beowulf.org/papers/AA97/aa97.ps}

\item Thomas Sterling, Donald J. Becker, Daniel Savarese, Michael
R. Berry, and Chance Res. {\itshape 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.
\onlynameurl{http://www.beowulf.org/papers/IPPS96/ipps96.html}

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


\item Donald J. Becker, Thomas Sterling, Daniel Savarese, John
E. Dorband, Udaya A. Ranawak, Charles V.  Packer. {\itshape BEOWULF: A
PARALLEL WORKSTATION FOR SCIENTIFIC COMPUTATION\/}.  Proceedings,
International Conference on Parallel Processing, 95.
\onlynameurl{http://www.beowulf.org/papers/ICPP95/icpp95.html}
\item Papers at the Beowulf site \onlynameurl{http://www.beowulf.org/papers/papers.html}

\end{itemize}







\subsection{ÈíÌå\label{software}}

\begin{itemize}
\item PVM - Parallel Virtual Machine \onlynameurl{http://www.epm.ornl.gov/pvm/pvm\_home.html}


\item LAM/MPI (Local Area Multicomputer / Message Passing Interface
\onlynameurl{http://www.mpi.nd.edu/lam}
\item BERT77 - FORTRAN conversion tool \onlynameurl{http://www.plogic.com/bert.html}
\item Beowulf software from Beowulf Project Page \onlynameurl{http://beowulf.gsfc.nasa.gov/software/software.html}
\item Jacek's Beowulf-utils \onlynameurl{ftp://ftp.sci.usq.edu.au/pub/jacek/beowulf-utils}
\item bWatch - cluster monitoring tool \onlynameurl{http://www.sci.usq.edu.au/staff/jacek/bWatch}
\end{itemize}









\subsection{Beowulf»úÆ÷}

\begin{itemize}
\item Avalon ÊÇÓÉ 140Ì¨Alpha ´¦ÀíÆ÷×é³É£¬36GB¼ÇÒäÌå£¬¿ÉÄÜÊÇ×î¿ìµÄBeowulf»úÆ÷£¬¼ÆËãËÙ¶È¸ß´ï47.7Gflops£¬ÔÚÈ«ÊÀ½çÇ°Îå°Ù¿ìµÄ»úÆ÷ÖÐÅÅÃûµÚ114¡£
\onlynameurl{http://swift.lanl.gov/avalon/}
\item Megalon-A Massively PArallel CompuTer Resource (MPACTR)ÓÉ14Ì¨¸öÈËµçÄÔ×é³É£¬Ã¿Ì¨µçÄÔÄÚÓÐËÄ¿ÅPentium Pro200´¦ÀíÆ÷£¬×Ü¹²ÓÐ14GB¼ÇÒäÌå
\onlynameurl{http://megalon.ca.sandia.gov/description.html}
\item HIVE - Highly-parallel Integrated Virtual Environment ÊÇÁíÒ»Ì×¸ßËÙµÄBeowulf³¬¼¶µçÄÔ£¬ÓÐ64¸ö¼ÆËã½Úµã£¬¹²¼Æ128¿Å´¦ÀíÆ÷£¬4GB¼ÇÒäÌå¡£
\onlynameurl{http://newton.gsfc.nasa.gov/thehive/}
\item Topcat ÊÇÒ»Ì×±È½ÏÐ¡ÐÍµÄ»úÆ÷£¬×Ü¹²ÓÐ16¿Å´¦ÀíÆ÷ºÍ1.2GB¼ÇÒäÌå¡£
\onlynameurl{http://www.sci.usq.edu.au/staff/jacek/topcat}
\item MAGI cluster ÊÇ¸öÓÐÈ¤µÄÍøÕ¾£¬ÄÚÓÐÐí¶àÓÐÈ¤µÄÁ¬½á¡£
\onlynameurl{http://noel.feld.cvut.cz/magi/}
\end{itemize}









\subsection{ÆäËûÓÐÈ¤µÄÍøÕ¾}



\begin{itemize}
\item SMP Linux \onlynameurl{http://www.linux.org.uk/SMP/title.html}
\item Paralogic - Buy a Beowulf \onlynameurl{http://www.plogic.com}
\end{itemize}





\subsection{ÀúÊ·\label{history}}

\begin{itemize}
\item  Legends - Beowulf  \onlynameurl{http://legends.dm.net/beowulf/index.html}
\item  The Adventures of Beowulf  \onlynameurl{http://www.lnstar.com/literature/beowulf/beowulf.html}
\end{itemize}





\section{Ô­Ê¼Âë}




\subsection{sum.c\label{sum}}

\begin{verbatim}
/* 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;
  
}
\end{verbatim}





\subsection{sigmasqrt.c\label{sigmasqrt}}

\begin{verbatim}
/* 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;
  
}
\end{verbatim}







\subsection{prun.sh\label{prun}}

 

\begin{verbatim}
#!/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&
\end{verbatim}






\end{document}
