http:^^www.cs.cornell.edu^info^people^lnt^multimatlab.html
来自「This data set contains WWW-pages collect」· HTML 代码 · 共 1,159 行 · 第 1/5 页
HTML
1,159 行
MIME-Version: 1.0
Server: CERN/3.0
Date: Sunday, 24-Nov-96 21:36:35 GMT
Content-Type: text/html
Content-Length: 45272
Last-Modified: Tuesday, 07-May-96 00:51:59 GMT
<! Supercomputing `96 paper from Cornell University: "MultiMATLAB: MATLAB on Multiple Processors" This is an HTML document submitted for presentation at Supercomputing `96. The authors are Anne Trefethen, Vijay Menon, Chi-Chao Chang, Greg Czajkowski, Chris Myers, and Nick Trefethen. The author for correspondence will be Prof. Nick Trefethen (lnt@cs.cornell.edu, 607-257-9030). The presenter of the paper, if it is accepted, will most likely be Vijay Menon. !><HTML><TITLE>MultiMATLAB</TITLE><H1 ALIGN=CENTER>MultiMATLAB:<BR> MATLAB on Multiple Processors</H1><P ALIGN=CENTER><ADDRESS><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><A HREF=http://www.tc.cornell.edu/~anne>Anne E. Trefethen</A><BR>Cornell Theory Center<BR></ADDRESS><CODE>aet@tc.cornell.edu<BR>http://www.tc.cornell.edu/~anne</CODE><P><ADDRESS><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><A HREF=http://www.cs.cornell.edu/Info/People/vsm>Vijay S. Menon</A><BR>Computer Science Department, Cornell University<BR></ADDRESS><CODE>vsm@cs.cornell.edu<BR>http://www.cs.cornell.edu/Info/People/vsm</CODE><P><ADDRESS><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><A HREF=http://www.cs.cornell.edu/Info/People/chichao/chichao.html>Chi-Chao Chang</A><BR>Computer Science Department, Cornell University<BR></ADDRESS><CODE>chichao@cs.cornell.edu<BR>http://www.cs.cornell.edu/Info/People/chichao/chichao.html</CODE><P><ADDRESS><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><A HREF=http://www.cs.cornell.edu/Info/People/grzes/grzes.html>Grzegorz J. Czajkowski</A><BR>Computer Science Department, Cornell University<BR></ADDRESS><CODE>grzes@cs.cornell.edu<BR>http://www.cs.cornell.edu/Info/People/grzes/grzes.html</CODE><P><ADDRESS><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><A HREF=http://www.tc.cornell.edu/CSERG/myers>Chris Myers</A><BR>Cornell Theory Center<BR></ADDRESS><CODE>myers@tc.cornell.edu<BR>http://www.tc.cornell.edu/CSERG/myers</CODE><P><ADDRESS><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><A HREF=http://www.cs.cornell.edu/home/lnt>Lloyd N. Trefethen</A><BR>Computer Science Department, Cornell University<BR></ADDRESS><CODE>lnt@cs.cornell.edu<BR>http://www.cs.cornell.edu/home/lnt</CODE><P><DL><DT><B>Abstract:</B><DD>MATLAB<SUP>®</SUP>, a commercial product of The MathWorks, Inc.,has become one of the principal languages of desktop scientific computing.A system is described that enables one to run MATLAB conveniently onmultiple processors. Using short, MATLAB-style commands likeEval, Send, Recv, Bcast, Min, and Sum,the user operating within one MATLAB session can start MATLAB processeson other machines and then pass commands and data between between thesevarious processes in a fashion that maintains MATLAB's traditionaluser-friendliness. Multi-processor graphics is alsosupported. The system currently runs under MPICH on an IBM SP2 or anetwork of Unix workstations,and extensions are planned to networks of PCs.MultiMATLAB is potentially useful for education in parallel programming,for prototyping parallel algorithms,and for fast and convenient execution of easily parallelizablenumerical computations on multiple processors.<P><DT><B>Keywords:</B><DD>MATLAB, MultiMATLAB, SP2, message passing, MPI, MPICH</DL><P><P><BR><P><H2>1. Introduction</H2><H3>1.1. The Popularity of MATLAB</H3>MATLAB<SUP>®</SUP> is a high-level language, and a problem-solving environment,for mathematical and scientific calculations. It originated in thelate 1970s with an attempt by Cleve Moler to provide interactiveaccess to the Fortran linear algebra software packages EISPACK and LINPACK.Soon a programming language emerged (programs conventionallyhave the extension<CODE>.m</CODE> and are called "m-files") containing dozens ofhigh-level commands such as<CODE>svd</CODE> (singular value decomposition),<CODE>fft</CODE> (fast Fourier transform), and<CODE>roots</CODE> (polynomial zerofinding).Graphical commands were built into the language, and a companycalled <!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><A HREF=http://www.mathworks.com>The MathWorks, Inc.</A>was formed in 1984 by Moler and John Little,now based in Natick, Massachusetts.<P>From the beginning, MATLAB proved greatly appealing to users.The numerical analysis and signal processing communities in the United Statestook to it quickly, followed by other groups of scientists and engineersin the U.S. and abroad.Roughly speaking, the number of MATLAB users has doubled each year since 1978.According to The MathWorks, there are currently about300,000 users in fifty countries, and this figure continues to increase rapidly.In many scientific and engineering communities,MATLAB has become the dominant language fordesktop numerical computing.<P>At least six reasons for MATLAB's success can be identified.The first is an exceptionally user-friendly, intuitive syntax, favoringbrevity and simplicity at all turns without being so compressed asto interfere with intelligibility. The second is the very high qualityof the underlying numerical programs, a result of MATLAB's intimateties from the beginning with the numerical analysis research community. The thirdis powerful and user-friendly graphics. The fourth is the high levelof the language, which often makes it possible to carry out computations in aline or two of MATLAB that would require dozens or hundreds of linesin Fortran or C. (The ability to link with Fortran or C programsis also provided.) The fifth is MATLAB's easy extensibility viapackages of m-files known as Toolboxes. Many Toolboxes have been producedover the years, both by The MathWorks andby others, covering application areassuch as optimization, signal processing, fuzzy logic, partialdifferential equations,and mathematical finance. Finally, perhaps the mostinteresting reason for MATLAB's success may be that from the beginning,the whole language has been built around real or complex vectors andmatrices (including sparse matrices) as the fundamental data type.To computer scientists not involved with numerical computation, sucha limitation may seem narrow and capricious,but it has proved extraordinarily fruitful.<P>It is probably fair to say that one of the three or four mostimportant developments in numerical computation in the past decadehas been the emergence of MATLAB as the preferred language of tens ofthousands of leading scientists and engineers.<H3>1.2. Single vs Multiple Processors</H3>Curiously, one of the other principal developments of the pastdecade has been orthogonal to that one. This is the movefrom single to multiple processors. A new generation ofresearchers and practitioners havegrown up who are accustomed to the principle that high-performance computingmeans multi-processor computing -- a phenomenon attested to bythe success of these Supercomputing conferences.But this development and the emergence of MATLAB have beendisjoint events, as MATLAB remains a language tied toa single processor.<P>Originally, MATLAB was conceived as an educational aid and asa tool for prototyping algorithms, which would then be translated into a"real" language. The justifications for this point of view werepresumably that MATLAB's capabilities were limited andthat, being interpreted, it could not achieve the performance of a compiledlanguage. Over the years, however, the force of these argumentshas diminished. So much MATLAB software is now available that MATLAB'scapabilities can hardly be called narrow anymore; and as for performance,many users find that a degradation in speed by a factor between1 and 10 is more than made up for by an improvementof programming ease by a factorbetween 10 and 100. In MATLAB, one effortlessly modifies the model,plots a new variable, or reformulates the problem in an interactivefashion. Such rapid real-time exploration is rarely feasible in Fortran or C.<P>Thus, increasingly, MATLAB has become a language for"real" computing by scientists and engineers.But one sense has remained in which MATLAB is only a system foreducation and prototyping. If one wants to take advantage of multiple processors,then one must switch to other languages. Experts, such asmany of those participating in this conference, are in the habitof doing just this.Others, less familiar with the rapidly-changing complexities ofhigh-performancecomputing, remain tied to their MATLAB desktops, isolated fromthe trend towards multiprocessors.<P>The vision of the MultiMATLAB project has been tobridge this gap. Think of a user who finds him- or herself computinghappily in MATLAB, but frustrated by the time it takes to rerunthe program for six different boundary conditions, or a dozendifferent parameter choices, or a hundred different initial guesses.Such a user's problems might be solved by a system that makes it convenientto spawn MATLAB processes on multiple processors of a parallelcomputer or a network of workstations or PCs. In many cases theneeds for communication between the processors are rather small.Convenience of spreading the problemacross machines and collecting the results numerically orgraphically is paramount.<P>The MultiMATLAB project is exploring one approachfor making this kind of computing possible.We do not at the outset aim for fine-grained parallelism orfor peak performance of the kindneeded for the grand challenge problems of computational science.Instead, following the philosophy that has made MATLAB so successful,we require reasonable efficiency butput the premium on ease of use. A key principle is thatMATLAB itself -- not a home-grown facsimile, which would have littlechance of keeping up with the ever-expandingfeatures of the commercial product -- must be run on multiple processors.Our vision is that a user must be able to learn enough in fiveminutes to become intrigued by the system and begin to use it.<P><BR><P><H2>2. Using MultiMATLAB</H2><H3>2.1. Start, Nproc, Eval, ID</H3>Each MultiMATLAB command begins with an initial upper-case letter.We illustrate how the system is used before describing itsimplementation.<P>Suppose the first author is sitting at her workstation in theTheory Center, connectedto a node of the IBM SP2, running MATLAB. After a time she decidesto start MATLAB on five new processors. She types
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?