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[Send] - ノードから他ノードへメッセージを送信
使い方
Send( node, msg )
パラメータ
node
-
メッセージの送信先ノードを表す整数
msg
送信するメッセージ(任意の Maple 表現)
説明
Send は、並列計算の過程で実行される Maple コードから利用するためのコマンドです。
並列ジョブが N 個のサーバー上で起動されたとします。この計算中、各サーバーは 0 から N-1 までの整数の識別番号を割り当てられます。node パラメータは、メッセージの送信先ノードを識別する整数値を指定します。
msg パラメータは NULL と表現列を含めた任意の Maple 表現が利用可能です。モジュール など、ラストネームエバリュエーション 規則の適用を受ける表現を含む入れ子構造の場合は、完全なサブ表現への展開は送信されません。
グリッドサーバーの受信バッファーは、利用可能なメモリの量だけに制限されます。つまり、Send コマンドはネットワーク上でデータを伝送している時間だけブロックすることになります。
送信先ノードが Receive コマンドでメッセージを受信する前に Send コマンドは戻ります。戻り値は必ず NULL になります。
全ノードが、計算終了かメッセージ待ちの状態になるとデッドロックが発生します。このようなデッドロックは検知され、ジョブは自動的に中止されます。
互換性
Grid[Send] コマンドは Maple 15 から導入されています。
Maple 15 の変更点についての詳細は、Maple 15 の更新情報 をご覧ください。
例
この例では、ノード 0 はノード 1 にメッセージを送り、ノード 1 はそれに内容を追加してノード 2 に送り、という操作を繰り返します。全ノードがメッセージを見たら、最後の結果をノード 0 に送り返します。
circ := proc() uses Grid; local r, me := MyNode(), n := NumNodes(); if me = 0 then Send(1,0); r := Receive(n-1); else r := Receive(me-1); Send(me+1 mod n, r, me); end if; end;
[ Grid:-Launch(circ,numnodes=4) ];
参照
Grid, Grid[Receive]
Download Help Document