Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
Grid[Receive] - 他ノードから送られたメッセージを受信
使い方
Receive()
Receive(node)
パラメータ
node
-
(オプション)メッセージ送信元のノードを表す整数
説明
Receive は、並列計算の過程で実行される Maple コードから利用するためのコマンドです。
並列ジョブが N 個のサーバー上で起動されたとします。この計算中、各サーバーは 0 から N-1 までの整数の識別番号を割り当てられます。node パラメータは、メッセージの送信元ノードを識別する整数値を指定します。
Receive コマンドは、指定されたノードからメッセージが到着するまでブロックします。ノードの指定がない場合、Receive は送信元がどのノードであるかにかかわらず最初に到着したメッセージを戻します。
全ノードが、計算終了かメッセージ待ちの状態になるとデッドロックが発生します。このようなデッドロックは検知され、ジョブは自動的に中止されます。
互換性
Grid[Receive] コマンドは Maple 15 より導入されています。
Maple 15 の変更点についての詳細は、Maple 15 の更新情報 をご覧ください。
例
fib := proc() uses Grid; local me, n, dest; me := MyNode(): n := NumNodes(): dest := me+1 mod n: if me=0 then # create a message msg := [1,1]; # send it on to node number 1 Send(dest, msg); # wait for a message to come back return Receive(); else # wait for a message to arrive msg := Receive(me-1); # add to the sequence and send it on to the next node Send(dest, [op(msg),msg[-1]+msg[-2]] ); end if; end proc;
Warning, `msg` is implicitly declared local to procedure `fib`
Grid:-Launch(fib,numnodes=8);
参照
Grid, Grid[Send], Grid[Setup]
Download Help Document